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

Forumthread: VBA - IF AND THEN

VBA - IF AND THEN
wafi
Hallo Excelfrunde
Großes Problem für einen VBA Anfänger.
Für euch Profi´s betimmt nur eine Kleinigkeit.
Lese aus Tabell1 mit bestimmten Bedingungen Informationen aus und schreibe sie in Tabelle2.
Nun möchte ich aber noch eine Bedingung hinzufügen.
In Tabelle1 Spalte F stehen Informationen im Zeitformat 00:30 od. 02:15 usw.
Die Abfrage sollte nun lauten If C=JA AND M>0 AND F>00:59 AND Hoffe ich konnte das verständlich darstellen.
Vielen Dank
Gruß wafi
Sub DatenAuslesen()
b = 6
For a = 1 To 100
If Worksheets("Tabelle1").Range("C" & a) = "JA" And Worksheets("Tabelle1").Range("M" & a) > "0"  _
Then
b = b + 1
Worksheets("Tabelle2").Range("C" & b) = Worksheets("Tabelle1").Range("C" & a)
Worksheets("Tabelle2").Range("D" & b) = Worksheets("Tabelle1").Range("F" & a)
Worksheets("Tabelle2").Range("E" & b) = Worksheets("Tabelle1").Range("N" & a)
End If
Next a
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA - IF AND THEN
21.08.2011 15:54:33
Hajo_Zi
F>cdate("00:59") AND F
AW: VBA - IF AND THEN
21.08.2011 15:57:00
Hajo_Zi
der zweite Teil ist nicht mitgekommen.

F>Cdate("00:59") AND F<Cdate("02:01") Then

Gruß Hajo
Anzeige
AW: VBA - IF AND THEN
21.08.2011 16:02:09
ransi
Hallo Wafi
Teste mal mit deinen Daten:
Option Explicit

Sub ungetestet()
    
    b = 6
    With Worksheets("Tabelle1")
        For a = 1 To 100
            If .Range("C" & a) = "JA" Then
                If .Range("M" & a) > "0" Then
                    If .Range("F" & a) > (1 / 24 / 60 * 59) Then '59 Minuten
                        If .Range("F" & a) < (1 / 24 / 60 * 121) Then '121 Minuten
                            b = b + 1
                            Worksheets("Tabelle2").Range("C" & b) = Worksheets("Tabelle1").Range("C" & a)
                            Worksheets("Tabelle2").Range("D" & b) = Worksheets("Tabelle1").Range("F" & a)
                            Worksheets("Tabelle2").Range("E" & b) = Worksheets("Tabelle1").Range("N" & a)
                        End If
                    End If
                End If
            End If
        Next a
    End With
End Sub



ransi
Anzeige
AW: VBA - IF AND THEN
21.08.2011 16:19:32
wafi
Danke für eure schnelle Hilfe.
Der Tip von Hajo hat sofort den gewünschten Erfolg gebracht.
Auch vielen Dank an ransi
Super Lösung
Gruß
wafi
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

VBA: IF AND THEN effizient nutzen


Schritt-für-Schritt-Anleitung

Um in Excel VBA mit der IF AND THEN-Anweisung zu arbeiten, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:
    • Klicke mit der rechten Maustaste auf "VBAProject (deineDatei.xlsx)".
    • Wähle "Einfügen" > "Modul".
  3. Schreibe die VBA-Prozedur: Füge den folgenden Code ein, der die Bedingungen IF AND verwendet:
Sub DatenAuslesen()
    Dim b As Integer
    b = 6
    For a = 1 To 100
        If Worksheets("Tabelle1").Range("C" & a) = "JA" And _
           Worksheets("Tabelle1").Range("M" & a) > 0 And _
           Worksheets("Tabelle1").Range("F" & a) > CDate("00:59") Then

            b = b + 1
            Worksheets("Tabelle2").Range("C" & b) = Worksheets("Tabelle1").Range("C" & a)
            Worksheets("Tabelle2").Range("D" & b) = Worksheets("Tabelle1").Range("F" & a)
            Worksheets("Tabelle2").Range("E" & b) = Worksheets("Tabelle1").Range("N" & a)
        End If
    Next a
End Sub
  1. Führe das Makro aus: Drücke F5, um das Makro auszuführen und die Daten zu extrahieren.

Häufige Fehler und Lösungen

  • Fehler: "Typen sind inkompatibel"

    • Lösung: Stelle sicher, dass die Daten in den Zellen den richtigen Datentyp haben. Zum Beispiel sollte Range("M" & a) numerisch sein.
  • Fehler: "Objekt nicht gefunden"

    • Lösung: Überprüfe die Namen der Tabellenblätter und die Zellreferenzen auf Richtigkeit.
  • Fehler: "Überlauf"

    • Lösung: Achte darauf, dass die Variablen korrekt deklariert und die Schleifenbedingungen richtig gesetzt sind.

Alternative Methoden

Wenn du die IF AND THEN-Anweisung nicht verwenden möchtest, kannst du auch folgende Alternativen in Betracht ziehen:

  • IF OR-Anweisung: Nutze IF OR für Bedingungen, bei denen mindestens eine Bedingung erfüllt sein muss.
  • Verwendung von Select Case: Damit kannst du mehrere Bedingungen einfacher verwalten, besonders wenn es viele mögliche Werte gibt.

Ein Beispiel für Select Case:

Select Case Worksheets("Tabelle1").Range("C" & a)
    Case "JA"
        'Weitere Bedingungen hier prüfen
End Select

Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele für die IF AND THEN-Anweisung in Excel VBA:

  • Beispiel 1: Prüfen, ob ein Wert in einer Zelle größer als ein bestimmter Wert ist und zugleich ein anderer Wert "JA" ist.
If Worksheets("Tabelle1").Range("A1") > 10 And Worksheets("Tabelle1").Range("B1") = "JA" Then
    'Aktion ausführen
End If
  • Beispiel 2: Mehrere Bedingungen mit IF AND kombinieren, um Daten zu filtern und zu kopieren.
If Worksheets("Tabelle1").Range("C" & a) = "JA" And _
   Worksheets("Tabelle1").Range("D" & a) < 100 Then
    'Daten kopieren
End If

Tipps für Profis

  • Nutze Option Explicit: Damit stellst du sicher, dass alle Variablen deklariert sind, was Fehler reduziert.
  • Verwende CDate für Datumswerte: Achte darauf, dass du beim Vergleich von Zeitformaten CDate verwendest, um sicherzustellen, dass die Werte korrekt interpretiert werden.
  • Debugging: Setze Haltepunkte im Code, um die Ausführung Schritt für Schritt zu überprüfen und Fehler zu identifizieren.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Bedingungen kombinieren?
Du kannst IF AND nutzen, um sicherzustellen, dass alle Bedingungen erfüllt sind, oder IF OR, wenn nur eine Bedingung wahr sein muss.

2. Was ist der Unterschied zwischen IF AND und IF OR?
IF AND erfordert, dass alle angegebenen Bedingungen wahr sind, während IF OR ausreicht, wenn mindestens eine Bedingung wahr ist.

3. Wie kann ich Zeitvergleiche in VBA durchführen?
Verwende CDate, um Zeitwerte korrekt zu vergleichen, z. B. If Range("F" & a) > CDate("00:59").

4. Ist IF THEN die einzige Möglichkeit, Bedingungen zu prüfen?
Nein, du kannst auch Select Case verwenden, um mehrere Bedingungen effizient zu prüfen.

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