Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

VBA CODE Problem bei der Ausgabe





Frage

Bin da bei ein Buchführungsprogramm zu schreiben aber bei der Ausgabe der Buchungssätze in die Konten gelingt erst beim 2. versuch die ausgabe. Vieleicht kennt ja jemand ne lösung. Ausgabe: Private Sub cmd_Ausgeben_Click() ListBox3.AddItem Wert ListBox1.AddItem strSollkonto ListBox2.AddItem strHabenkonto If strSollkonto = "BankS" Then For n1 = 12 To n1 Step 1 If Cells(n1, 7) = "" Then Cells(n1, 7).Value = Wert End If Next End If If strHabenkonto = "BankH" Then For n2 = 12 To n2 Step 1 If Cells(n2, 8) = "" Then Cells(n2, 8).Value = Wert End If Next End If If strSollkonto = "KasseS" Then For n3 = 12 To n3 Step 1 If Cells(n3, 12) = "" Then Cells(n3, 12).Value = Wert End If Next End If If strHabenkonto = "KasseH" Then For n4 = 12 To n4 Step 1 If Cells(n4, 13) = "" Then Cells(n4, 13).Value = Wert End If Next End If If strSollkonto = "kurzfristigeVerbindlichkeitenS" Then For n5 = 12 To n5 Step 1 If Cells(n5, 17) = "" Then Cells(n5, 17).Value = Wert End If Next End If If strHabenkonto = "kurzfristigeVerbindlichkeitenH" Then For n6 = 12 To n6 Step 1 If Cells(n6, 18) = "" Then Cells(n6, 18).Value = Wert End If Next End If If strSollkonto = "GrundstückeundGebäudeS" Then For n7 = 12 To n8 Step 1 If Cells(n7, 22) = "" Then Cells(n7, 22).Value = Wert End If Next End If If strHabenkonto = "GrundstückeundGebäudeH" Then For n8 = 12 To n8 Step 1 If Cells(n8, 23) = "" Then Cells(n8, 23).Value = Wert End If Next End If If strSollkonto = "BGAS" Then For n9 = 24 To n9 Step 1 If Cells(n9, 7) = "" Then Cells(n9, 7).Value = Wert End If Next End If If strHabenkonto = "BGAH" Then For n10 = 24 To n10 Step 1 If Cells(n10, 8) = "" Then Cells(n10, 8).Value = Wert End If Next End If If strSollkonto = "FuhrparkS" Then For n11 = 24 To n11 Step 1 If Cells(n10, 12) = "" Then Cells(n11, 12).Value = Wert End If Next End If If strHabenkonto = "FuhrparkH" Then For n12 = 24 To n12 Step 1 If Cells(n10, 13) = "" Then Cells(n12, 13).Value = Wert End If Next End If If strSollkonto = "ForderungenS" Then For n13 = 24 To n13 Step 1 If Cells(n13, 17) = "" Then Cells(n13, 17).Value = Wert End If Next End If If strHabenkonto = "ForderungenH" Then For n14 = 24 To n14 Step 1 If Cells(n14, 18) = "" Then Cells(n14, 18).Value = Wert End If Next End If If strSollkonto = "langfristigeVerbindlichkeitenS" Then For n15 = 24 To n15 Step 1 If Cells(n15, 22) = "" Then Cells(n15, 22).Value = Wert End If Next End If If strHabenkonto = "langfristigeVerbindlichkeitenH" Then For n16 = 24 To n16 Step 1 If Cells(n16, 23) = "" Then Cells(n16, 23).Value = Wert End If Next End If End Sub

Antwort 1 von Luke_Filewalker

Moin

Wie im Chat angesprochen, ich bin selten mit VBA unterwegs, da ich primär mit dem "grossen Bruder" VB arbeite. Speziell auf Office Programmierung bezogen, bin ich also kein Held. Was mir aber aufgefallen ist:

For n1 = 12 To n1 Step 1
If Cells(n1, 7) = "" Then
Cells(n1, 7).Value = Wert
End If
Next
End If

Du verwendet in jeder Schleife für den Schleifen-Zähler UND den Schleifen-Endwert ein und diesselbe Variable? Wie soll das denn gehen? Demnach wird jede Schleife exakt nur einmal ausgeführt. Oder aber das ist mal wieder etwas VBA spezielles, das ich gerade nicht verstehe, dann möge mich bitte ein VBA Profi korrigieren.

Ich würde das ganze folgendermassen schreiben:

For x = 12 To n1 Step 1
If Cells(x, 7) = "" Then
Cells(x, 7).Value = Wert
End If
Next
End If


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: