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

Forumthread: wenn fehler dann sonst mit vba

wenn fehler dann sonst mit vba
Erik
Hallo Leute ich versuche einen Forecast zu erstellen und habe folgendes Problem.
Diese Formel:
=WENN(ISTFEHLER(VERWEIS(C:C;Tabelle3!A:A;Tabelle3!B:B));"";VERWEIS(C:C;Tabelle3!A:A;Tabelle3!B:B))
Steht in einer Zelle.
Wenn die Leute jetzt in die zelle schreiben ist die formel weg.
Wie stelle ich es an das in vba abzubilden damit die formel immer aktiv ist.
Punkt ist der wenn in zelle c:c eine kundennummer steht soll er in tabelle3 die kundennummer suchen und den kundennamen selbst eintragen.
Wenn die leute aber keine kundennummer kennen sollen sie interessenten eingaben nur mit namen.
Jetzt soll aber nach löschen des inhaltes der zellen die formel immer noch aktiv sein das wenn neue kundennummer eingegeben wird die abfrage und ausgabe noch funktioniert.
So sieht mein Versuch aus:
Option Explicit

Public Sub FormelnSchreiben()
Dim oBlatt As Worksheet
Set oBlatt = ThisWorkbook.Worksheets("Kunden-Forecast") 'Tabellennamen gg. anpassen
With oBlatt
Range("D:D").FormulaLocal = "=WENN(ISTFEHLER(VERWEIS(C:C;Tabelle3!A:A;Tabelle3!B:B));""" _
";VERWEIS(C:C;Tabelle3!A:A;Tabelle3!B:B))"
End With
Set oBlatt = Nothing
End Sub
Bitte helft mir...
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: wenn fehler dann sonst mit vba
24.10.2011 23:00:40
Josef

Hallo Erik,
abgesehen davon, dass die Formel über ganze Spalten wohl Quatsch ist, sollte das einfügen per VBA kein Problem sein.

« Gruß Sepp »

Anzeige
AW: wenn fehler dann sonst mit vba
25.10.2011 03:12:25
Daniel
HI
irgendwie kann ich mir nicht so richtig vorstellen, daß das funktioniert.
müsste bei der Verweis-Funktion nicht der erste Parameter ein Einzelwert sein?
außerdem liefert die Verweis-Funktion keinen Fehler, wenn ein Wert nicht gefunden wird, sondern sie verwendet als Ergebnis den nächstkleineren aus der Liste.
ich würde an deiner Stelle die Formel vor dem Überschreiben schützen und die Mitarbeiter anweisen, wenn sie die Kundennummer nicht wissen, den Namen anstelle der Kundennummer einzutragen.
Als Formel verwendest du dann das hier (geschrieben für Zeile 1)
=Wenn(C1="";"";Wenn(IstFehler(SVerweis(C1;Tabelle3!A:A;1;0));C1;SVerweis(C1;Tabelle3!A:B;2;0)))
dann wird, wenn der Eintrag nicht in der Kundennummerliste gefunden ist, der Eintrag selbst als Ergebnis verwendet.
Gruß, Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Automatisierung von Formeln in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um eine Formel in Excel mithilfe von VBA zu automatisieren, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen. Diese Anleitung geht davon aus, dass du bereits grundlegende Kenntnisse in Excel und VBA hast.

  1. Öffne die VBA-Entwicklungsumgebung: Drücke ALT + F11 in Excel.

  2. Füge ein neues Modul ein: Klicke im Menü auf Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Option Explicit
    
    Public Sub FormelnSchreiben()
        Dim oBlatt As Worksheet
        Set oBlatt = ThisWorkbook.Worksheets("Kunden-Forecast") ' Tabellennamen anpassen
        With oBlatt
            Range("D:D").FormulaLocal = "=WENN(ISTFEHLER(VERWEIS(C:C;Tabelle3!A:A;Tabelle3!B:B));""" _
            ";VERWEIS(C:C;Tabelle3!A:A;Tabelle3!B:B))"
        End With
        Set oBlatt = Nothing
    End Sub
  4. Führe das Makro aus: Schließe den VBA-Editor und drücke ALT + F8, wähle FormelnSchreiben und klicke auf Ausführen.

Diese Schritte sorgen dafür, dass die Formel immer aktiv ist, auch wenn der Zellinhalt gelöscht wird. Die Formel wird bei jeder Ausführung des Makros in die entsprechende Spalte geschrieben.


Häufige Fehler und Lösungen

  • Fehler: Formel wird nicht angezeigt
    Lösung: Stelle sicher, dass das Makro korrekt ausgeführt wurde. Überprüfe auch, ob der Tabellennamen in der VBA-Formel korrekt ist.

  • Fehler: Verweis-Funktion funktioniert nicht
    Lösung: Achte darauf, dass der erste Parameter der Verweis-Funktion ein einzelner Wert ist, und dass die Daten in Tabelle3 korrekt formatiert sind.

  • Fehler: Unerwartete Ergebnisse
    Lösung: Verwende die WENNFEHLER-Funktion, um die Ausgabe bei Fehlern zu steuern. Zum Beispiel:
    =WENNFEHLER(VERWEIS(...); "Kein Ergebnis")


Alternative Methoden

Eine Alternative zur Verwendung von VBA ist die Verwendung von Excel-Formeln direkt in den Zellen. Du kannst die WENNFEHLER-Funktion nutzen, um Fehler abzufangen. Hier ist ein Beispiel:

=WENNFEHLER(VERWEIS(C1;Tabelle3!A:A;Tabelle3!B:B); "Fehler")

Diese Formel gibt "Fehler" zurück, wenn der Wert nicht gefunden wird.


Praktische Beispiele

  1. Suchfunktion mit Fehlerbehandlung:

    =WENN(ISTFEHLER(VERWEIS(C1;Tabelle3!A:A;Tabelle3!B:B));"";VERWEIS(C1;Tabelle3!A:A;Tabelle3!B:B))

    Diese Formel gibt einen leeren Wert zurück, wenn ein Fehler auftritt.

  2. Kundennamen automatisch einfügen:

    Public Sub KundenNamenEintragen()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Worksheets("Kunden-Forecast")
       ws.Range("D1:D100").FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-1], Tabelle3!R1C1:R100C2, 2, FALSE)), """", VLOOKUP(RC[-1], Tabelle3!R1C1:R100C2, 2, FALSE))"
    End Sub

    Diese VBA-Prozedur trägt automatisch die Kundennamen in Spalte D ein, basierend auf den Werten in Spalte C.


Tipps für Profis

  • Formeln schützen: Schütze die Zellen, die Formeln enthalten, um unbeabsichtigtes Überschreiben zu verhindern.
  • Datenvalidierung verwenden: Setze Datenvalidierung für Eingabefelder, um sicherzustellen, dass nur gültige Kundennummern eingegeben werden.
  • Effiziente Nutzung von VBA: Nutze VBA, um Formeln dynamisch zu ändern, basierend auf anderen Eingaben in deinem Arbeitsblatt.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Formel immer aktiv bleibt?
Du kannst die Formel in VBA schreiben, sodass sie bei Bedarf immer wieder in die Zelle eingefügt wird.

2. Was mache ich, wenn ich die Formel nicht in alle Zellen anwenden kann?
Stelle sicher, dass du die Formel nur in den benötigten Zellen anwendest und möglicherweise den Bereich in der VBA-Prozedur anpasst, um nur relevante Zellen zu berücksichtigen.

3. Wie kann ich mit Fehlern umgehen, die bei der Suche auftreten?
Verwende die WENNFEHLER-Funktion, um Fehler abzufangen und eine benutzerfreundliche Nachricht anzuzeigen, anstatt einen Fehlerwert.

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