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

Excel VBA Artikel duplizieren/qty Zelle

Excel VBA Artikel duplizieren/qty Zelle
27.04.2023 12:16:11
Pascala

Hallo zusammen,

ich habe folgendes Problem:
Ich möchte gerne mit Hilfe eines Makros Einige Artikel duplizieren.
Die Menge wie oft dupliziert werden soll pro Artikel steht in Spalte N.
Des weiteren soll die Spalte Q (specs) bei jedem einfügen in die Tabelle ein SET 1 - (spec) fortlaufend vergeben.

Ich habe eine Beispiel Datei mit Kommentaren angehängt.

Danke & viele Grüße

https://www.herber.de/bbs/user/158926.xlsx

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel VBA Artikel duplizieren/qty Zelle
27.04.2023 12:48:25
MCO
Hallo Pascala!

Ich hab dir mal was gebaut:

Bei jeder Zahl die du in "K" schreibst, werden nachfolgend die gewünschten Werte eingefügt.
Schau es dir mal an
https://www.herber.de/bbs/user/158928.xlsm

Private Sub Worksheet_Change(ByVal Target As Range)


    'Änderung in "K"
    Set bereich = Application.Intersect(Target, Range("K35:K999"))
    If bereich Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    If Cells(Target.Row, "F") > "" Then
        qty = Target
        specs = Cells(Target.Row, "O")
        For i = 1 To qty - 1
            Rows(Target.Row + 1).Insert
            Cells(Target.Row + 1, "F") = Cells(Target.Row, "F")
            Cells(Target.Row + 1, "K") = 1
            Cells(Target.Row + 1, "O") = "Set " & qty - i + 1 & " - " & specs
        Next i
        Cells(Target.Row, "K") = 1
        Cells(Target.Row, "O") = "Set " & 1 & " - " & specs
    End If
    
    Application.EnableEvents = True
End Sub

Gruß, MCO


Anzeige
AW: Excel VBA Artikel duplizieren/qty Zelle
27.04.2023 15:24:27
Pascala
Hallo MCO,

absolut genial eigentlich genau das was ich brauche.
Vielen Dank dafür!

Nun werden jedoch die werte durch ein Makro in diese Tabelle übertragen.
Somit wird es leider nicht neu berechnet.
Hast du für mich vielleicht hierzu eine Lösung?

Viel Grüße


AW: Excel VBA Artikel duplizieren/qty Zelle
27.04.2023 17:03:53
Herbert_Grom
Hallo Pascal,

wenn du uns noch verrätst, was, wo, wie berechnet werden soll, können wir dir evtl. sogar helfen!

Servus


AW: Excel VBA Artikel duplizieren/qty Zelle
27.04.2023 17:04:40
MCO
Hallo,

Klar, dann machst du, nachdem die Tabelle fertig ist einen Durchlauf durch alle Werte.
Am besten von unten nach oben, da ja unterhalb immer Zeilen dazugefügt werden

Leider kann ich es jetzt gerade nicht testen, sondern nur so ungetestet aufschreiben...

  Sub Durchlauf()
lz = cells(rows,count,"K").end(xlup).row
for z = lz to 35 step -1 

    If Cells(lz, "F") > "" Then
        qty = Cells(lz, "K") 
        specs = Cells(lz, "O")
        For i = 1 To qty - 1
            Rows(lz + 1).Insert
            Cells(lz + 1, "F") = Cells(lz, "F")
            Cells(lz + 1, "K") = 1
            Cells(lz + 1, "O") = "Set " & qty - i + 1 & " - " & specs
        Next i
        Cells(lz, "K") = 1
        Cells(lz, "O") = "Set " & 1 & " - " & specs
    End If
End Sub
Probiers mal aus
Gruß, MCO


Anzeige
AW: Excel VBA Artikel duplizieren/qty Zelle
28.04.2023 07:03:50
Pascala
Hallo MCO,

beim ausführen des makros bekomme ich folgende Fehlermeldung:

Fehler beim Kompilieren:
Falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer Eigenschaft.

Es wird folgendes Wort im Code gehighlightet:

code:
Sub Durchlauf()
lz = Cells(Rows, Count, "K").End(xlUp).Row
For Z = lz To 35 Step -1

    If Cells(lz, "F") > "" Then
        qty = Cells(lz, "K")
        specs = Cells(lz, "O")
        For i = 1 To qty - 1
            Rows(lz + 1).Insert
            Cells(lz + 1, "F") = Cells(lz, "F")
            Cells(lz + 1, "K") = 1
            Cells(lz + 1, "O") = "Set " & qty - i + 1 & " - " & specs
        Next i
        Cells(lz, "K") = 1
        Cells(lz, "O") = "Set " & 1 & " - " & specs
    End If
End Sub
Danke & viele Grüße!


Anzeige
Fehlerteufelschen
28.04.2023 08:03:05
MCO
Moin!

cells - Syntax ist cells(zeile,spalte), wobei "Zeile" die letzte Zeile sein soll. Letze Zeile = Anzahl der Zeilen = rows.count
Damit muss die erste Zeile:
lz = Cells(Rows, Count, "K").End(xlUp).Row
wie folgt heißen:
lz = Cells(Rows.Count, "K").End(xlUp).Row
Gruß, MCO


AW: Fehlerteufelschen
28.04.2023 08:20:24
Pascala
Morgen,

Danke für die Korrektur!

am ende hat noch ein Next gefehlt was ich hinzugefügt haben.
Jetzt läuft der Code durch.

Leider bearbeitet er nur den ersten Artikel von unten. :(

Folgender Code wird benutzt:
Sub Durchlauf()
lz = Cells(Rows.Count, "K").End(xlUp).Row
For Z = lz To 35 Step -1

    If Cells(lz, "F") > "" Then
        qty = Cells(lz, "K")
        specs = Cells(lz, "O")
        For i = 1 To qty - 1
            Rows(lz + 1).Insert
            Cells(lz + 1, "F") = Cells(lz, "F")
            Cells(lz + 1, "K") = 1
            Cells(lz + 1, "O") = "Set " & qty - i + 1 & " - " & specs
        Next i
        Cells(lz, "K") = 1
        Cells(lz, "O") = "Set " & 1 & " - " & specs
    End If
    Next
End Sub


Ergebnis:

  • article-no. test9 test10 test11 test12 qty. test13 test14 test15 specs
    AB1234 5 BREIT
    AE1234 1 RUND
    AC1234 4 LANG
    AD1234 1 Set 1 - Set 1 - Set 1 - Set 1 - Set 1 - TIEF
    AD1234 1 Set 2 - TIEF
    AD1234 1 Set 3 - TIEF
    AD1234 1 Set 4 - TIEF
    AD1234 1 Set 5 - TIEF
    AD1234 1 Set 6 - TIEF
    AD1234 1 Set 7 - TIEF
    AD1234 1 Set 8 - TIEF


  • Hast du hierzu eine Idee woran es liegen könnte?

    Nochmals vielen Dank für deine Hilfe!


    Anzeige
    AW: Fehlerteufelschen, die 2te
    28.04.2023 09:26:18
    MCO
    Jo, ich Doofmann.

    LZ haben wir doch als letze Zeile ermittelt.
    Z ist der Zähler, der bis 35 runtergeht.

    ersetze zwischen for und next all LZ durch Z, dann sollte es laufen.

    Gruß MCO


    AW: Fehlerteufelschen, die 2te
    28.04.2023 10:18:31
    Pascala
    Hallo MCO,

    absolut genial!

    Es funktioniert!

    Kurze Frage noch: Wie sage ich dem Makro das es sich beenden soll wenn er alle Artikel übertragen hat?

    Aktuell gibt er noch eine Fehlermeldung bei Code Zeile: For i = 1 To qty - 1 liegt wohl daran das et nichts mehr findet.

    Laufzeitfehler 13
    Typen unverträglich.

    viele Grüße und vielen Dank für die Super Hilfe! :)


    Anzeige
    AW: Fehlerteufelschen, die 2te
    28.04.2023 11:30:33
    MCO
    Ne, da irrst du dich.

    Der Druchlauf versucht ja bis Zeile 35 runterzugehen.
    Im Beispiel ist hier in K35 aber kein Zahlenwert mehr sondern "qty", daher kann Excel da nicht mit rechnen und gibt dir einen Fehler aus.

    Lösung : Ändere die 35 in 34 (For Z = lz To 34 Step -1)

    Vielleicht macht das auch Sinn, wenn du dir mal per Einzelsatzdurchlauf (F8) anschaust, was die Schritte so machen. Das wird deinem Verständnis sehr förderlich sein.

    Gruß, MCO


    Anzeige
    AW: Excel VBA Artikel duplizieren/qty Zelle
    28.04.2023 09:26:32
    Daniel
    Hi
    Tippfehler des Kollegen: muss lauten (Rows.Count, "K")
    also ein Punkt zwischen Rows und Count, kein Komma.
    Gruß Daniel

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige