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

Dringend: Brauche Hilfe bei Makro Schleife

Dringend: Brauche Hilfe bei Makro Schleife
22.05.2018 14:50:21
Sarah
Hallo,
ich arbeite gerade an einer Excel-Mappe mit dem Makro "FBerstellen":
https://www.herber.de/bbs/user/121747.xlsm
  • Reiter "LK-Blatt" soll für jedes Produkt durch das Makro "FBerstellen" per Mausklick auf das Makro erstellt werden (entsprechender Produktname & Partie wird aus Datensatz in "DruckZF" eingelesen) und in der entsprechenden Anzahl (die jeden Tag pro Produkt variiert doppelseitig bzw. (bei z.B. 3 benötigten Exemplaren) auch einseitig gedruckt.

  • Im Reiter "DruckZF" existiert pro Produkt eine Zeile mit den entsprechenden Angaben, wie das Produkt & die Partie heißen (diese Daten werden dann automatisch ins Formblatt "LK-Blatt" übernommen), sowie die Anzahl der benötigten Kopien

  • Das Makro "FBerstellen" funktioniert soweit perfekt, das Problem ist jetzt nur, dass ich nicht für jede Zeile meines Produktdatensatzes ein Makro schreiben möchte, sondern gerne eine Lösung hätte, die meinen Datensatz Zeile für Zeile durchgeht.
    Ich bin ein ziemlicher Anfänger mit Makros. Kann man das vllt mit einer Schleife o.ä. machen?
    Hier der Teil des Makros (der fett hervorgehobene Teil), der sich immer wiederholen sollte:
    Sub FBerstellen()
    If MsgBox("Formblätter Linienkontrolle drucken? Sind alle bekannten Partien eingetragen?",  _
    vbOKCancel, "Drucken") = vbOK Then
    If Sheets("DruckZF").Range("C14").Value > 0 Then
    'FB 14 erstellen
    Sheets("LK-Blatt").Select
    Range("F4").Select
    ActiveCell.FormulaR1C1 = "=DruckZF!R[10]C[7]"
    Range("A5:B5").Select
    ActiveCell.FormulaR1C1 = "=DruckZF!R[9]C[13]"
    Range("A5:B5").Select
    '14
    If Sheets("DruckZF").Range("B14").Value > 0 Then
    Sheets("Lk-Blatt").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=Sheets("DruckZF").Range("B14").Value, Collate:= _
    True, _
    IgnorePrintAreas:=False
    Else
    End If
    'nur-einseitig
    If Sheets("DruckZF").Range("D14").Value > 0 Then
    Sheets("LK-Blatt").Select
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=Sheets("DruckZF").Range("D14" _
    ).Value, Collate:=True, _
    IgnorePrintAreas:=False
    Else
    End If
    Else
    End If
    End Sub
    
    ---------------------------
    Freue mich über jeden Hinweis :-) .
    Vielen Dank schonmal.

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

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Dringend: Brauche Hilfe bei Makro Schleife
    22.05.2018 16:08:02
    Dieter
    Hallo Sarah,
    das Programm könnte folgendermaßen aussehen:
    Sub FBerstellen()
    Dim letzteZeile As Long
    Dim wsDru As Worksheet
    Dim wsLK As Worksheet
    Dim zeileDru As Long
    Set wsDru = ThisWorkbook.Worksheets("DruckZF")
    Set wsLK = ThisWorkbook.Worksheets("LK-Blatt")
    If Not MsgBox("Formblätter Linienkontrolle drucken? Sind alle bekannten Partien eingetragen?", _
    vbOKCancel, "Drucken") = vbOK Then
    Exit Sub
    End If
    letzteZeile = wsDru.Cells(wsDru.Rows.Count, "C").End(xlUp).Row
    For zeileDru = 12 To letzteZeile
    If Not IsEmpty(wsDru.Cells(zeileDru, "C")) Then
    If wsDru.Cells(zeileDru, "C") > 0 Then
    wsLK.Range("F4") = wsDru.Cells(zeileDru, "M")
    wsLK.Range("A5") = wsDru.Cells(zeileDru, "N")
    If wsDru.Range("B14") > 0 Then
    wsLK.PrintOut Copies:=wsDru.Range("B14")
    End If
    If wsDru.Range("D14") > 0 Then
    wsLK.PrintOut From:=1, _
    To:=1, _
    Copies:=wsDru.Range("D14")
    End If
    End If
    End If
    Next zeileDru
    End Sub
    
    Viele Grüße
    Dieter
    Anzeige
    AW: Dringend: Brauche Hilfe bei Makro Schleife
    24.05.2018 18:43:56
    Sarah
    Das sieht ja super aus! Vielen Dank, Dieter, für die schnelle Hilfe!!!
    AW: Dringend: Brauche Hilfe bei Makro Schleife
    28.05.2018 07:54:15
    Sarah
    Guten Morgen,
    hab das Makro gerade ausprobiert. Vielen vielen Dank für die Hilfe bis jetzt.
    Ein Problem gibt es jetzt noch, und zwar mit dem Schlussteil.
    Die Bezüge B14 & D14 müssen sich auch verändern, jede Zeile hat ja ihre eigene Seitenanzahl. Also müsste der Bezug auch wieder bei B12/D12 anfangen, und dann immer eine Zeile weiter nach unten gehen parallell zu dem Erstellen der Formblätter.
    Wie könnte ich das denn noch einbauen?
    AW: Dringend: Brauche Hilfe bei Makro Schleife
    28.05.2018 09:01:01
    Sarah
    Hab es jetzt selber noch hingekriegt :-)
    Sub FBerstellen()
    Dim letzteZeile As Long
    Dim wsDru As Worksheet
    Dim wsLK As Worksheet
    Dim zeileDru As Long
    Set wsDru = ThisWorkbook.Worksheets("DruckZF")
    Set wsLK = ThisWorkbook.Worksheets("LK-Blatt")
    If Not MsgBox("Formblätter Linienkontrolle drucken? Sind alle bekannten Partien eingetragen?" _
    , _
    vbOKCancel, "Drucken") = vbOK Then
    Exit Sub
    End If
    letzteZeile = wsDru.Cells(wsDru.Rows.Count, "C").End(xlUp).Row
    For zeileDru = 12 To letzteZeile
    If Not IsEmpty(wsDru.Cells(zeileDru, "C")) Then
    If wsDru.Cells(zeileDru, "C") > 0 Then
    wsLK.Range("F4") = wsDru.Cells(zeileDru, "M")
    wsLK.Range("A5") = wsDru.Cells(zeileDru, "N")
    If wsDru.Cells(zeileDru, "B") > 0 Then
    wsLK.PrintOut Copies:=wsDru.Cells(zeileDru, "B")
    End If
    If wsDru.Cells(zeileDru, "D") > 0 Then
    wsLK.PrintOut From:=1, _
    To:=1, _
    Copies:=wsDru.Cells(zeileDru, "D")
    End If
    End If
    End If
    Next zeileDru
    End Sub
    

    Anzeige

    300 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige