Anzeige
Archiv - Navigation
1604to1608
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
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

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

338 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige