Wenn dann vba


Wenn Sie regelmässig mit Excel arbeiten, werden Sie vermutlich sich bereits bestens mit Formeln auskennen. Nun besteht nicht nur die Möglichkeit die Formeln in Ihrem Arbeitsblatt zu erfassen, die Formeln stehen Ihnen auch in der VBA-Umgebung zur Verfügung.

Der Einsatz von Formeln in der VBA-Umgebung kann bspw. dann Sinn machen, wenn eine Zelle zeitgleich ein Eingabefeld ist sowie eine Berechnung.

Beispiel:

Wenn “Zelle A1” = “Manuelle Eingabe” 

Dann “Eingabefeld” 

Sonst “Automatische Berechnung”

In diesem Excel-Tutorial Video bilden wir die Wenn-Funktion von Excel in einem Makro ab. Wenn Sie bereits mit Formeln in Excel umgehen können und den nächsten Schritt wagen möchten, ist dieses Video eine gute Möglichkeit, um ein erstes Makro (VBA) zu schreiben.

exact construct GmbH / 26. September 2014

Herbers Excel-Forum - das Archiv

Wenn, Dann, Sonst mit VBA | Herbers Excel-Forum

  • Wenn, Dann, Sonst mit VBA von Matze vom 27.11.2011 15:16:42
    • AW: Wenn, Dann, Sonst mit VBA - von Hajo_Zi am 27.11.2011 15:26:06
      • THX Hajo,....doch soo einfach... - von Matze am 27.11.2011 15:30:08
      • AW: Wenn, Dann, Sonst mit VBA - von JoWe am 27.11.2011 15:33:22
        • ebenfalls Danke Jochen... - von Matze am 27.11.2011 15:38:57
          • AW: ebenfalls Danke Jochen... - von Hajo_Zi am 27.11.2011 15:41:24

      Betrifft: Wenn, Dann, Sonst mit VBA
      von: Matze

      Geschrieben am: 27.11.2011 15:16:42

      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

      Betrifft: AW: Wenn, Dann, Sonst mit VBA
      von: Hajo_Zi
      Geschrieben am: 27.11.2011 15:26:06
      Hallo Matze,
      der Code ist fast korrekt, das Thern geh�rt hinter 0 und es fehlt End If

      Betrifft: THX Hajo,....doch soo einfach...
      von: Matze
      Geschrieben am: 27.11.2011 15:30:08
      Thanks - closed!

      Betrifft: AW: Wenn, Dann, Sonst mit VBA
      von: JoWe

      Geschrieben am: 27.11.2011 15:33:22
      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

      Betrifft: ebenfalls Danke Jochen...
      von: Matze
      Geschrieben am: 27.11.2011 15:38:57
      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

      Betrifft: AW: ebenfalls Danke Jochen...
      von: Hajo_Zi

      Geschrieben am: 27.11.2011 15:41:24
      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

       

      Wenn dann vba

      Excel VBA Befehle Folge 13: If Then Else Verzweigungen

      Inhalt dieser Folge:

      • Wie kann ich Einträge in meinem Tabellenblatt automatisch auswerten?

      • Wie kann ich mehrere Operationen für meine If Then Else Verzweigung realisieren?

      • Wie lässt sich eine If Then Else Verzweigung mit einer For Next Schleife kombinieren?

      Den Inhalt der Folge kostenlos als PDF einsehen

      Beispiel 1: Verzweigungen mit zwei Optionen

      Sub Beispiel1()

      If Cells(2, 1).Value < 5 Then

      'Wenn der Eintrag in Zelle A2 kleiner 5 ist
      Cells(2, 2).Value = "Bestanden" Else

      'Wenn der Eintrag in Zelle A2 nicht größer 5 ist
      Cells(2, 2).Value = "Nicht bestanden" End If

      End Sub

      Beispiel 2: Verzweigungen mit drei Optionen

      Sub Beispiel2()

        If Cells(4, 1).Value = 4.3 Then

         'Wenn der Eintrag in Zelle A4 gleich 4,3 ist
         Cells(4, 2).Value = "Mündl. Nachprüfung"

        ElseIf Cells(4, 1).Value < 5 Then

         'Wenn der Eintrag in Zelle A4 kleiner 5 ist
         Cells(4, 2).Value = "Bestanden"

        Else

         'Wenn der Eintrag in Zelle A4 nicht größer 5 ist
         Cells(4, 2).Value = "Nicht bestanden"

        End If

      End Sub

      Beispiel 3: If-Then-Else-Verzweigung mit For-Schleife kombinieren

      Sub Beispiel3()

      Dim i As Integer

        For i = 2 To 10

          If Cells(i, 1).Value = 4.3 Then

            'Wenn der Eintrag in Zelle A4 gleich 4,3 ist
            Cells(i, 2).Value = "Mündl. Nachprüfung"

            Cells(i, 2).Interior.ColorIndex = 6

          ElseIf Cells(i, 1).Value < 5 Then

            'Wenn der Eintrag in Zelle A4 kleiner 5 ist
            Cells(i, 2).Value = "Bestanden"

            Cells(i, 2).Interior.ColorIndex = 4

          Else

            'Wenn der Eintrag in Zelle A4 nicht größer 5 ist
            Cells(i, 2).Value = "Nicht bestanden"

            Cells(i, 2).Interior.ColorIndex = 3

          End If

        Next

      End Sub

      Folge 13 / 33

      Alle Folgen der VideoReihe auf einen Blick

      Folge 01   Arbeitsmappen und Tabellenblätter ansprechen, sortieren, ...

      Folge 02   Zellen ansprechen

      Folge 03   Meldeboxen, MsgBox (PopUpFenster)

      Folge 04   Schrifteinstellungen (Fett, Kursiv, Schriftart, Schriftfarbe, Schriftgröße, ...)

      Folge 05   Variablen & Datentypen in VBA

      Folge 06   Arrays / Datenfelder in VBA

      Folge 07   For Next - Schleifen in VBA

      Folge 08   Dynamische Arrays

      Folge 09   Rechenoperationen

      Folge 10   Vergleichsoperatoren

      Folge 11   Logische Operatoren

      Folge 12   SuchFunktion (Einträge & Begriffe in Zellen suchen)

      Folge 13   If Then Else - Verzweigungen in VBA

      Folge 14   Do While Loop - Schleifen in VBA

      Folge 15   Endlosschleifen verhindern

      Folge 16   Die SortierFunktion (sortieren, nach mehreren Kriterien)

      Folge 17   Select Case - Verzweigungen in VBA

      Folge 18   InputBox (gestalten und Eingaben verwenden)

      Folge 19   For Each - Schleifen in VBA

      Folge 20   Borders-Eigenschaften (Dynamisches Tabellendesign erstellen)

      Folge 21   Laufzeitfehler & Syntaxfehler - finden und beheben

      Folge 22   On Error GoTo - Laufzeitfehler abfangen

      Folge 23   Alle Farben in VBA nutzen (ColorIndex, vb Color, RGB)

      Folge 24   Zeichen ersetzen mit der REPLACE Funktion

      Folge 25   Zeichen trennen mit der SPLIT Funktion

      Folge 26   Zeichen verbinden mit der JOIN Funktion

      Folge 27   Auszug aus einer Zeichenkette - LEFT, RIGHT, MID Funktion

      Folge 28   Zeichenketten vergleichen mit UCase & LCase

      Folge 29   Arbeitsmappen Ereignisse (Open, BeforeClose, BeforeSave)

      Folge 30   Tabellenblatt Ereignisse (Change, BeforeDoubleClick)

      Folge 31   Zeilen und Spalten fixieren (FreezePanes)

      Folge 32   Kommentare einfügen mit VBA (AddComment)

      Folge 33   Zellen verbinden & Warnmeldungen ignorieren