Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
856to860
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
856to860
856to860
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kopieren von Zeilen aus versch. Tabellenblättern

Kopieren von Zeilen aus versch. Tabellenblättern
30.03.2007 15:25:42
Zeilen
Hallo zusammen,
hab schon mal im Forum hier zu diesem Thema Hilfe bekommen, leider weiß ich nicht, wo man den Thread (nummer) herbekommt (kurze Info wäre toll, wo man die älteren Beiträge findet ;-) )...
aber nun zum Problem (hab das ganze etwas verändert...) :
ich möchte aus drei Tabellen (controll, HG5-Archiv und HG9-Archiv) die Zeilen kopieren, in deren Spalte (E) eine 5 oder eine 9 steht. Diese Zeilen sollen dann in eine Tabelle Zeile Basis eingefügt werden (zum Auswerten mit einer Pivottabelle) und zwar immer in die nächstfreie Zeile (kein Überschreiben). Bisher hab ich folgende zwei Programmcodes mit eurer Hilfe erstellt:
Variante 1:
'Kopieren aller Zeilen in Basis'
Dim ende1 As Long
ende1 = Cells(65536, 1).End(xlUp).Row
For i = ende1 To 3 Step -1
If Worksheets("HG5-Archiv").Cells(i, 5) = "5" Then
Worksheets("HG5-Archiv").Rows(i).Copy
Sheets("Basis").Cells(65536, 1).End(xlUp).Offset(1, 0).PasteSpecial
End If
Next
'Kopieren aller Zeilen in Basis'
Dim ende2 As Long
ende2 = Cells(65536, 1).End(xlUp).Row
For i = ende2 To 3 Step -1
If Worksheets("HG9-Archiv").Cells(i, 5) = "9" Then
Worksheets("HG9-Archiv").Rows(i).Copy
Sheets("Basis").Cells(65536, 1).End(xlUp).Offset(1, 0).PasteSpecial
End If
Next
Aber hier scheint er Zeilen zu überschreiben, die Anzahl Zeilen stimmt nicht
2. Variante
'Kopieren aller Zeilen mit Basis'
ende1 = Worksheets("HG5-Archiv").Cells(65536, 1).End(xlUp).Row
x = 3
For i = 3 To ende1
If Worksheets("HG5-Archiv").Cells(i, 5) = "5" Then
Worksheets("HG5-Archiv").Rows(i).Copy Destination:=Worksheets("Basis").Cells(x, 1)
x = x + 1
End If
ende2 = Worksheets("HG9-Archiv").Cells(65536, 1).End(xlUp).Row
For i = 3 To ende2
If Worksheets("HG9-Archiv").Cells(i, 5) = "9" Then
Worksheets("HG9-Archiv").Rows(i).Copy Destination:=Worksheets("Basis").Cells(x, 1)
x = x + 1
End If
Next
Hier meckert er, dass die For-Variable schon benutzt wird. Diesen Code kann ich besser nachvollziehen, funktioniert aber nur bei einem Tabellenblatt
Kann mir hier jemand weiterhelfen, damit ich das Problem lösen kann?

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopieren von Zeilen aus versch. Tabellenblättern
30.03.2007 15:30:00
Zeilen
zum zweiten Code:
Die For-Variable in der zweiten Schleife einfach nicht "i" sondern "j" nennen! Oder sonstwie. Nur eben nicht nochmal "i" Das müsste eigentlich funktionieren...
AW: Kopieren von Zeilen aus versch. Tabellenblättern
30.03.2007 15:33:00
Zeilen
... und ein fehlendes "Next" müsstest du natürlich auch noch einfügen, zwei schleifen brauchen zwei "Next".
Leider war ich zu schnell mit dem Abschicken und ändern geht ja leider nicht :(
AW: Kopieren von Zeilen aus versch. Tabellenblättern
30.03.2007 15:43:00
Zeilen
Hallo Andreas,
jetzt überschreibt er aber noch die kopierten Zeilen mit der 5! Der Rest hat super funktioniert. Wie kann ich das den noch abstellen?
'Kopieren aller Zeilen mit Basis'
ende1 = Worksheets("HG5-Archiv").Cells(65536, 1).End(xlUp).Row
x = 3
For i = 3 To ende1
If Worksheets("HG5-Archiv").Cells(i, 5) = "5" Then
Worksheets("HG5-Archiv").Rows(i).Copy Destination:=Worksheets("Basis").Cells(x, 1)
x = x + 1
End If
Next
'Kopieren aller Zeilen mit Basis'
ende1 = Worksheets("HG9-Archiv").Cells(65536, 1).End(xlUp).Row
x = 3
For j = 3 To ende1
If Worksheets("HG9-Archiv").Cells(j, 5) = "9" Then
Worksheets("HG9-Archiv").Rows(j).Copy Destination:=Worksheets("Basis").Cells(x, 1)
x = x + 1
End If
Next
Anzeige
AW: Kopieren von Zeilen aus versch. Tabellenblättern
30.03.2007 15:54:00
Zeilen
versuchs mal damit:
dim letztezeile as integer
letztezeile=Worksheets("Basis").Range("A65536").end(xlup).row
x=letztezeile+1
anstatt "x=3" in der zweiten Schleife
das heißt du suchst die letzte belegte Spalte und fängst danach erst an einzufügen
AW: Kopieren von Zeilen aus versch. Tabellenblättern
30.03.2007 15:59:34
Zeilen
Hallo Andreas,
ich habe ja zweimal die Abfrage x=3
jetzt überschreibt er aber auch die ersten beiden Zeilen, dass sollte er nicht machen und die 5 Zeilen hat er auch überschrieben. Was habe ich bei der zweiten For-Schleife falsch gemacht?
Vielen Dank für deine Hilfe!
'Kopieren aller Zeilen mit Basis'
ende1 = Worksheets("HG5-Archiv").Cells(65536, 1).End(xlUp).Row
Dim letztezeile As Integer
letztezeile = Worksheets("Basis").Range("A65536").End(xlUp).Row
x = letztezeile + 1
For i = 3 To ende1
If Worksheets("HG5-Archiv").Cells(i, 5) = "5" Then
Worksheets("HG5-Archiv").Rows(i).Copy Destination:=Worksheets("Basis").Cells(x, 1)
x = x + 1
End If
Next
'Kopieren aller Zeilen mit Basis'
ende1 = Worksheets("HG9-Archiv").Cells(65536, 1).End(xlUp).Row
Dim letztezeile1 As Integer
letztezeile = Worksheets("Basis").Range("A65536").End(xlUp).Row
x = letztezeile1 + 1
For j = 3 To ende1
If Worksheets("HG9-Archiv").Cells(j, 5) = "9" Then
Worksheets("HG9-Archiv").Rows(j).Copy Destination:=Worksheets("Basis").Cells(x, 1)
x = x + 1
End If
Next
Anzeige
AW: Kopieren von Zeilen aus versch. Tabellenblättern
30.03.2007 16:00:45
Zeilen
Siehe Nachricht vorher... :(
AW: Kopieren von Zeilen aus versch. Tabellenblättern
30.03.2007 16:04:00
Zeilen
die erste Schleife soll doch bei x=3 anfangen
Also da nichts mit letztezeile machen. So Stellst du sicher dass zunächst mal bei Zeile3 begonnen wird. Die zweite Schleife schaut dann wo sie weitermachen soll, nämlich in der nächsten freien Zeile die dann frei ist.
außerdem hattest du bei letztezeile1 mal einen Schreibfehler drin, da hattest du die "1" vergessen.
Funktioniert das oder reden wir gerade aneinander vorbei? Ansonsten müsstest du vielleicht die Tabelle kurz hochladen zur besseren Anschauung.
'Kopieren aller Zeilen mit Basis'
dim letztezeile as integer
ende1 = Worksheets("HG5-Archiv").Cells(65536, 1).End(xlUp).Row
x = 3
For i = 3 To ende1
If Worksheets("HG5-Archiv").Cells(i, 5) = "5" Then
Worksheets("HG5-Archiv").Rows(i).Copy Destination:=Worksheets("Basis").Cells(x, 1)
x = x + 1
End If
Next
'Kopieren aller Zeilen mit Basis'
ende1 = Worksheets("HG9-Archiv").Cells(65536, 1).End(xlUp).Row
letztezeile = Worksheets("Basis").Range("A65536").End(xlUp).Row
x = letztezeile + 1
For j = 3 To ende1
If Worksheets("HG9-Archiv").Cells(j, 5) = "9" Then
Worksheets("HG9-Archiv").Rows(j).Copy Destination:=Worksheets("Basis").Cells(x, 1)
x = x + 1
End If
Next
Anzeige
AW: Kopieren von Zeilen aus versch. Tabellenblättern
30.03.2007 16:11:12
Zeilen
Hallo Andreas,
hat super geklappt, vielen Dank!!!!! Leider ist die Tabelle zu groß fürs hochladen :-(
Eine wichtige Frage habe ich noch, und zwar muss ja noch die dritte Tabelle hochgeladen werden und zwar sollen hier nach 5 und 9 gesucht werden (Spalte E in Tabelle controll) und diese auch noch in die Tabelle Basis kopiert werden.´und zwar ohne die anderen Zeilen zu überschreiben. Geht das irgendwie?
AW: Kopieren von Zeilen aus versch. Tabellenblättern
30.03.2007 16:15:28
Zeilen
ja sicher. Einfach eine Schleife analog zur zweiten hinzufügen:
'Kopieren aller Zeilen mit Basis'
dim letztezeile as integer
ende1 = Worksheets("HG5-Archiv").Cells(65536, 1).End(xlUp).Row
x = 3
For i = 3 To ende1
If Worksheets("HG5-Archiv").Cells(i, 5) = "5" Then
Worksheets("HG5-Archiv").Rows(i).Copy Destination:=Worksheets("Basis").Cells(x, 1)
x = x + 1
End If
Next
'Kopieren aller Zeilen mit Basis'
ende1 = Worksheets("HG9-Archiv").Cells(65536, 1).End(xlUp).Row
letztezeile = Worksheets("Basis").Range("A65536").End(xlUp).Row
x = letztezeile + 1
For j = 3 To ende1
If Worksheets("HG9-Archiv").Cells(j, 5) = "9" Then
Worksheets("HG9-Archiv").Rows(j).Copy Destination:=Worksheets("Basis").Cells(x, 1)
x = x + 1
End If
Next
'***
'ab hier ists neu
'***
ende1 = Worksheets("controll").Cells(65536, 1).End(xlUp).Row
letztezeile = Worksheets("Basis").Range("A65536").End(xlUp).Row
x = letztezeile + 1
For k = 3 To ende1
If Worksheets("controll").Cells(k, 5) = "5" Then
Worksheets("controll").Rows(k).Copy Destination:=Worksheets("Basis").Cells(x, 1)
x=x+1
elseif Worksheets("controll").Cells(k, 5) = "9" Then
Worksheets("controll").Rows(k).Copy Destination:=Worksheets("Basis").Cells(x, 1)
x=x+1
end if
next
Anzeige
AW: Kopieren von Zeilen aus versch. Tabellenblättern
30.03.2007 16:28:00
Zeilen
Hallo Andreas,
vielen Dank für deine Hilfe. Klappt super, kannst du mir vielleicht noch kruz bei zwei Sachen erklären, warum es funktioniert und was dahinter steckt (den Code erklären). Damit ich beim nächsten mal nicht fragen muss, sondern es verstanden hab und selber kann?
End(xlUp).Row = Was bedeutet das?
For j = 3 To ende1 = Warum 3 und was verursacht Sie?
ende1 = Worksheets("HG5-Archiv").Cells(65536, 1).End(xlUp).Row = Steht auch in der ersten For-Schleife, aber ist hier nicht durch x=x+3 schon klar, wo er anfangen muss zu suchen?
AW: Kopieren von Zeilen aus versch. Tabellenblättern
30.03.2007 16:34:24
Zeilen
End(xlUp).Row = Was bedeutet das?
sucht ab einer bestimmten Zeile (steht als Range- oder Cells-Objekt davor) aufwärts (xlup) und nimmt die Zeilennummer (Row)
For j = 3 To ende1 = Warum 3 und was verursacht Sie?
Die Schleife läuft erst ab 3 los. Wahrscheinlich willst du erst ab er dritten Zeile suchen lassen, deswegen macht es keinen Sinn die Schleife schon ab "1" suchen zu lassen. Die Schleife läuft also von 3 bis ende1 (das ist auch eine Zahl)
ende1 = Worksheets("HG5-Archiv").Cells(65536, 1).End(xlUp).Row = Steht auch in der ersten For-Schleife, aber ist hier nicht durch x=x+3 schon klar, wo er anfangen muss zu suchen?
du verwechselst die worksheets! Schau mal genauer hin, es steht immer eine andere Worksheet drin in der er die letzte zeile sucht. Außerdem hat das mit deinem "x" gar nichts zu tun, diese Suche die du da machst brauchst du für die Schleife, x ist was anderes (nämlich die Zeile in der Tabelle "Basis")
Ich hoffe ich konnte dir helfen, mus sjetzt leider los.
Bis dann
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige