Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
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

Ausstieg wenn 2 Bedingungen nicht erfüllt sind

Ausstieg wenn 2 Bedingungen nicht erfüllt sind
25.10.2023 15:11:18
Georg
Liebe Mitglieder,
der Code funktioniert, was ich nicht hinkriege: Wenn die Kombination von Zelle P2 und Q2 im Suchbereich (Spalte G und Spalte J) NICHT gefunden wird, sollte eine MsgBox erscheinen mit Meldung "Kombi so nicht vorhanden".

Vielen Dank Georg



Sub BedingteKopieZeilen()

Dim Zeile As Long
Dim ZeileMax As Long
Dim T1Lastr As Long

With Tabelle3

ZeileMax = .UsedRange.Rows.Count

For Zeile = 7 To ZeileMax

Dim strSuch As String
strSuch = Tabelle1.Range("P2")

Dim strSuch2 As String
strSuch2 = Tabelle1.Range("Q2")

If .Range("G" & Zeile).Value = strSuch Then
If .Range("J" & Zeile).Value = strSuch2 Then

T1Lastr = Tabelle1.UsedRange.Rows.Count

.Range(.Cells(Zeile, 2), .Cells(Zeile, 12)).Copy
Tabelle1.Cells(T1Lastr + 1, 2).PasteSpecial Paste:=xlPasteValues

End If
End If

Next Zeile

End With

Tabelle1.Range("E6:E" & Rows.Count).NumberFormat = "dd.mm.yy"

End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ausstieg wenn 2 Bedingungen nicht erfüllt sind
25.10.2023 15:38:48
Beverly
Hi Georg,

meinst du so:

                        If .Range("G" & Zeile).Value = strSuch And .Range("J" & Zeile).Value = strSuch2 Then

T1Lastr = Tabelle1.UsedRange.Rows.Count
.Range(.Cells(Zeile, 2), .Cells(Zeile, 12)).Copy
Tabelle1.Cells(T1Lastr + 1, 2).PasteSpecial Paste:=xlPasteValues
Else
MsgBox "Kombi so nicht vorhanden"
End If


Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Ausstieg wenn 2 Bedingungen nicht erfüllt sind
25.10.2023 15:45:13
Georg
Hallo Karin, prinzipiell ja,
aber bei dieser Lösung muss ich jede einzelne Zeile bestätigen mit Ok, wenn die Kombi nicht gefunden wird. Bei Zeilen > 20 wird das nervig
Ideal wäre, wenn nur 1x geklickt werden müsste, gedanklich im gesamten Bereich die Kombination nicht gefunden --> MsgBox

Danke Georg
AW: Ausstieg wenn 2 Bedingungen nicht erfüllt sind
25.10.2023 15:57:07
Beverly
Hi Georg,

das stand SO aber nicht explizit in deinem Beitrag. ;-)

Ändere den Code wie folgt:

                        Dim blnKombi As Boolean

If .Range("G" & Zeile).Value = strSuch And .Range("J" & Zeile).Value = strSuch2 Then
T1Lastr = Tabelle1.UsedRange.Rows.Count
.Range(.Cells(Zeile, 2), .Cells(Zeile, 12)).Copy
Tabelle1.Cells(T1Lastr + 1, 2).PasteSpecial Paste:=xlPasteValues
Else
blnKombi = True
End If


Und ergänze nach dem Schleifendurchlauf dann diese Zeile:

        If blnKombi Then MsgBox "Kombination nicht gefunden"



Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Ausstieg wenn 2 Bedingungen nicht... Vielen Dank ..
26.10.2023 07:19:01
Georg
Karin, verstehe es zwar nicht ganz (VBA Kenntnisse ausbaufähig :-)) aber es funktioniert wunderbar.
Falls du Zeit findest zwei Sätze zur Erklärung zu schreiben, wäre klasse, aber natürlich kein Muss.
Gruß Georg
AW: Ausstieg wenn 2 Bedingungen nicht... Vielen Dank ..
26.10.2023 10:13:13
Beverly
Hi Georg,

viel zu erklären gibt es da eigentlich nicht. Die Variable blnKombi ist eine boolesche Variable, die nur die beiden Ausdrücke WAHR oder FALSCH (True oder False) annehmen kann. Mit ihrer Deklarierung wird sie zu Beginn automatisch auf False gesetzt. Wenn dann in der For-Schleife eine Zeile gefunden wird, in der die Bedingung nicht zutrifft geht der Code in den Else-Zweig und setzt die Variable auf True. Nach dem Schleifendurchlauf wird dann geprüft, ob sie auf True gesetzt wurde und wenn ja, dann kommt die MsgBox.
Man kann den Code noch "verfeinern", indem man erst prüft, ob die Variable bereits auf True gesetzt wurde und setzt sie nur dann auf True falls noch nicht. Dazu würde man dann anstelle der Zeile

blnKombi = True


dieses schreiben:

If blnKombi = False Then blnKombi = True


Es ist aber auch kein Beinbruch, wenn sie (so wie im Code aus dem vorhergehenden Beitrag) jedesmal bei Erfordernis auf True gesetzt wird.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige