Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wenn, Dann, Sonst mit VBA

Forumthread: Wenn, Dann, Sonst mit VBA

Wenn, Dann, Sonst mit VBA
Matze
Hallo zusammen,
benötige kurze Hilfe, habe mir das so vorgestellt ,komme aber nicht auf die Richtige Lösung:
If Range("A46").Value > 0
Then
Sheets("Datenbank").Cells(i, 10) = Sheets("Rechnung").Cells(68, 6) 'Netto
Sheets("Datenbank").Cells(i, 11) = Sheets("Rechnung").Cells(69, 6) 'MwSt
Sheets("Datenbank").Cells(i, 12) = Sheets("Rechnung").Cells(70, 6) 'Brutto
Else
Sheets("Datenbank").Cells(i, 10) = Sheets("Rechnung").Cells(32, 6) 'Netto
Sheets("Datenbank").Cells(i, 11) = Sheets("Rechnung").Cells(34, 6) 'MwSt
Sheets("Datenbank").Cells(i, 12) = Sheets("Rechnung").Cells(35, 6) 'Brutto
Danke im Vorraus für Eure Mühe,
Matze
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Wenn, Dann, Sonst mit VBA
27.11.2011 15:26:06
Hajo_Zi
Hallo Matze,
der Code ist fast korrekt, das Thern gehört hinter 0 und es fehlt End If

THX Hajo,....doch soo einfach...
27.11.2011 15:30:08
Matze
Thanks - closed!
AW: Wenn, Dann, Sonst mit VBA
27.11.2011 15:33:22
JoWe
Deine Vorstellung entspricht doch bereits annähernd 100% der Lösung:
Sub calcIt()
Dim i As Long
i = 5 'Du musst in die Variable i irgendeinen Wert schreiben
If ActiveSheet.Range("A46") > 0 Then
Sheets("Datenbank").Cells(i, 10) = Sheets("Rechnung").Cells(68, 6) 'Netto
Sheets("Datenbank").Cells(i, 11) = Sheets("Rechnung").Cells(69, 6) 'MwSt
Sheets("Datenbank").Cells(i, 12) = Sheets("Rechnung").Cells(70, 6) 'Brutto
Else
Sheets("Datenbank").Cells(i, 10) = Sheets("Rechnung").Cells(32, 6) 'Netto
Sheets("Datenbank").Cells(i, 11) = Sheets("Rechnung").Cells(34, 6) 'MwSt
Sheets("Datenbank").Cells(i, 12) = Sheets("Rechnung").Cells(35, 6) 'Brutto
End If
End Sub

Gruß
Jochen
Anzeige
ebenfalls Danke Jochen...
27.11.2011 15:38:57
Matze
aber ich hatte etwas abgekürzt....die vorrangegane Zeile war schon da....
Dim i As Integer
i = Sheets("Datenbank").Cells(Cells.Rows.Count, 1).End(xlUp).Row + 1
If i < 4 Then i = 4
es lag am " THEN" ... ich hatte mit einer neuen Zeile begonnen....böses Faul.
Matze
AW: ebenfalls Danke Jochen...
27.11.2011 15:41:24
Hajo_Zi
Halllo Matze,
die Zeile zur Ermittlung der letzten Zeile liefert ein falsches Ergebnis falls die letzte Zelle in der Spalte belegt ist.
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
Gruß Hajo
Anzeige
;

Forumthreads zu verwandten Themen

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

Wenn, Dann, Sonst mit VBA in Excel


Schritt-für-Schritt-Anleitung

Um eine Wenn, Dann, Sonst-Logik in Excel mit VBA zu implementieren, kannst du die folgende Schritt-für-Schritt-Anleitung nutzen:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.
  3. Füge den folgenden Code in das Modul ein:
Sub calcIt()
    Dim i As Long
    i = 5 ' Du musst in die Variable i irgendeinen Wert schreiben, z.B. die nächste freie Zeile.

    If ActiveSheet.Range("A46").Value > 0 Then
        Sheets("Datenbank").Cells(i, 10) = Sheets("Rechnung").Cells(68, 6) ' Netto
        Sheets("Datenbank").Cells(i, 11) = Sheets("Rechnung").Cells(69, 6) ' MwSt
        Sheets("Datenbank").Cells(i, 12) = Sheets("Rechnung").Cells(70, 6) ' Brutto
    Else
        Sheets("Datenbank").Cells(i, 10) = Sheets("Rechnung").Cells(32, 6) ' Netto
        Sheets("Datenbank").Cells(i, 11) = Sheets("Rechnung").Cells(34, 6) ' MwSt
        Sheets("Datenbank").Cells(i, 12) = Sheets("Rechnung").Cells(35, 6) ' Brutto
    End If
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Führe das Makro aus, indem du auf Entwicklertools > Makros gehst und das Makro calcIt auswählst.

Häufige Fehler und Lösungen

  • Fehler: "End If" fehlt
    Wenn du die Fehlermeldung erhältst, dass "End If" fehlt, stelle sicher, dass dein Code korrekt formatiert ist und dass du das End If am Ende der If-Bedingung hinzugefügt hast.

  • Fehler: Falscher Zellwert
    Wenn die Zellen nicht die erwarteten Werte anzeigen, überprüfe die Zellreferenzen und stelle sicher, dass die Werte in A46 korrekt sind.

  • Fehler: Die Schleifenvariable "i" ist nicht korrekt gesetzt
    Achte darauf, dass die Variable i die nächste freie Zeile in deiner Ziel-Tabelle korrekt ermittelt. Dies kann mit folgender Zeile geschehen:

    i = Sheets("Datenbank").Cells(Rows.Count, 1).End(xlUp).Row + 1

Alternative Methoden

Falls du keine VBA-Programmierung verwenden möchtest, kannst du auch Excel-Formeln nutzen, um ähnliche Bedingungen zu implementieren. Zum Beispiel kannst du die WENN-Funktion verwenden:

=WENN(A46 > 0; 'Netto'; 'Alternativ')

Diese Methode funktioniert jedoch nur innerhalb der Zellen und nicht für komplexe Makros.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die Wenn, Dann, Sonst-Logik in deinem Makro verwenden kannst:

  1. Bedingte Berechnung basierend auf einem Umsatzwert:

    If Sheets("Rechnung").Cells(1, 1).Value < 1000 Then
       ' Berechnung für geringe Umsätze
    Else
       ' Berechnung für hohe Umsätze
    End If
  2. Eine Entscheidung auf Basis mehrerer Bedingungen:

    If Sheets("Datenbank").Cells(i, 1) = "Ja" Then
       ' Aktion für "Ja"
    ElseIf Sheets("Datenbank").Cells(i, 1) = "Nein" Then
       ' Aktion für "Nein"
    Else
       ' Standardaktion
    End If

Tipps für Profis

  • Nutze die Select Case-Anweisung: Bei vielen Bedingungen kann Select Case eine übersichtlichere Lösung bieten.
  • Fehlerbehandlung einfügen: Verwende On Error Resume Next und On Error GoTo 0, um Fehler elegant zu handhaben.
  • Schreibe wiederverwendbare Funktionen: Wenn du oft ähnliche Bedingungen hast, erstelle eine Funktion, die du mehrfach aufrufen kannst.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen WENN-Funktion und VBA Wenn, Dann?
Die WENN-Funktion wird direkt in Zellen verwendet, während VBA Wenn, Dann in Makros für komplexere Logik verwendet wird.

2. Wie kann ich mehrere Bedingungen in VBA prüfen?
Du kannst If...ElseIf...Else verwenden oder die Select Case-Anweisung.

3. Wo finde ich mehr Informationen über die Verwendung von VBA in Excel?
Die Microsoft-Dokumentation bietet umfangreiche Informationen zu Excel VBA, einschließlich Beispielen und Tutorials.

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