Excel vba wenn dann

Hallo zusammen,

erstmals Vielen dank für die Antworte

ich habe beide Lösungen probiert aber sie funktionieren leider nicht, bei der Lösung von fette Elfe kommt eine Fehlermeldung "Unzulässiger oder nicht ausreichend definierter Verweis (.Cells wird gelb markiert)" und bei der Lösung von Exl121150 wird der Code in meinem Zielfeld hineingefügt.

so sieht meine Tabelle (Hoffe das hilft dieses mal, wenn man eine Excel Datei hochladen kann würde ich die Datei Hochladen)
Excel vba wenn dann


Vielleicht war ich oben nicht ganz genau, im Prinzip muss ich die Nummern in einem Feld kriegen d.h. wenn die Zeile von Feld Nummer leer ist und im Feld Nummer2 eine Nummer steht soll er sie übernehmen. Bei der Angabe oben habe ich auch einen Fehler gefunden es sollte eigentlich so aussehen =wenn(D2="";E2;"").

Ich habe dies auch mit dieses Code
With Range("C2")
.FormulaLocal = _
"=Wenn(D2;E2)"
.Value = .Value
End With
probiert aber klappt auch nicht

Ich hoffe ich habe meinen Problem besser geschildert

Vielen dank im Voraus

LG
xGT86

 


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

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.

Unbehandelte Formelfehler können zu Fehlern in Ihrer Arbeitsmappe führen, aber sichtbare Fehler machen Ihr Arbeitsblatt auch weniger ansprechend.

Wenn Fehler dann 0

Schauen wir uns ein einfaches Beispiel an. Im Folgenden dividieren Sie zwei Zahlen. Wenn Sie versuchen, durch Null zu dividieren, erhalten Sie einen Fehler:

Excel vba wenn dann

Fügen Sie die Berechnung stattdessen in die WENNFEHLER-Funktion ein und es wird eine 0 anstelle eines Fehlers ausgegeben, wenn Sie durch Null dividieren:

=WENNFEHLER(A2/B2;0)

Excel vba wenn dann

 

Wenn Fehler dann leer

Anstatt Fehler auf 0 zu setzen, können Sie sie mit doppelten Anführungszeichen („“) auf leer setzen:

=WENNFEHLER(A2/B2;"")

Excel vba wenn dann

Wir werden uns weitere WENNFEHLER-Verwendungen mit der SVERWEIS-Funktion ansehen…

 

WENNFEHLER mit SVERWEIS

Nachschlagefunktionen wie SVERWEIS erzeugen Fehler, wenn der Suchwert nicht gefunden wird. Wie oben gezeigt, können Sie die WENNFEHLER-Funktion verwenden, um Fehler durch Leerzeichen („“) oder Nullen zu ersetzen:

=WENNFEHLER(SVERWEIS(A2;Nachschlagetabelle1;2;FALSCH);0)

Excel vba wenn dann

 

Wenn Fehler dann etwas Anderes tun

Die WENNFEHLER-Funktion kann auch verwendet werden, um eine zweite Berechnung durchzuführen, wenn die erste zu einem Fehler führt:

=WENNFEHLER(SVERWEIS(A2;Nachschlagetabelle1;2;FALSCH);
SVERWEIS(A2;Nachschlagetabelle2;2;FALSCH))

Excel vba wenn dann

Wenn die Daten in ‚Nachschlagetabelle1‘ nicht gefunden werden, wird stattdessen ein SVERWEIS auf ‚Nachschlagetabelle2‘ durchgeführt.

 

Weitere Beispiele für WENNFEHLER-Formeln

Verschachtelte WENNFEHLER-SVERWEIS – Mehrere Arbeitsblätter

Sie können eine WENNFEHLER in einer anderen WENNFEHLER verschachteln, um 3 separate Berechnungen durchzuführen. In diesem Beispiel werden wir zwei WENNFEHLER verwenden, um SVERWEIS auf 3 separaten Arbeitsblättern durchzuführen:

=WENNFEHLER(SVERWEIS(A2;Tabelle1!$A$2:$B$4;2;FALSCH);
WENNFEHLER(SVERWEIS(A2;Tabelle2!$A$2:$B$4;2;FALSCH);
SVERWEIS(A2;Tabelle3!$A$2:$B$4;2;FALSCH)))

Excel vba wenn dann

 

INDEX/VERGLEICH & XVERWEIS

Natürlich funktioniert WENNFEHLER auch mit INDEX/VERGLEICH- und XVERWEIS-Formeln.

WENNFEHLER-XVERWEIS

Die XVERWEIS-Funktion ist eine erweiterte Version der SVERWEIS-Funktion.

=WENNFEHLER(XVERWEIS(A2;Tabelle1!$A$2:$A$4;Tabelle1!$B$2:$B$4); "Nicht gefunden")

Excel vba wenn dann

 

WENNFEHLER-INDEX/VERGLEICH

INDEX und VERGLEICH können verwendet werden, um leistungsfähigere Nachschlageformeln (ähnlich wie die neue XVERWEIS-Funktion) in Excel zu erstellen.

=WENNFEHLER(INDEX(Tabelle1!$B$2:$B$4;VERGLEICH(A2;Tabelle1!$A$2:$A$4;0)); "Nicht gefunden")

Excel vba wenn dann

 

WENNFEHLER in Arrays

Array-Formeln werden in Excel verwendet, um mehrere Berechnungen mit einer einzigen Formel durchzuführen. Nehmen wir an, es gibt drei Spalten: Jahr, Umsatz und Durchschnittlicher Preis. Sie können die Gesamtmenge mit der folgenden Formel in der Spalte E ermitteln.

{=SUMME($B$2:$B$4/$C$2:$C$4)}

Excel vba wenn dann

Die Formel funktioniert gut, bis sie versucht, durch Null zu dividieren, was zu dem Fehler #DIV/0! führt.

Sie können die WENNFEHLER-Funktion wie folgt verwenden, um den Fehler zu beheben:

{=SUMME(WENNFEHLER($B$2:$B$4/$C$2:$C$4;0))}

Excel vba wenn dann

Beachten Sie, dass die WENNFEHLER-Funktion innerhalb der SUMME-Funktion verschachtelt sein muss, da sie sich sonst auf die Gesamtsumme und nicht auf jedes einzelne Element im Array beziehen würde.

WENNNV vs. WENNFEHLER

Die WENNNV-Funktion funktioniert genauso wie die WENNFEHLER-Funktion, außer dass die WENNNV-Funktion nur #NV-Fehler abfängt. Dies ist äußerst nützlich bei der Arbeit mit Nachschlagefunktionen: Normale Formelfehler werden weiterhin erkannt, aber es wird kein Fehler angezeigt, wenn der Nachschlagewert nicht gefunden wird.

=WENNNV(SVERWEIS(A2;Tabelle1!$A$2:$B$4;2;FALSCH); "Nicht gefunden")

Excel vba wenn dann

 

WENN-ISTFEHLER

Wenn Sie noch Microsoft Excel 2003 oder eine ältere Version verwenden, können Sie WENNFEHLER durch eine Kombination aus WENN und ISTFEHLER ersetzen. Hier ist ein kurzes Beispiel:

=WENNFEHLER(A2/B2;"")
0

Excel vba wenn dann

 

WENNFEHLER in Google Sheets

Die WENNFEHLER-Funktion funktioniert in Google Sheets genau so wie in Excel:

Excel vba wenn dann

 

WENNFEHLER-Beispiele in VBA

VBA verfügt nicht über eine eingebaute WENNFEHLER-Funktion, aber Sie können auch von VBA aus auf die Excel-Funktion WENNFEHLER zugreifen:

=WENNFEHLER(A2/B2;"")
1

Application.WorksheetFunction gibt Ihnen Zugriff auf viele (nicht alle) Excel-Funktionen in VBA.

Normalerweise wird WENNFEHLER beim Lesen von Werten aus Zellen verwendet. Wenn eine Zelle einen Fehler enthält, kann VBA eine Fehlermeldung ausgeben, wenn versucht wird, den Zellwert zu verarbeiten. Probieren Sie dies mit dem folgenden Beispielcode aus (wobei die Zelle B2 einen Fehler enthält):

Excel vba wenn dann

=WENNFEHLER(A2/B2;"")
2

Der Code weist die Zelle B2 einer Variablen zu. Die zweite Variablenzuweisung führt zu einem Fehler, weil der Zellenwert #NV entspricht, aber die erste funktioniert aufgrund der WENNFEHLER-Funktion problemlos.

Sie können auch VBA verwenden , um eine Formel zu erstellen, die die WENNFEHLER-Funktion enthält:

=WENNFEHLER(A2/B2;"")
3

Excel vba wenn dann

Die Fehlerbehandlung in VBA ist ganz anders als in Excel. Normalerweise verwenden Sie die VBA-Fehlerbehandlung zur Behandlung von Fehlern in VBA. Diese sieht wie folgt aus:

=WENNFEHLER(A2/B2;"")
4

Beachten Sie, dass wir If Err.Number <> 0 Then verwenden, um festzustellen, ob ein Fehler aufgetreten ist. Dies ist eine typische Methode, um Fehler in VBA abzufangen. Die WENNFEHLER-Funktion kann jedoch auch bei der Interaktion mit Excel-Zellen verwendet werden.