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

VBA-Schleife

VBA-Schleife
29.06.2016 15:00:59
Nik
Hallo zusammen,
ich stecke etwas fest in VBA. Nach beigehängter Tabelle soll VBA im Masterfile folgende Dinge tun:
1. Für Person 1 soll VBA im Masterfile das Tab "Input" (Mastertab) entsprechend kopieren und nach dem Konto umbenennen bei dem das erste "x" steht und gleichzeitig in diesem Tab auch den gleichen Namen in Zelle D1 schreiben. Für Person 1 sollte dieses File dann 3 Tabs ausweisen mit den 3 Konten.
2. Dann soll VBA das File unter dem Pfad und Dateiname der Person 1 abspeichern.
3. Jetzt soll VBA bei Person 2 erstmal alle Tabs bis auf das Master-Tab löschen und wieder anfangen Tabs zu generieren je nach "x", und dann wieder abspeichern unter Dateiname und Pfad der 2. Person.
4. jetzt wieder von vorne für Person 3 bis Person 10 (werden wohl 10 sein.
Wie mache ich das am besten? Irgendwie stehe ich ein wenig auf dem Schlauch :-(
https://www.herber.de/bbs/user/106614.xlsx
Vielen lieben Dank und Gruss
Nik

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Schleife
29.06.2016 17:19:26
Michael
Hallo Nik!
Deine Bsp-Datei mit Code (Modul1): https://www.herber.de/bbs/user/106623.xlsm
Ich habe Deiner Bsp-Datei ein Tabellenblatt "Input" hinzugefügt, das ist quasi die Vorlage.
Diese Vorlage wird nun für jede Person die im Blatt "Sheet1" ab C6 angeführt ist (je nach Spalten, können auch mehr als 10 sein) so oft in eine neue Mappe kopiert, wie in der Spalte der jeweiligen Person "x" vorhanden sind. Die jeweiligen Daten werden übernommen und alle erstellten Mappen unter Pfad und Dateiname gespeichert und geschlossen.
Was ich Dir nicht eingebaut habe, sind Überprüfungen des Dateinamens, Pfads und ob die Tabellenblatt-Namen erlaubt sind, das bitte beachten und ggf. selbst anpassen.
Der Code:
Sub PersonenBlaetter()
Const VORLAGE As String = "Input"
Dim WbQ As Workbook
Dim WsQ As Worksheet
Dim WbZ As Workbook
Dim WsZ As Worksheet
Dim Liste As Range
Dim P As Range
Dim Z As Range
Dim Blatt As String
Dim Pfad As String
Dim Dname As String
Dim Pname As String
Dim clc
Set WbQ = ThisWorkbook
Set WsQ = WbQ.Worksheets("Sheet1")
With Application
.ScreenUpdating = False
clc = .Calculation
.Calculation = xlCalculationManual
End With
With WsQ
For Each P In .Range(.Range("C6"), .Range("C6").End(xlToRight))
Set WbZ = Workbooks.Add
Set Liste = P.Offset(1, 0).Resize(.Cells(.Rows.Count, 2).End(xlUp).Row - 6, 1)
For Each Z In Liste.SpecialCells(xlCellTypeConstants)
Blatt = .Cells(Z.Row, 2).Value
Pfad = .Cells(4, Z.Column).Value
Dname = .Cells(5, Z.Column).Value
Pname = .Cells(6, Z.Column).Value
WbQ.Worksheets(VORLAGE).Copy after:=WbZ.Worksheets(WbZ.Worksheets.Count)
Set WsZ = ActiveSheet
With WsZ
.Name = Blatt
.Range("D1").Value = Pname
End With
With WbZ
Application.DisplayAlerts = False
.Worksheets(1).Delete
Application.DisplayAlerts = True
.SaveAs Pfad & Dname, FileFormat:=52
.Close
End With
Next Z
Next P
End With
Set WbQ = Nothing
Set WsQ = Nothing
Set WbZ = Nothing
Set WsZ = Nothing
Set Liste = Nothing
Set P = Nothing
Set Z = Nothing
With Application
.ScreenUpdating = True
.Calculation = clc
End With
End Sub
Passt?
LG
Michael

Anzeige
AW: VBA-Schleife
30.06.2016 14:01:37
Nik
Hi Michael,
vielen lieben Dank für Deine schnelle Hilfe und sorry dass ich erst jetzt antworte. Hab mir Deinen Code angeschaut, wobei eher ausprobiert weil teilweise verstehe ich nur Bahnhof. Allerdings hängt der Code nach dem 1. File für Person 1. Und das File von Person 1 enthält auch nur 1 Tab mit dem Namen vom ersten x. Die erste Datei müsste eigentlich 3 Tabs enthalten (Konto 600`000, Konto 600`030 und Konto 600`070). Siehst Du eventuell spontan woran das liegen könnte? Vielleicht habe ich es ja falsch erklärt.. Im vorliegenden Bsp. müssten 4 Files generiert werden: Person1 mit 3 Tabs, Person2 mit 4 Tabs, Person3 ebenfalls mit 4 Tabs und Person4 mit 3 Tabs. Sprich jede Person bekommt 1 File mit entsprechender Anzahl Tabs wie eben bei dieser Person x vorhanden sind.
Vielleicht kannst Du mir da nochmals kurz auf die Sprünge helfen, ich tue mich noch etwas schwer, versuche jetzt aber Schritt für Schritt den code nachzuvollziehen.
Vielen lieben Dank und Gruss
Nik

Anzeige
AW: VBA-Schleife
30.06.2016 14:48:57
Michael
Hallo!
Hier nochmal die Datei mit korrigiertem Code: https://www.herber.de/bbs/user/106648.xlsm
Läuft bei mir jetzt korrekt durch. Ich hab beim "Code aufräumen" was verschoben.
Sollte jetzt passen, bitte teste nochmal!
Meine vorherigen Anmerkungen bleiben natürlich aufrecht (Fehlerüberprüfungen).
Gib Bescheid
LG
Michael

Und hier noch mit Kommentaren
30.06.2016 15:12:39
Michael
Hallo Nik!
Bzgl. teilweise verstehe ich nur Bahnhof und ich tue mich noch etwas schwer, versuche jetzt aber Schritt für Schritt den code nachzuvollziehen. habe ich Dir die korrigierte Mappe nochmal hochgeladen, mit kommentiertem Code: https://www.herber.de/bbs/user/106650.xlsm
LG
Michael

Anzeige
AW: VBA-Schleife
30.06.2016 16:02:14
Nik
Hi Michael,
super, wie schnell der Code funktioniert! Vielen vielen vielen Dank, weiss ich wirklich arg zu schätzen! Kapieren tue ich noch nicht alles, aber ich werde mir da nun wirklich Zeit nehmen um das zu verstehen was der Code alles macht, so dass ich auch noch ein paar Änderungen vornehmen kann.
Vielen lieben Dank und schon bald einen schönen Abend!
Gruss
Nik

Gerne! Schau Dir meine 2. Antwort an...
30.06.2016 16:14:38
Michael
Hallo Nik,
ich hab Dir auch eine Datei mit Kommentaren im Code hochgeladen - schau Dir die ggfs. an!
Ebenfalls schönen Abend!
LG
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige