Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1860to1864
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 Zelle auslesen und Makro Schleife

VBA Zelle auslesen und Makro Schleife
27.12.2021 09:17:17
Gigi
Hallo,
bitte um Hilfe... ich möchte ein Makro ausführen, welches auf Basis folgender Daten manuell gestartet werden kann. Meine VBA Kenntnisse sind noch sehr bescheiden, aufgrund dieser umfangreichen Programmierung stehe ich jetzt leider etwas an und weiß nicht recht weiter :-(
Die Daten stehen in einer eigenen Datei. Das Makro, welches manuell gestartet wird mittels Button, erstellt dann automatisch eine neue Datei und kopiert die Vorlagen.
In der Ausgangsdatei steht zB
Spalte C Spalte D
Untersuchung 3
Therapie 2
Warten 4
usw.
Zuerst soll das Wort in Spalte C zB "Untersuchung" ausgelesen werden und dann das Makro Untersuchung 3 x ausgeführt werden. Die Anzahl für die Ausführung steht in Spalte D. Dann soll das nächste Wort in Spalte C ausgelesen werden "Therapie" und das Makro Therapie dann 2x ausgeführt werden. usw
In der Spalte C können aber bis zu 150 verschiedene Worte stehen zB Untersuchung, Therapie, Warten, Umkleide, usw.
Ich möchte aus einer vorgelagerten Datei die Daten beziehen und dann die verschiedenen Makros ausführen. Die Ausgangsdatei ist projektabhängig und kann von der Anzahl der Wörter in Spalte C extrem variieren. Ich hoffe mit meiner Erklärung kann mir ein VBA-Profi helfen.
Vielen Dank für eure Hilfe.
Grüße
Gigi

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zelle auslesen und Makro Schleife
27.12.2021 12:05:36
ralf_b
Hallo Gigi,
so schwer ist das eigentlich nicht. Eigentlich soll heißen, mit mehr Informationen wäre es einfacher.
Du erstellst mit dem noch nicht existenten Makro eine neue Datei. Da sollen Vorlagen rein.
Was sind das denn für Vorlagen? Bereiche,Tabellen oder ganze Arbeitsblätter?
Ich schätze die angeblich medizinlastigen Makros kopieren jeweils eine Vorlage.
Woher wissen deine mehrfach auszuführenden Makros wohin sie die Vorlagen kopieren sollen? Oder was machen die?
Ansonsten ist es ja eine simple Schleifenkonstruktion um die Liste durchlaufen zu lassen.
Es stellen sich dann noch weitere Fragen. Die Pfade zum Beispiel. Sind die bekannt oder noch nicht?
das brauchst du:
- button zum auslösen des Makros , wahlweise das Makro über Menü aufrufen
- 2 Objektvariablen erzeugen für die neue Datei und die mit den Daten
- Schleife do loop, do while oder for next um Werte für die Namen und Anzahlen aus der Range oder den Cells lesen und in Variablen speichern
- eine Schleife für die n-malige Ausführung eines Makros
- Ausführung der Makros mittels Application.run
- neue Datei speichern und schließen.
das klingt doch gar nicht so dramatisch.
Anzeige
AW: VBA Zelle auslesen und Makro Schleife
27.12.2021 12:36:11
Gigi
Hallo Ralf,
danke für deine Rückmeldung.
Ich erstelle mit einem bereits existierendem Makro mittles Button eine neue Datei die automatisch gespeichert (Raumblätter Autofill.xlsx )wird und mir eine leere Vorlage zu den Raumblättern als Arbeitsmappe (BO Raumblätter) erstellt.
Dann benötige ich ein weiteres Makro, welches mir aus der Datei "RuF Vorlagen.xlsx" die Spalte C (Räume) pro Zeile ausliest und dann die jeweilige Vorlage in die neue Datei (Raumblätter Autofill.xlsx) in die Arbeitsmappe (BO Raumblätter) untereinander kopiert.
Das Makro für die Erstellung der neuen Datei hab ich schon.
Das Makro für die verschiedenen Raumbezeichnungen auch.
Jetzt muss ich das nur noch irgendwie zusammenführen... ich hab wenig Erfahrung mit VBA bzw. hab alles aus dem Internet oder Handbüchern.
RuF Vorlagen.xlsx => darin enthalten sind die Raumbezeichnungen und die Anzahl der zu ausführenden Schleifen
Raumblätter Autofill.xlsx => in diese Datei bzw. dem Tabellenblatt "BO Raumblätter" sollen die Vorlagen kopiert werden.
Datenbasis Raumblätter.xlsx => in dieser Datei sind 170 Tabellenblätter für die einzelnen Räume. Aus diesen Tabellenblätter kopiere ich immer nur einen Bereich mit folgendem Makro:

Sub Makro2BettZimmerAK()
'Einfügen Daten aus Register 2-Bett-Zimmer (Basisdaten)
Windows("Raumbezeichnungen Datenbasis Autofill.xlsx").Activate
Sheets("2-Bett-Zimmer AK").Select
Range("A1:H66").Select
Selection.Copy
Windows("Raumblätter Automatische Speicherung Makro.xlsx").Activate
' Seitenwechsel einfügen'
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
End Sub
Ich hab bisher leider noch nie einen Befehl für einen Loop geschrieben :-(
Grüße Gigi
Anzeige
AW: VBA Zelle auslesen und Makro Schleife
27.12.2021 17:16:53
ralf_b
Hallo Gigi,
hier ein Versuch der Umsetzung(ohne Garantie) was die Raumliste und die Kopie der Raumblätter betrifft.
Ich hoffe der Code ist nachvollziehbar.

Sub vorlagenübernehmen()
Dim objRuF As Workbook, objVL As Workbook, objRaeume As Workbook
'Schleifenvariablen
Dim i      As Long, lLetzteZeile As Long
Dim cnt As Integer, iAnzahlDurchlaeufe As Integer
Dim lLetzteZeileVorlage As Long
Dim sh1RuF    As Worksheet
Dim sRaumname As String
'Objektvariaben für Datei und Sheets
Set objRuF = Workbooks("RuF Vorlagen.xlsx")
Set sh1RuF = objRuF.Worksheets(1)
Set objRaeume = Workbooks("Datenbasis Raumblätter.xlsx")
Set objVL = Workbooks.Add  'neue Datei
objVL.SaveAs Filename:=ThisWorkbook.Path & "\" & "Raumblätter Autofill.xlsx"
objVL.Worksheets(1).Name = "BO Raumblätter"
lLetzteZeile = sh1RuF.Cells(Rows.Count, "C").End(xlUp).Row
For i = 2 To lLetzteZeile                     'i ist noch auf erste Datenzeile in C zu setzen
sRaumname = sh1RuF.Range("C" & i).Value
iAnzahlDurchlaeufe = sh1RuF.Range("D" & i).Value
With objVL.Worksheets("BO Raumblätter")
objRaeume.Worksheets(sRaumname).UsedRange.Copy  'kopiert den gesamten genutzten Bereich
For cnt = 1 To iAnzahlDurchlaeufe
lLetzteZeileVorlage = .SpecialCells(xlCellTypeLastCell).Row
Paste Destination:=.Cells(lLetzteZeileVorlage + 1, 1)
lLetzteZeileVorlage = .SpecialCells(xlCellTypeLastCell).Row
.HPageBreaks.Add before:=.Cells(lLetzteZeileVorlage + 1, "A")
Next
Application.CutCopyMode = False
End With
Next
objVL.Save
objVL.Close
Set objVL = Nothing
Set objRuF = Nothing
Set objRaeume = Nothing
Set sh1RuF = Nothing
End Sub

Anzeige
AW: VBA Zelle auslesen und Makro Schleife
28.12.2021 08:15:12
Gigi
Vielen lieben Dank Ralf... ich werde den Code im laufe des Tages probieren!

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige