Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Excel VBA - Schleife/Werte nacheinander einfügen

Excel VBA - Schleife/Werte nacheinander einfügen
18.06.2018 12:44:37
Philip
Hallo zusammen,
ich habe wahrscheinlich eine furchtbar einfache Frage, die Websuche danach hat mich mittlerweile aber fast in den Wahnsinn getrieben.
Ich habe zwei Zellen "Anlage:" ("B4") und "Sparplan:" ("B5"). Hier sollen per Makro Werte eingefügt werden.
Die Werte hierfür befinden sich in der Range("A7:B107"). Hier stehen die Werte für die Zelle "Anlage:" in Spalte A (von 25000 bis 5000000) und die Werte für Zelle "Sparplan:" in Spalte B (von 0 bis 10000).
Nun sollen diese Werte abwechselnd in die Zellen eingefügt werden und zwar mit der Logik, dass zu erst "25000" in die Zelle "Anlage:" und "0" in die Zelle "Sparplan:" eingefügt werden soll, dann ein weiteres Makro laufen (copy_and_transfer(), das funktioniert auch) und danach soll eine Schleife den Wert der Zelle "Sparplan:" von 0 auf 100 erhöhen (all diese Werte stehen ja wie gesagt in der Spalte B untereinander).
Dann soll wieder das Makro copy_and_transfer() laufen, danach dann wieder die Zelle "Sparplan:" von 100 auf 200 erhöhen usw.
Dies soll solange passieren, bis der letzte Wert der Zelle "Sparplan:" erreicht ist ("B107" = 10000).
Danach soll der Wert der Zelle "Anlage:" dann von "25000" auf "30000" (nächster Wert in Spalte A springen und wieder sämtliche Sparplanraten nacheinander eingetragen werden.
Tut mir leid, ich hoffe, das war verständlich.
Kann mir irgendjemand hier zufällig helfen? Ich hab mittlerweile das Gefühl, dass das gar kein ganz einfaches Problem ist.
Vielen Dank bereits im Voraus und viele Grüße
Philip
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel VBA - Schleife/Werte nacheinander
22.06.2018 16:59:56
mmat
Hallo,
wenn ich das richtig kapiert habe, dann müsste das hier funktionieren:
Sub test()
Dim a As Long, b As Long
For a = 25000 To 5000000 Step 5000
For b = 0 To 10000 Step 100
Cells(4, 2) = a 'B4
Cells(5, 2) = b 'B5
copy_and_transfer
Next
Next
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Werte nacheinander in Excel mit VBA einfügen


Schritt-für-Schritt-Anleitung

Um in Excel VBA eine Schleife zu erstellen, die Werte nacheinander in die Zellen einfügt, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (dein Dokument)", wähle "Einfügen" und dann "Modul".

  3. Füge den folgenden VBA-Code ein:

    Sub test()
       Dim a As Long, b As Long
       For a = 25000 To 5000000 Step 5000
           For b = 0 To 10000 Step 100
               Cells(4, 2) = a 'B4
               Cells(5, 2) = b 'B5
               copy_and_transfer
           Next b
       Next a
    End Sub
  4. Anpassen der Werte: Stelle sicher, dass die Werte und Zellreferenzen (B4 und B5) mit deinen Anforderungen übereinstimmen.

  5. Führe das Makro aus: Schließe den VBA-Editor und drücke ALT + F8, um das Makro auszuführen.


Häufige Fehler und Lösungen

  • Fehler: "Sub oder Funktion nicht definiert"
    Lösung: Stelle sicher, dass die Funktion copy_and_transfer korrekt definiert ist und im gleichen Modul oder einem anderen zugänglichen Modul existiert.

  • Fehler: Werte werden nicht in die Zellen eingefügt
    Lösung: Überprüfe die Zellreferenzen und stelle sicher, dass die Schleifenbedingungen korrekt gesetzt sind.


Alternative Methoden

Wenn du keine VBA-Schleifen verwenden möchtest, kannst du auch die Funktion SEQUENZ in Excel verwenden (ab Excel 365). Damit kannst du eine Liste von Werten direkt in die Zellen einfügen.

Beispiel:

=SEQUENZ(100, 1, 25000, 5000)

Dies erstellt eine Liste von Werten, die in die Zelle eingefügt werden können.


Praktische Beispiele

Hier ein einfaches Beispiel, wie die Schleife funktioniert:

Sub example()
    Dim i As Long
    For i = 1 To 10
        Cells(i, 1) = i * 10 'Füllt die Zellen A1 bis A10 mit 10, 20, ..., 100
    Next i
End Sub

In diesem Beispiel werden die Zellen A1 bis A10 mit den Werten 10, 20, ..., 100 gefüllt. Du kannst die Logik anpassen, um sie an deine Anforderungen anzupassen.


Tipps für Profis

  • Verwende Option Explicit: Diese Anweisung am Anfang deines Moduls sorgt dafür, dass alle Variablen deklariert werden müssen, was Fehler reduziert.

  • Debugging: Nutze die Debug.Print-Anweisung, um Werte während der Schleife zu überwachen. Das hilft, Fehler zu identifizieren.

    Debug.Print a, b
  • Effizienz verbessern: Vermeide das ständige Schreiben in die Zellen, indem du die Werte zuerst in ein Array speicherst und dann auf einmal in die Zellen schreibst.


FAQ: Häufige Fragen

1. Was ist eine Schleife in VBA?
Eine Schleife ermöglicht es, einen bestimmten Codeblock mehrmals auszuführen, basierend auf festgelegten Bedingungen.

2. Wie kann ich die Schleifenbedingungen anpassen?
Ändere die Werte in den For-Schleifen. Zum Beispiel, um nur bestimmte Werte zu verwenden, kannst du die Start- und Endwerte sowie die Schrittgröße anpassen.

3. Wo kann ich mehr über VBA lernen?
Es gibt viele Ressourcen online, einschließlich Tutorials, Foren und offizielle Microsoft-Dokumentationen, die dir helfen können, deine VBA-Fähigkeiten zu verbessern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige