Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1624to1628
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 IF Anweisung

VBA IF Anweisung
25.05.2018 15:28:38
michael
Hallo, ich schaffe es einfach nicht eine IF Schleife in mein Makro einzubauen.
In Kurzform: Ich habe per Makro eine Liste erstellt die sich auf Daten aus anderen Tabellenblättern bezieht. Soweit - so gut. Diese neue Liste kann in der Zeilenanzahl variabel sein(bis max. 500 Zeilen)
Was ich erreiche möchte ist das in dieser Liste "Briefköpfe" an bestimmten Stellen eingefügt werden, damit beim ausdrucken auf jeder Seite ein Briefkopf vorhanden ist.
In einfachen Worten stelle ich mir das so vor:
Prüfung in Tabelle2
(Zeilen 1-48 brauchen nicht geprüft werden)Hier steht fertiger Text
Wenn Zeile 49, Spalte A = NICHTLEER
Dann 3 Zeilen (3:5) aus Tabelle1 einfügen (Kopierte Zeilen einfügen)
Sonst Nichts machen
Danach
Wenn Zellen eingefügt wurden
Dann Prüfung in Tabelle2
Wenn Zeile 97, Spalte A = NICHTLEER
Dann 3 Zeilen (3:5) aus Tabelle1 einfügen (Kopierte Zeilen einfügen)
Sonst Nichts machen
Danach
Wenn Zellen eingefügt wurden
Dann Prüfung in Tabelle2
Wenn Zeile 145, Spalte A = NICHTLEER
Dann 3 Zeilen (3:5) aus Tabelle1 einfügen (Kopierte Zeilen einfügen)
Sonst Nichts machen
Danach
Wenn Zellen eingefügt wurden
Dann Prüfung in Tabelle2
Wenn Zeile 193, Spalte A = NICHTLEER
Dann 3 Zeilen (3:5) aus Tabelle1 einfügen (Kopierte Zeilen einfügen)
Sonst Nichts machen
Das sollte natürlich alle 48 Zeilen(incl. eingefügtem Briefkopf)so weiter gehen bis das Makro eine leere Zeile findet.
Hoffe das mir jemand Helfen kann, und freue mich schon auf eure Antworten.

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

Betreff
Datum
Anwender
Anzeige
Fragen ... Beispielmappe bitte
25.05.2018 15:57:30
Werner
Hallo Michael,
meiner Meinung nach noch nicht eindeutig.
Was meinst du mit eingefügt?
-sollen 3 neue Zeilen eingefügt werden, so dass die nachfolgenden Zeilen nach unten verschoben werden?
-oder sollen 3 Zeilen im Blatt 2 überschreiben werden?
-wenn eingefügt werden soll, wo oberhalb zB A97 oder unterhalb?
Was soll passieren mit z.B. Zelle A97 (wenn dort ein Wert vorhanden ist)
-soll dieser Wert überschreiben werden?
Am besten eine kleine Beispielmappe an der du vorher/nachher aufzeigst.
Bitte eine normale Excel ohne Makros, ich kann derzeit keine .xlsm herunterladen.
Gruß Werner
Wo soll
Anzeige
AW: Fragen ... Beispielmappe bitte
26.05.2018 01:29:52
michael
Habe eine Beispielmappe beigefügt. Leider ist es doch eine .xlsm geworden. Habe sie aber in eine .zip gepackt. Hoffe das das geht. Wenn nicht muss ich es nochmals anders versuchen.
https://www.herber.de/bbs/user/121833.zip
@Werner
Was meinst du mit eingefügt?
"Kopierte Zellen einfügen" bedeutet das nachfolgende Zeilen nach unten verschoben werden
-sollen 3 neue Zeilen eingefügt werden, so dass die nachfolgenden Zeilen nach unten verschoben werden?
Nicht 3 neue leere Zeilen; sondern 3 Bestimmte aus einem anderen Reiter
-oder sollen 3 Zeilen im Blatt 2 überschreiben werden?
NEIN
-wenn eingefügt werden soll, wo oberhalb zB A97 oder unterhalb?
Zeile 97 und folgende werden nach unten verschoben damit eine Druckseiten länge von 48Zeilen erreicht wird. "Alte" Zeile 97 ist dann Zeile 100
Was soll passieren mit z.B. Zelle A97 (wenn dort ein Wert vorhanden ist)
-soll dieser Wert überschreiben werden?
Nein, nach unten verschieben
Anzeige
AW: Fragen ... Beispielmappe bitte
26.05.2018 02:46:43
michael
Nun auch eine .xlsx als Beispieldatei. Wiederum als zip gepackt. Vorhandene Subs habe ich als Text auf neuem Reiter hinterlegt.
https://www.herber.de/bbs/user/121834.zip
AW: Fragen ... Beispielmappe bitte
26.05.2018 10:09:16
Werner
Hallo Michael,
so:
Public Sub Briefkopf_einfügen()
Dim loStart As Long
Application.ScreenUpdating = False
With Worksheets("NOM_LS")
loStart = 49
Do
If loStart > 49 Then loStart = loStart + 3
Worksheets("Köpfe").Rows("3:5").Copy
.Rows(loStart).Insert
Application.CutCopyMode = False
loStart = loStart + 48
Loop While .Cells(loStart, 1)  ""
End With
Application.ScreenUpdating = True
End Sub
Gruß Werner
Anzeige
AW: Fragen ... Beispielmappe bitte
26.05.2018 21:47:45
michael
Hallo Werner
Vielen Dank für deine Hilfe. Es klappt alles wunderbar. Vielen, vielen Dank dafür!!!
Gruß Michael
Gerne u. Danke für die Rückmeldung. o.w.T.
26.05.2018 23:11:14
Werner

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige