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:
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:
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