Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1328to1332
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

Daten per Makro kopieren For Schleife

Daten per Makro kopieren For Schleife
10.09.2013 21:13:52
Michael
Hallo Zusammen,
habe hier ein Code der einzelne Spalten mit dem Ziel vergleicht und wenn diese nicht vorhanden sind, die Spalte in die Ziel Tabelle kopiert. Läuft auch gut. NUR ich würde gerne anstatt "for each tabelle", er macht es ja bei jeder tabelle.. ihm einfach sagen können für jeden Tabellennamen in einem Bereich (Habe hierfür ne Formel wo er alle Tabellennamen der Datei auflistet).
Makro würde nun alle Tabellenblätter die Daten auslesen und Kopieren. Ich würde es aba nur von _ Person1, Person2, Person3 usw machen. Wollte die Tabellenblätter mit einer Schleife ansprechen aba das klappt alles net. Vorallem das verschachteln ihm zu sagen für Tabelle Nr 3 bis Nr 5 vergleiche die Spalten mit dem Ziel und wenn se net schon vorhanden sind, füge se ein.

Public Sub ArbeitsblattNummern()
Dim lng As Long
For lng = 3 To 5 Step 1
ActiveWorkbook.Worksheets(lng).Cells(1, 2) = "1. so geht's"
Next lng
End Sub

Daten
Admin
Übersicht
Person1
Person2
Person3
Sub uebersicht()
Dim datei As String, pfad As String, Zzeile As Long, i%, suche, AZelle As Range
Dim ziel As Object
Dim Ziel1 As String
Ziel1 = ActiveWorkbook.Sheets("Tabelle1").Cells(1, 2).Value
Application.ScreenUpdating = False ' Bildschirmaktualisierung ausschalten
Set ziel = Workbooks("ziel.xlsm")
Zzeile = ziel.Sheets(Ziel1).Cells(Rows.Count, 5).End(xlUp).Row + 1
For Each tabelle In ThisWorkbook.Worksheets
'28 Zeilen kopieren
For i = 1 To 1000
suche = tabelle.Cells(i, 1).Value
With ziel.Sheets(Ziel1).Columns(1)
Set AZelle = .Find(suche, LookAt:=xlWhole, LookIn:=xlValues)
If AZelle Is Nothing Then
tabelle.Rows(i).Copy Destination:=.Cells(Zzeile, 1)
Zzeile = Zzeile + 1
End If
End With
Next i
DoEvents ' Benutzereingriffe zulassen z.B. Strg + C
Next tabelle
'ziel.Close savechanges:=True ' Datei schliesen
Application.ScreenUpdating = True ' Bildschirmaktualisierung einschalten
End Sub
Kann mir da jemand helfen?
Danke & Gruß
Michi

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten per Makro kopieren For Schleife
10.09.2013 21:29:51
Rudi
Hallo,
ungefähr so

Sub uebersicht()
Dim datei As String, pfad As String, Zzeile As Long, i%, suche, AZelle As Range
Dim ziel As Object
Dim Ziel1 As String
Dim rZelle as Range, tabelle as WorkSheet
Ziel1 = ActiveWorkbook.Sheets("Tabelle1").Cells(1, 2).Value
Application.ScreenUpdating = False ' Bildschirmaktualisierung ausschalten
Set ziel = Workbooks("ziel.xlsm")
Zzeile = ziel.Sheets(Ziel1).Cells(Rows.Count, 5).End(xlUp).Row + 1
For Each rZelle In Sheets("Liste").Range("A1:A10")  'anpassen
Set tabelle=Sheets(rZelle)
'28 Zeilen kopieren
For i = 1 To 1000
....
Gruß
Rudi

Anzeige
AW: Daten per Makro kopieren For Schleife
10.09.2013 21:54:32
Michael
Hi Rudi, danke für die Antwort,
er zeigt mir nen Fehler "Typen unverträglich" in der Fett markierten Zeile:
Sub uebersichtnew()
Dim datei As String, pfad As String, Zzeile As Long, i%, suche, AZelle As Range
Dim ziel As Object
Dim Ziel1 As String
Dim rZelle As Range, tabelle As Worksheet
Ziel1 = ActiveWorkbook.Sheets("Admin").Cells(16, 6).Value
Application.ScreenUpdating = False ' Bildschirmaktualisierung ausschalten
Set ziel = Workbooks("ziel.xlsm")
Zzeile = ziel.Sheets(Ziel1).Cells(Rows.Count, 5).End(xlUp).Row + 1
For Each rZelle In Sheets("Admin").Range("C19:C38")  'anpassen
Set tabelle = Sheets(rZelle)
For i = 1 To 1000
suche = Cells(i, 1).Value
With ziel.Sheets(pfad2).Columns(1)
Set AZelle = .Find(suche, LookAt:=xlWhole, LookIn:=xlValues)
If AZelle Is Nothing Then
Rows(i).Copy Destination:=.Cells(Zzeile, 1)
Zzeile = Zzeile + 1
End If
End With
Next i
Next rZelle
DoEvents
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Weist du da ne Lösung?
Danke Michi

Anzeige
AW: Daten per Makro kopieren For Schleife
10.09.2013 22:10:09
Rudi
Hallo,
keine Ahnung. Lad die Mappe hoch.
Gruß
Rudi

AW: Daten per Makro kopieren For Schleife
10.09.2013 22:31:28
Michael
Hi, hier is eine Beispielmappe, is natürlich nicht das Original, darf ich nicht laden, is für die Arbeit
https://www.herber.de/bbs/user/87232.xlsm
In Modul 1 der alte Code und in Modul 2 dein neuer Code.
Danke & Gruß Michi

anderer Versuch
10.09.2013 22:44:52
Rudi
Hallo,
Sub uebersicht()
  Dim datei As String, pfad As String, Zzeile As Long, i%, suche, AZelle As Range
  Dim ziel As Object
  Dim Ziel1 As String
  Dim tabelle As Worksheet
  
  Ziel1 = ActiveWorkbook.Sheets("Tabelle1").Cells(1, 2).Value
  
  Application.ScreenUpdating = False ' Bildschirmaktualisierung ausschalten 
  Set ziel = Workbooks("ziel.xlsm")
  Zzeile = ziel.Sheets(Ziel1).Cells(Rows.Count, 5).End(xlUp).Row + 1
  For Each tabelle In ThisWorkbook.Worksheets
    If tabelle.Index > 2 Then
      '28 Zeilen kopieren 
      For i = 1 To 1000
        suche = tabelle.Cells(i, 1).Value
        With ziel.Sheets(Ziel1).Columns(1)
          Set AZelle = .Find(suche, LookAt:=xlWhole, LookIn:=xlValues)
          If AZelle Is Nothing Then
            tabelle.Rows(i).Copy Destination:=.Cells(Zzeile, 1)
            Zzeile = Zzeile + 1
          End If
        End With
      Next i
      DoEvents ' Benutzereingriffe zulassen z.B. Strg + C 
    End If
  Next tabelle
  'ziel.Close savechanges:=True ' Datei schliesen 
  Application.ScreenUpdating = True ' Bildschirmaktualisierung einschalten 
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel


Gruß
Rudi

Anzeige
AW: anderer Versuch
10.09.2013 23:33:57
Michael
Hi, also das mit den richtigen Tabellen nur nehmen klappt, aber er überschreibt einfach Daten. Habe nun noch Person 4 und 5 hinzugefügt mit andern Datumswerten und er überschreibt die alten einfach (z.b. Person1). Weist du warum? ich lade die Beispielmappe hoch. Und die Reinfolge stimmt auch nicht mehr. Anstatt 1,2,3,4,5 wirft er alles durcheinander.
https://www.herber.de/bbs/user/87234.xlsm
Danke
Michi

AW: Daten per Makro kopieren For Schleife
10.09.2013 21:52:51
Michael
Hi Danke für die Antwort, aber der Zeigt folgenden Fehler "Typen unverträglich in der "Fett" Zeile
Sub uebersichtnew()
Dim datei As String, pfad As String, Zzeile As Long, i%, suche, AZelle As Range
Dim ziel As Object
Dim Ziel1 As String
Dim rZelle As Range, tabelle As Worksheet
Ziel1 = ActiveWorkbook.Sheets("Admin").Cells(16, 6).Value
Application.ScreenUpdating = False ' Bildschirmaktualisierung ausschalten
Set ziel = Workbooks("ziel.xlsm")
Zzeile = ziel.Sheets(Ziel1).Cells(Rows.Count, 5).End(xlUp).Row + 1
For Each rZelle In Sheets("Admin").Range("C19:C38")  'anpassen
Set tabelle = Sheets(rZelle)
For i = 1 To 1000
suche = Cells(i, 1).Value
With ziel.Sheets(pfad2).Columns(1)
Set AZelle = .Find(suche, LookAt:=xlWhole, LookIn:=xlValues)
If AZelle Is Nothing Then
Rows(i).Copy Destination:=.Cells(Zzeile, 1)
Zzeile = Zzeile + 1
End If
End With
Next i
Next rZelle
DoEvents
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Weist du da ne Lösung?
Danke Michi
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige