Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1688to1692
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
Inhaltsverzeichnis

VBA Wenn Zelle belegt dann nächste...

VBA Wenn Zelle belegt dann nächste...
03.05.2019 10:27:22
Erik
Hallo zusammen,
ich habe folgenden Code:
Sub Rueckgabeantrag()
Dim Rueckgabe As String
Dim intLZ As Integer
Dim i As Integer
Dim j As Integer
Dim Finish As String
Dim Menge As String
Dim Zähler As Long
With Sheets("Kundenteile")
intLZ = .Cells(Rows.Count, 16).End(xlUp).Row
For i = 1 To intLZ
If .Cells(i, 16).Value = "a" Then
Zähler = Zähler + 1
Rueckgabe = .Range("p" & i).Value
For j = i To intLZ
If Rueckgabe = .Range("p" & j).Value Then
Finish = .Cells(j, 5)
Worksheets("Tabelle1").Cells(19, 2) = Finish
Menge = .Cells(j, 7)
Worksheets("Tabelle1").Cells(19, 4) = Menge
.Cells(j, 16).ClearContents
Worksheets("Tabelle1").Visible = True
End If
Next j
End If
Next i
End With
If Zähler = 0 Then
MsgBox "Es wurden keine Teile selektiert"
Else
MsgBox "Rückgabeantrag erfolgreich gesendet"
End If
End Sub

Wenn allerdings die Zeile 19 bereits belegt ist soll der Code die nächste Überprüfung in Zeile 20 schreiben usw
bis Zeile 28.
Wenn mehr als 10 Zellen selektiert sind müsste eine Fehlermeldung kommen.
Vielen Dank
und Gruß
Erik

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Wenn Zelle belegt dann nächste...
03.05.2019 16:36:09
Erik
Hallo nochmal,
habe den Code wie folgt geändert:
Sub Rueckgabeantrag()
Dim Rueckgabe As String
Dim intLZ As Integer
Dim i As Integer
Dim j As Integer
Dim Finish As String
Dim Menge As String
Dim Zähler As Long
Dim Zeile As String
Zeile = 18
With Sheets("Kundenteile")
intLZ = .Cells(Rows.Count, 16).End(xlUp).Row
For i = 1 To intLZ
If .Cells(i, 16).Value = "a" Then
Zähler = Zähler + 1
Rueckgabe = .Range("p" & i).Value
For j = i To intLZ
If .Cells(Zeile, 2) > "" Then Zeile = Zeile + 1
If Rueckgabe = .Range("p" & j).Value Then
Finish = .Cells(j, 5)
Worksheets("Tabelle1").Cells(Zeile, 2) = Finish
Menge = .Cells(j, 7)
Worksheets("Tabelle1").Cells(Zeile, 4) = Menge
.Cells(j, 16).ClearContents
Worksheets("Tabelle1").Visible = True
End If
Next j
End If
Next i
End With
If Zähler = 0 Then
MsgBox "Es wurden keine Teile selektiert"
Else
MsgBox "Rückgabeantrag erfolgreich gesendet"
End If
End Sub
Funktioniert nun soweit bis auf die Abfrage ob mehr als 10 Teile selektiert sind.
Hier komme ich nun leider nicht mehr weiter.
Hat jemand einen Tipp?
Gruß
Erik
Anzeige
AW: VBA Wenn Zelle belegt dann nächste...
06.05.2019 15:35:49
Daniel
Hallo Erik,
als Ansatz:

For x = 19 To 28
If Worksheets("Tabelle1").Cells(x, 2) = "" Then
Worksheets("Tabelle1").Cells(x, 2) = .Cells(j, 5)
Worksheets("Tabelle1").Cells(x, 4) = .Cells(j, 7)
Exit For
End If
If x = 28 Then MsgBox "Mehr als 10 Zeilen selektiert!"
Next x
Unter der Annahme, dass die Bedingung "Bx ist leer" ausreicht. Falls diese befüllt, Dx aber nicht befüllt sein kann, bräuchtest du 2 For Schleifen.
Gruß
Daniel

363 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige