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

Forumthread: #NV mit VBA ersetzen

#NV mit VBA ersetzen
sascha76er
Hallo,
ich möchte gerne in der Spalte O die Zellen mit dem Inhalt #NV via VBA durch den Inhalt FALSCH ersetzen.
Mit dem MAKRO-Recorder gelingt mir das Leider nicht.
Hat jemand für mich eine Idee!?
Vorab vielen Dank
Sascha
Anzeige
#NV = #N/A
21.08.2009 14:45:43
{Boris}
Hi Sascha,
der Recorder spricht Englisch - daher musst Du auch nach dem englischen Fehlerwert suchen.
Grüße Boris
Na, ich weiß ja nicht,...
21.08.2009 15:10:44
Luc:-?
...Boris,
in VBA wdn eigentl immer nur Fehlernummern angezeigt, in diesem Fall als ToolTipText auf dt "Fehler 2042".
Mit If IsError(zelle) Then bzw WorksheetFunction.IsNA(zelle) Then sollte der Fehler feststellbar sein. Bei der zu favorisierenden 1.Variante müsste das noch mit ...=CVErr(2042) eingegrenzt wdn.
Gruß+schöWE, Luc :-?
Anzeige
Warum immer so kompliziert...
21.08.2009 15:15:16
{Boris}
Hi Luc,
mit der Find-Methode: Suche nach: #N/A, ersetzen durch nix oder FALSCH oder sonst was.
Das ist a) schnell und b) mega simpel... ;-)
Grüße Boris
Na gut, ich schreibe udF, da ist so etwas...
21.08.2009 15:21:36
Luc:-?
...kaum opportun, Boris... ;-)
Gruß Luc :-?
Aber hier haben wir "VBA - nein"...
21.08.2009 15:30:35
{Boris}
Hi Luc,
...und daher empfand ich Suchen und Ersetzen eher als opportun ;-)
Grüße Boris
Anzeige
AW: Aber hier haben wir "VBA - nein"...
21.08.2009 15:34:16
Daniel
HI
allerdings wird Suchen und Ersetzen kaum funktionieren, da ERSETZEN nur auf die Formel wirkt.
die Fehlermeldung erscheint aber nur in der Anzeige und ist nicht Bestandteil der Formel.
Daher kann man mit Suchen/Ersetzen als Excelfunktion nichts ausrichten.
Gruß, Daniel
Du musst duch nur umstellen auf...
21.08.2009 15:39:03
Matthias5
Hallo Daniel,
...suchen in Werten.
Gruß,
Matthias
Anzeige
AW: Du musst duch nur umstellen auf...
21.08.2009 15:54:02
Daniel
HI
ich kann in WERTEN aber nicht ersetzen, sondern nur in FORMELN
ansonsten musst du eine DO-Schleife bauen, die jeden Fehler in den Werten findet und anschließend die Formel durch den Text "Falsch" austauscht.
Das ist dann bei VBA nein nicht so ganz ohne und sollte mit einem Beispielcode hinterlegt werden.
Gruß, Daniel
Anzeige
Ups, ja...
21.08.2009 15:59:10
Matthias5
Hallo Daniel,
klar, es geht ja ums Ersetzen. Hast recht!
Naja, Freitagnachmittag ... ich mache Schluss ... äh ... also Feierabend!
Schönes WE (an alle),
Matthias
AW: Du musst duch nur umstellen auf...
21.08.2009 15:59:46
{Boris}
Hi Daniel,
was spricht gegen den Einzeiler
Sub til()
Range("O:O").Replace "#N/A", False
End Sub
?
Grüße Boris
Anzeige
AW: Du musst duch nur umstellen auf...
21.08.2009 16:19:35
Daniel
Hi
hast du die letzten Beiträge nicht gelesen?
Fehlerwerte werden idR nicht von Hand eingetragen, sondern werden durch Formeln erzeugt.
damit das funktioniert, musst du erst alle Formeln in der Spalte O durch ihre Werte ersetzen.
Gruß, Daniel
Sorry...
21.08.2009 16:32:41
{Boris}
Hi Daniel,
...hatte ich nicht gelesen. Allerdings sollte sich jetzt erstmal der OP äußern ;-)
Grüße Boris
Anzeige
Als wenn ich das geahnt hätte... ;-) owT
22.08.2009 04:09:10
Luc:-?
:-?
Er schrieb aber von VBA und Recorder, da...
21.08.2009 15:48:08
VBA
...lag das doch nahe, Boris!
Und deine Lösung ist ja auch für VBA-Subroutinen, auf die man zugegebenermaßen als VBA-Einsteiger zuerst verfallen sollte... ;-) Das Schreiben von Subroutinen ist bei mir nur Nebenzweck, deshalb mein anderer Ansatz...
Gruß Luc :-?
AW: #NV mit VBA ersetzen
21.08.2009 15:12:33
Daniel
Hi
wenn alle Fehler durch "FALSCH" ersetzt werden sollen (dh auch andere Fehlermeldungen wie #Zahl oder #DIV/0, falls diese vorkommen), dann geht das einfach so:
On Error Resume Next
Columns("O:O").SpecialCells(xlCellTypeFormulas, 16).Value = False
On Error GoTo 0
das On Error ist erforderlich, da es sonst einen Fehlerabbruch im Makro gibt, wenn in keiner der Zellen ein Fehler auftritt.
diese Methode ist auch mit dem Recorder aufzeichenbar:
- Spalte O selektieren
- BEARBEITEN - GEHE ZU - INHALTE, dort "Formeln" auswählen und "Fehler" anchecken.
- "Falsch" eintippen und Eingabe mit STRG+ENTER abschließen, die Eingabe wird in alle selektierten Zellen übernommen.
Gruß, daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

NV mit VBA ersetzen


Schritt-für-Schritt-Anleitung

Um die Zellen mit dem Inhalt #NV in Excel mittels VBA durch den Wert FALSCH zu ersetzen, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub ErsetzeNV()
       On Error Resume Next
       Columns("O:O").SpecialCells(xlCellTypeFormulas, 16).Value = False
       On Error GoTo 0
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Drücke ALT + F8, wähle ErsetzeNV aus und klicke auf Ausführen.

Diese Methode sorgt dafür, dass alle #NV-Werte in der Spalte O durch FALSCH ersetzt werden.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004: Die Methode 'SpecialCells' für das Objekt 'Range' ist fehlgeschlagen."

    • Lösung: Dieser Fehler tritt auf, wenn es keine Zellen mit Fehlerwerten gibt. Stelle sicher, dass in der Spalte O tatsächlich Fehler vorhanden sind.
  • Fehler: Der Wert wird nicht ersetzt.

    • Lösung: Überprüfe, ob die Zellen in der Spalte O Formeln enthalten. Wenn die Zellen feste Werte haben, musst du die Formelwerte erst in Werte umwandeln.

Alternative Methoden

Falls du VBA nicht verwenden möchtest, kannst du #NV auch über die Excel-Funktion Suchen und Ersetzen ersetzen:

  1. Wähle die Spalte O aus.
  2. Drücke STRG + H, um das Dialogfeld "Suchen und Ersetzen" zu öffnen.
  3. Gib #N/A in das Feld "Suchen nach" ein und FALSCH in das Feld "Ersetzen durch".
  4. Klicke auf "Alle ersetzen".

Beachte, dass diese Methode nur funktioniert, wenn die #NV-Werte tatsächlich im Textformat vorliegen.


Praktische Beispiele

Hier sind einige Szenarien, in denen du #NV in Excel ersetzen könntest:

  • Fall 1: Du hast eine große Datenanalyse und möchtest alle #N/A-Werte durch 0 ersetzen. Verwende den gleichen VBA-Code und ändere False zu 0.

    Sub ErsetzeNVDurchNull()
      On Error Resume Next
      Columns("O:O").SpecialCells(xlCellTypeFormulas, 16).Value = 0
      On Error GoTo 0
    End Sub
  • Fall 2: Du möchtest alle Fehler in einer Tabelle auf einmal beheben. Verwende den Code, um alle Arten von Fehlern durch FALSCH zu ersetzen, wie z.B. #DIV/0!, #WERT!, usw.


Tipps für Profis

  • Verwende On Error Resume Next mit Bedacht: Dieser Befehl unterdrückt alle Fehler. Stelle sicher, dass du ihn nur verwendest, wenn du sicher bist, dass ein Fehler auftreten kann und du ihn ignorieren möchtest.

  • Excel grüne Ecken entfernen: Du kannst die grünen Ecken, die auf Fehler hinweisen, deaktivieren, indem du in den Excel-Optionen unter "Formeln" die Fehlerüberprüfung anpasst.

  • Testen des Codes: Teste deinen VBA-Code in einer Kopie deiner Arbeitsmappe, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Was bedeutet #NV in Excel? #NV (oder #N/A) ist ein Fehlerwert, der anzeigt, dass ein Wert nicht verfügbar ist. Dies kann durch eine Formel verursacht werden, die keinen passenden Wert findet.

2. Kann ich #N/A in Excel durch 0 ersetzen? Ja, du kannst #N/A durch 0 ersetzen, indem du den VBA-Code entsprechend anpasst. Ändere einfach den Wert in der Replace-Methode zu 0.

3. Wie kann ich alle Fehlerwerte in einer gesamten Tabelle ersetzen? Du kannst eine Schleife in VBA verwenden, um alle Fehlerwerte in einer gesamten Tabelle zu durchsuchen und sie durch einen gewünschten Wert zu ersetzen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige