Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
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
Inhaltsverzeichnis

Zellen kopieren

Zellen kopieren
19.04.2009 20:17:53
Sandra
Hallo zusammen,
ich möche per Makro Tabellen in eine Gesamttabelle kopieren. Welche Tabellen das sein sollen, möchte ich gerne mittels einer Userform festlegen. Diese Tabellen sollen immer nur ab Zeile 8 kopiert werden und es sollen auch nur die Spalten A bis f kopiert werden.
Folgendes Makro habe ich mir schon einmal mittels Archiv gebastelt:

Sub Zeilen_kopieren_wenn_bestimmter_inhalt()
Dim i As Integer
Dim r As Range
j = 8 'Zeile, ab der die Daten eingefügt werden
x = Range("c65536").End(xlUp).Row 'letze benutze zeile
For i = 8 To x
If Worksheets("Februar 2009").Cells(i, 4).Value  " " Or _
Worksheets("Februar 2009").Cells(i, 2).Value = 500 Then 'Cells(i,1) bedeutet suche in Spalte A
Worksheets("Gesamt").Rows(j).Columns("A:f").Value = Worksheets("Februar 2009").Rows(i).Columns(" _
A:f").Value 'alle Zeilen mit Spalten a bis F
j = j + 1
End If
Next i
Sheets("Gesamt").Select
End Sub


Wichtig ist die Auswahl, ob kopiert werden soll, wenn ein bestimmter Zellinhalt vorliegen soll (siehe mein Makro)
Problem an der Sache:
- ich habe keine Userform (davon habe ich überhaupt keine Ahnung) und somit keine Auswahl der gewünschten Tabellen
- das Makro kopiert immer ab der Zeile 8. Beim ersten kopieren ist das ja noch richtig, aber der Inhalt der zweiten Tabellen soll natürlich an die Stelle, wo die anderen Daten aufhören.
Wer ist so nett und hilft mir. Vielen lieben Dank!
LG
Sandra

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen kopieren
19.04.2009 21:21:43
Daniel
Hi
ich hab dein Makro mal überarbeitet (aber mangels Beispieldatei nicht getestet)

Sub Zeilen_kopieren_wenn_bestimmter_inhalt()
Dim i As Long, j As Long, x As Long
Dim shMonat As Worksheet
Dim shGes As Worksheet
Set shGes = Sheets("Gesamt")
'--- Schleife über alle selektierten Sheets
For Each shMonat In ActiveWindow.SelectedSheets
'--- erste leere Zeile im Blatt "Gesamt" finden
j = WorksheetFunction.Max(8, shGes.Cells(Rows.Count, 3).End(xlUp).Row + 1)
'--- Letzte Datenzeile im Monatsblatt finden
x = shMonat.Cells(Rows.Count, 3).End(xlUp).Row
For i = 8 To x
If shMonat.Cells(i, 4).Value  " " Or shMonat.Cells(i, 2).Value = 500 Then
shGes.Rows(j).Columns("A:f").Value = shMonat.Rows(i).Columns("A:f").Value
j = j + 1
End If
Next i
Next shMonat
shGes.Select
End Sub


die neukopierten Daten werden im Tabellenblatt "Gesamt" jetzt immer am Ende angefügt.
die Blattauswahl erfolgt jetzt einfach so, daß eine Schleife über alle selektierten Sheets läuft und diese nach "Gesamt" kopiert. dh. du klickst bei gedrückter STRG-Taste auf die Reiter der Sheets, die du kopieren willst und startest dann das Makro.
noch ein kleiner Tip, Variablen für Zeilennummern sollte man immer als LONG deklarieren, da Integer nur bis 32.000 und irgendwas gültig ist.
Gruß, Daniel

Anzeige
AW: Zellen kopieren
19.04.2009 21:30:36
Sandra
Hallo Daniel,
das ist eine tolle Lösung. Vielen Dank für die Hilfe und den Tipp!
LG und noch einen schönen Abend
Sandra

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige