Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA If-Schleife nächste leere Zeile

VBA If-Schleife nächste leere Zeile
28.01.2018 18:59:55
Gesa
Hallo zusammen,
ich habe mir mit Hilfe dieses Forums schon viel beigebracht, aber aktuell komme ich nicht weiter.
Ich habe im Hintergrund ein userform programmiert und möchte nun das, wenn bestimmte Checkboxen/Textboxen/Optionsbutton ausgewählt/gefüllt sind, mein Wert aus dem Sheet "Preise Leistung" in das Sheet "Rechnung" übertragen wird. Das funktioniert auch Einwand frei und es wird auch das Feld "A30" wie gewünscht angesteuert.
Ich möchte nun, dass jedes If-Statement - falls wahr - in die nächste freie Zeile unter A30 geschrieben werden soll. Aktuell wird immer nur das Ergebnis des letzten If-Statements in die Zelle A30 geschrieben und überschreibt somit vorherige Ergebnisse. Ich glaube ich benötige eine Schleife, weiß aber nicht wie ich diese einbauen soll.
Beispiel:
If-Statement Nr2, Nr3 und Nr5 sind wahr, dann wird aktuell das Ergebnis von Nr5 in A30 geschrieben.
Ich möchte aber, dass Nr2 in A30, Nr3 in A31 und Nr5 in A32 geschrieben wird (also immer in die nächste/letzte freie Zeile)
Ich hoffe meine Problem ist verständlich beschrieben und ihr habt eine Idee für mich.
Sub R_daten()
Worksheets("Rechnung").Range("A30:a50").Clear
Dim i As Long, lastrow As Long
lastrow = Sheets("Rechnung").Cells(Rows.Count, 1).End(xlUp).Row + 1
For i = 30 To lastrow
'Nr1
If CheckBox1.Value = True And Me.TextBox10 = 1 And OptionButton1.Value = False Then
Worksheets("Rechnung").Cells(i, 1) = Worksheets("Preise Leistung").Range("A2")
End If
'Nr2
If CheckBox1.Value = True And Me.TextBox10 = 2 And OptionButton1.Value = False Then
Worksheets("Rechnung").Cells(i, 1) = Worksheets("Preise Leistung").Range("A3")
End If
'Nr3
If CheckBox1.Value = True And Me.TextBox10 > 0 And Me.TextBox16 > 0 And OptionButton1.Value =  _
False Then
Worksheets("Rechnung").Cells(i, 1) = Worksheets("Preise Leistung").Range("A14")
End If
'Nr4
If (CheckBox1.Value = True Or CheckBox8.Value = True Or CheckBox7.Value = True Or CheckBox6. _
Value = True) And Worksheets("Rechnung").Range("A2") > 0 And OptionButton1.Value = False Then
Worksheets("Rechnung").Cells(i, 1) = Worksheets("Preise Leistung").Range("A21")
End If
'Nr5
If CheckBox5.Value = True And OptionButton1.Value = False Then
Worksheets("Rechnung").Cells(i, 1) = Worksheets("Preise Leistung").Range("A20")
End If
Next
End Sub
Vielen Dank und Grüße
Gesa
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA If-Schleife nächste leere Zeile
28.01.2018 19:59:14
Gerd
Moin Gesa,
die Prüfungen sind eher unstrukturiert. :-)
Ob jetzt unten angefügt oder alte Werte vorher entfernt werden sollen, kam nicht rüber.
Sub R_daten()
Dim i As Long
With Worksheets("Rechnung")
i = Application.Max(30, .Cells(, Rows.Count, 1).End(xlUp).Row + 1)
'alternativ alte Einträge entfernen u in A30 beginnen
'.Range("A30:a50").ClearContents
'i = 30
'Nr1
If CheckBox1.Value = True And Me.TextBox10 = 1 And OptionButton1.Value = False Then
.Cells(i, 1) = Worksheets("Preise Leistung").Range("A2")
i = i + 1
End If
'Nr2
If CheckBox1.Value = True And Me.TextBox10 = 2 And OptionButton1.Value = False Then
.Cells(i, 1) = Worksheets("Preise Leistung").Range("A3")
i = i + 1
End If
'Nr3
If CheckBox1.Value = True And Me.TextBox10 > 0 And Me.TextBox16 > 0 And OptionButton1.Value = _
False Then
.Cells(i, 1) = Worksheets("Preise Leistung").Range("A14")
i = i + 1
End If
'Nr4
If (CheckBox1.Value = True Or CheckBox8.Value = True Or CheckBox7.Value = True Or CheckBox6. _
Value = True) And .Range("A2") > 0 And OptionButton1.Value = False Then
.Cells(i, 1) = Worksheets("Preise Leistung").Range("A21")
i = i + 1
End If
'Nr5
If CheckBox5.Value = True And OptionButton1.Value = False Then
.Cells(i, 1) = Worksheets("Preise Leistung").Range("A20")
End If
End With
End Sub

cu Gerd
Anzeige
AW: VBA If-Schleife nächste leere Zeile
28.01.2018 23:22:07
Gesa
Hallo Gerd,
vielen Dank! Das funktioniert super. Ich habe allerdings die alternative Variante verwendet.
Die Application-Funktion ist bei mir auf einen Fehler gelaufen:
Laufzeitfehler 450 - Falsche Anzahl an Argumenten oder ungültige Zuweisung einer Eigenschaft
i = Application.Max(30, .Cells(, Rows.Count, 1).End(xlUp).Row + 1)

Könntest du sie mir kurz erklären?
Danke und einen schönen Abend
Gesa
Anzeige
AW: VBA If-Schleife nächste leere Zeile
28.01.2018 23:22:08
Gesa
Hallo Gerd,
vielen Dank! Das funktioniert super. Ich habe allerdings die alternative Variante verwendet.
Die Application-Funktion ist bei mir auf einen Fehler gelaufen:
Laufzeitfehler 450 - Falsche Anzahl an Argumenten oder ungültige Zuweisung einer Eigenschaft
i = Application.Max(30, .Cells(, Rows.Count, 1).End(xlUp).Row + 1)

Könntest du sie mir kurz erklären?
Danke und einen schönen Abend
Gesa
Anzeige
AW: VBA If-Schleife nächste leere Zeile
28.01.2018 23:22:10
Gesa
Hallo Gerd,
vielen Dank! Das funktioniert super. Ich habe allerdings die alternative Variante verwendet.
Die Application-Funktion ist bei mir auf einen Fehler gelaufen:
Laufzeitfehler 450 - Falsche Anzahl an Argumenten oder ungültige Zuweisung einer Eigenschaft
i = Application.Max(30, .Cells(, Rows.Count, 1).End(xlUp).Row + 1)

Könntest du sie mir kurz erklären?
Danke und einen schönen Abend
Gesa
Anzeige
AW: VBA If-Schleife nächste leere Zeile
28.01.2018 23:22:11
Gesa
Hallo Gerd,
vielen Dank! Das funktioniert super. Ich habe allerdings die alternative Variante verwendet.
Die Application-Funktion ist bei mir auf einen Fehler gelaufen:
Laufzeitfehler 450 - Falsche Anzahl an Argumenten oder ungültige Zuweisung einer Eigenschaft
i = Application.Max(30, .Cells(, Rows.Count, 1).End(xlUp).Row + 1)

Könntest du sie mir kurz erklären?
Danke und einen schönen Abend
Gesa
Anzeige
AW: VBA If-Schleife nächste leere Zeile
28.01.2018 23:36:06
Gerd
Hallo,
wie kam da nur das Komma rein. Ich glaube, ich muss meine Brille putzen. :-)
i = Application.Max(30, .Cells(.Rows.Count, 1).End(xlUp).Row + 1)
cu Gerd
AW: VBA If-Schleife nächste leere Zeile
31.01.2018 11:34:10
Gesa
Vielen Dank! Du hast mir wirklich sehr geholfen!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige