Clever-Excel-Forum

Normale Version: automatisch neues Tabellenblatt + Daten kopieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5
Hier mein Code dazu! Der funktioniert am besten, wenn alle Zeilen in der Tabelle "Antrag" ohne Leerzeilen gefüllt werden! 

Code:
Sub Makro1()

For Each NeueTabelle In Worksheets("Antrag").Range("F10:F30").Value
   If Not IsEmpty(NeueTabelle) Then
           Sheets("Vorlage").Copy After:=Sheets(Sheets.Count)
           Application.DisplayAlerts = False
               On Error Resume Next: Sheets(NeueTabelle).Delete: On Error GoTo 0
               Application.DisplayAlerts = True
           Sheets(Sheets.Count).Name = NeueTabelle
           
               Bereich = Sheets.Count
               Bereich = Bereich + 7
               
               Set finden = ThisWorkbook.Sheets("Antrag").Range("F" & Bereich & ":" & "F30").Find(NeueTabelle)
               Zeile = finden.Row
               ActiveSheet.Cells(2, 3).Value = Sheets("Antrag").Cells(Zeile, 2).Value
               ActiveSheet.Cells(3, 3).Value = Sheets("Antrag").Cells(Zeile, 3).Value
               ActiveSheet.Cells(6, 3).Value = Sheets("Antrag").Cells(Zeile, 4).Value
               ActiveSheet.Cells(7, 3).Value = Sheets("Antrag").Cells(Zeile, 5).Value
               ActiveSheet.Cells(8, 3).Value = Sheets("Antrag").Cells(Zeile, 6).Value
               ActiveSheet.Cells(9, 3).Value = Sheets("Antrag").Cells(Zeile, 7).Value
               ActiveSheet.Cells(10, 3).Value = Sheets("Antrag").Cells(Zeile, 8).Value
               ActiveSheet.Cells(11, 3).Value = Sheets("Antrag").Cells(Zeile, 9).Value
               ActiveSheet.Cells(12, 3).Value = Sheets("Antrag").Cells(Zeile, 10).Value
               ActiveSheet.Cells(13, 3).Value = Sheets("Antrag").Cells(Zeile, 11).Value
               ActiveSheet.Cells(15, 3).Value = Sheets("Antrag").Cells(Zeile, 12).Value
               ActiveSheet.Cells(16, 3).Value = Sheets("Antrag").Cells(Zeile, 13).Value
               ActiveSheet.Cells(19, 3).Value = Sheets("Antrag").Cells(Zeile, 14).Value
               ActiveSheet.Cells(20, 3).Value = Sheets("Antrag").Cells(Zeile, 15).Value
               ActiveSheet.Range("C:C").HorizontalAlignment = xlCenter
   
   End If
   
Next
Boaaah du bist der Hammer!! Danke dir!!! Richtig gut! Es funktioniert! Vielen Vielen Dank!! :)
Eine Frage hätte ich noch: was müsste ich da jetzt am Makro ändern wenn ich theoretisch noch eine Tabelle an den Anfang stellen würde die ganz unabhängig davon Inhalte enthält (also auch keine Rolle spielt für das Makro?) Das funktioniert dann nämlich nicht mehr

Code:
Zeile = finden.row

da kommt es dann nicht weiter :)
Das ganze Makro ist für den Zeilenbereich von Zeile 10 bis 30 geschrieben! Dazu musst das ganze Makro umgeschrieben werden!
Das habe ich verstanden. Ich möchte ja auch keine Zeilen hinzufügen sondern wollte fragen, was man tun müsste, wenn "Vorlage" nicht mehr das erste Tabellenblatt wäre sondern das zweite. Oder sollte sich das eigentlich gar nicht auf das Makro auswirken?

Danke und liebe Grüße
Das verschieben des Tabellenblatt sollte keine Auswirkung haben, aber das hinzufügen von weitern Blättern! Bevor das Makro ausgeführt wird darf die Mappe nur 2 Blätter haben!
Ahh ich verstehe vielen Dank! Und was müsste man ändern? oder müsste dann das ganze Makro komplett neu gemacht werden? Versuche nur das zu verstehen und daraus zu lernen :) Damit ich es das nächste mal selber hinkriege Sleepy
Danke dir :)
Das ist kein Hexenwerk! Über finden suche ich den Namen des neuen Tabellenblatt in der Liste und lasse mir die Zeile des gefundenen Begriff ausgeben! Damit kann ich dann Stück für Stück die Daten übertragen. Da find genauso wie der Sverweis immer den ersten Treffer zurück gibt verkleinere ich die Matrix mit jedem Durchgang um eine Zeile, um eventuell doppelt vorkommende Namen nicht falsch zuzuordnen! Allerdings bleibt ein Fehlerrisiko, wenn Leerzeilen zwischen den Daten sind!
Hallo Frogger,

ich will nicht großartig in diese Geschichte eingreifen, denn ich habe momentan nicht wirklich Zeit
für Excel. Du schreibst:

Zitat:... Bevor das Makro ausgeführt wird darf die Mappe nur 2 Blätter haben

Warum ist das so?
Wie gesagt, ich habe mich hier nicht wirklich eingelesen, aber man könnte vielleicht mit einer
IF-, oder Case-Anweisung auch auf mehrere Blätter zugreifen und somit die Zwei-Blatt-Grenze
aushebeln.
ajajaj also der Ansatz mit dem SVerweis den ich auch hatte in Makroform das ist ja super! Jetzt versteh ich das :) Die Formulierungen muss man halt lernen - gibts da irgendwo ne Liste mit Befehlen?

Zitat:
Zitat: schrieb:... Bevor das Makro ausgeführt wird darf die Mappe nur 2 Blätter haben

Warum ist das so?

Das würde mich auch interessieren :)
Seiten: 1 2 3 4 5