6.6k Aufrufe
Gefragt in Tabellenkalkulation von dutchi1972 Mitglied (419 Punkte)
Also hab eine Auftrag Tabelle , die wir durchlaufen über eine If schleife (Variable "Aufzeile") ,
wenn der Auftrag NEU ist Info steht in Spalte A (das hab ich schon geschaft)
Soll die Zeile von Spalte B bis G kopiert werden (habich noch keine Läsung für gebastelt)

hier unten stehen meine ansätze aber die machen nur Fehlermeldungen !!!

Worksheets("Auftrag Tabelle").Range("B,Aufzeile & BA,Aufzeile").Select
Worksheets("Auftrag Tabelle").Range(Aufzeile,(2:4).Select
Range("14:BA14").Select
Selection.Copy


Kann mir einer Helfen und kann mir den richtigen Code schreiben.

Gruß und Danke im voraus für eure Hilfe.

Gruß dutchi

9 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo dutchi,

...und wo soll/en die kopierte/n Zeile/n dann eingefügt werden?

Du könntest auch mit dem Autofilter nauch "Neu" in Spalte A filtern und das Filterergebnis kopieren.

Gruß
Rainer
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo dutchi,

mit folgendem Code könntest Du die gefundenen Zeilen in den Spalten I bis N einfügen.

Option Explicit

Sub copy_paste()
Dim rngC As Range, rngBer As Range
Set rngBer = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
Application.ScreenUpdating = False
For Each rngC In rngBer
If rngC.Value = "NEU" Then
Range("B" & rngC.Row & ":G" & rngC.Row).Copy _
Range("I" & Cells(Rows.Count, 9).End(xlUp).Row + 1)
End If
Next
Application.ScreenUpdating = True
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von dutchi1972 Mitglied (419 Punkte)
Hallo Rainer, Danke für die schnelle Reaktion,

mit den AutoFilter auf Neu setzten und dann die sichtbare Tabelle kopieren , hab ich noch keine Erfahrung gemacht und somit erstmal für mich nicht so interessant.

also ein Teil des Makros hab ich mal raus kopiert.
die zu durchsuchende Tabelle fängt bei Zeile 12 an
Variable ist Aufzeile
Copierte Zeile wird anschl. in ext. Datei , die ich vorher geöffnet habe in 1. freie Tabellenende eingefügt.
Aber da er die gefundene Zeile von Spalte B:BA kopiert bekomm ich nicht hin (Ich bin nicht so geübt in VBA)

Teil Code:
For Aufzeile = 12 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row 'letzte Zeile
If Worksheets("Auftrag Tabelle").Cells(Aufzeile, 1) = "NEU" Then

'Worksheets("Auftrag Tabelle").Range("B,Aufzeile & BA,Aufzeile").Select

Selection.Copy

Windows("STADAT2012.xlsm").Activate
Range("B" & Cells(Rows.Count, 3).End(xlUp).Row + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Windows("LICO_2012.xlsm").Activate

End If
Next Aufzeile


Danke für deine Hilfe
Gruß Dutchi
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Dutchi,

probier mal das

Option Explicit

Sub copy_paste()
Dim rngC As Range, rngBer As Range, ws2 As Worksheets
Set rngBer = Range("A12:A" & Cells(Rows.Count, 1).End(xlUp).Row)
Application.ScreenUpdating = False
For Each rngC In rngBer
If rngC.Value = "NEU" Then
Range("B" & rngC.Row & ":BA" & rngC.Row).Copy _
Workbooks("STADAT2012").Worksheets(1) _
.Range("A" & Workbooks("STADAT2012").Worksheets(1).Cells(Rows.Count, 9).End(xlUp).Row + 1)
End If
Next
Application.ScreenUpdating = True
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Korrektur:

die Variablendeklaration , ws2 As Worksheets ist überflüssig, kannst Du löschen

Gruß
Rainer
0 Punkte
Beantwortet von dutchi1972 Mitglied (419 Punkte)
das hat super funktioniert,

wäre nur noch eins, , jetzt nur noch das us der gefundenen Zeile in LICO Spalte A das NEU zu löschen oder " erledigt" rein zu setzten.

geht das auch noch ????

Gruß Dutchi
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Dutchi,

Option Explicit

Sub copy_paste()
Dim rngC As Range, rngBer As Range
Set rngBer = Range("A12:A" & Cells(Rows.Count, 1).End(xlUp).Row)
Application.ScreenUpdating = False
For Each rngC In rngBer
If rngC.Value = "NEU" Then
Range("B" & rngC.Row & ":BA" & rngC.Row).Copy _
Workbooks("STADAT2012").Worksheets(1) _
.Range("A" & Workbooks("STADAT2012").Worksheets(1).Cells(Rows.Count, 9).End(xlUp).Row + 1)
rngC.Value = "erledigt"
End If

Next
Application.ScreenUpdating = True
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von dutchi1972 Mitglied (419 Punkte)
Hallo Rainer,

Hab leider jetzt Feierabend,
Werde morgen früh sofort auch noch das einpflegen.

Danke für die schnellen Antworten und bis morgen.

Gruß Dutchi
0 Punkte
Beantwortet von dutchi1972 Mitglied (419 Punkte)
DANKE,DAnke,

Meine Prob. sind wieder gelöst.

hat super funktioniert.

Danke für deine Hilfe.

Gruß Dutchi
...