Anzeige
Archiv - Navigation
1756to1760
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

#Bezug! Fehler finden und überschreiben

#Bezug! Fehler finden und überschreiben
11.05.2020 15:08:53
CCN
Hallo!
Ich habe ein kleines Berechnungsprogramm, dass die Werte für die Berechnungen sowohl aus einer Datenbank als auch vom User eingeben übernimmt. Nun kommt es bei manchen Felder vor, dass durch fehlende Informationen (aus der Datenbank oder nicht vom User angegeben) ein Bezug, Wert, DIV0 Fehler auftritt. Das ist nicht weiter tragisch, weil ich weiß, dass dies nur durch fehlende Informationen hervorgerufen wird.
Allerdings möchte ich diese Fehlermeldungen in der gesamten Tabelle finden und durch ein "-" ersetzen, ohne jedoch die hinterlegte Formel zu überschreiben. Geht sowas in VBA? Wenn ja, wie müsste da so ein Code aussehen?
Bin ein VBA Laie, also bitte den gesamten Code angeben. Vielen Dank!!!

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: #Bezug! Fehler finden und überschreiben
11.05.2020 15:43:25
Werner
Hallo,
=WENNFEHLER(DeineFormel;"-")
Gruß Werner
AW: #Bezug! Fehler finden und überschreiben
11.05.2020 15:51:14
CCN
Hallo Werner,
danke für die rasche Antwort.
Hast du auch eine allgemeinere Lösung.
Ich meine eine Lösung bei der man nicht die Formel reinschreiben muss.
In der Form wie Wenn "#Bezug!" dann "-".
Ich müsste ansonsten die diesen Befehl für jede Zelle schreiben, in der so etwas vorkommen kann.
Vielen Dank und liebe Grüße
Niki
AW: #Bezug! Fehler finden und überschreiben
11.05.2020 16:10:51
Daniel
HI
das geht auch ohne VBA:
1. alle Zellen markieren
2. Selektion auf Zellen mit Fehlerwerten einschänken, hierzu geht man so vor:
F5 - Inhalte - Formeln + Fehlerwerte (ggf auch Konstanten + Fehlerwerte, wenn Formeln in Werte gewandelt wurden)
bzw vollständig über das Menü:
Start - Bearbeiten - Suchen und Auswählen - Inhalte - Formel + Fehlerwerte
3. "-" eingeben und Eingabe mit STRG+ENTER abschließen, so wird die Eingabe in alle markierten Zellen übernommen
wenn du es mit VBA machen willst: geht genauso, auch mit genau diesen Schritten. Der Recorder ist dein Freund.
Gruß Daniel
Anzeige
AW: #Bezug! Fehler finden und überschreiben
12.05.2020 06:53:16
CCN
Hallo Daniel,
danke für die rasche Antwort.
Ich möchte es allerdings in VBA automatisch machen lassen.
Da ich absoluter VBA Laie bin, benötige ich euere Hilfe und einen VBA Code dafür.
Vielen Dank und liebe Grüße
Niki
AW: #Bezug! Fehler finden und überschreiben
12.05.2020 12:32:21
CCN
Hallo Daniel,
danke das probier ich später einmal aus.
LG
Niki
AW: #Bezug! Fehler finden und überschreiben
13.05.2020 13:44:18
CCN
Hallo Daniel!
Ich habe deinen Rat mit dem Recorder ausprobiert und es funktioniert eigentlich im großen und ganzen. Da ich die Formel nicht überschreiben möchte, habe ich mir deshalb gedacht ich kopiere die Tabelle --> ändere alle Fehlermeldungen in "-" um --> gebe die kopierte Tabelle aus. Desweiteren soll er alle Fehlermeldungen selbst finden.
Folgenden Code habe ich dafür:
Sub KopierenFehler()
' KopierenFehler Makro
' Tabelle kopieren, Fehler finden, Fehler durch "-" ersetzen
Sheets("Vorlage").Select
Sheets("Vorlage").Copy After:=Sheets(1)
Sheets("Vorlage (2)").Select
Sheets("Vorlage (2)").Name = "Fehler"
Sheets("Fehler").Activate
Selection.Replace What:="#*", Replacement:="-", LookAt:=xlWhole
Sheets("Fehler").Select
End Sub
Leider kopiert der Code nur die Tabelle. Dann passiert nichts mehr. Die Fehlermeldungen ändern tut er nicht! Den Befehl Selection.Replace habe ich aus einem anderen Block, der ebenfalls von dir ist. Nur funktioniert er bei mir nicht.
Siehst du hier den Fehler?
Vielen Dank im Voraus und liebe Grüße
Niki
Anzeige
AW: #Bezug! Fehler finden und überschreiben
14.05.2020 10:04:58
Daniel
Hi
Replace wirkt bei Formeln immer nur auf den Formeltext und du kannst damit nur die Formel verändern aber niemals das Formelergebnis.
wenn du dir die Formeln nicht überschreiben willst, würde ich doch dazu raten, dir die Mühe zu machen und den Vorschlag von Werner aufzugreifen und dein Formelwerk mit WENNFEHLER zu ergänzen:
=WennFehler(die ursprüngliche Formel;"-")
wenn dir das zu viel Arbeit ist, dann kann man das auch durch ein Makro ausführen lassen:
dim Zelle as range
for each Zelle in Selection.SpecialCells(xlcelltypeformulas)
Zelle.Formula = "=IFERROR(" & Mid(Zelle.Formula, 2) & ",""-"")"
Next
alternativ würde ich so vorgehen:
- neues leeres Blatt anlegen
- Werte und Formate vom alten Blatt ins neue kopieren
- dann mit Replace die Fehlerwerte eleminieren:
Sheets.Add After:=Sheets("xxx")
Sheets("xxx").UsedRange.Copy
ActiveSheet.cells(1, 1).PasteSpecial xlpastevalues
ActiveSheet.Cells(1, 1).PasteSpecial xlpasteFormats
ActiveSheet.Cells.Replace "#*", "'-", xlwhole
Gruß Daniel
Anzeige
AW: #Bezug! Fehler finden und überschreiben
14.05.2020 15:50:04
CCN
Hallo Daniel,
leider kann ich nicht manuell den WennFehler Befehl eingeben, da ich überhaupt nicht weiß wo er auftreten kann. Das Programm ist nicht von mir, ich soll hier nur einige Änderungen durchführen.
Bei der 1. Alternative: Findet das Makro alle Fehler und ersetzt es auch. Allerdings überschreibt es die Zelle einfach. Wenn ich das Programm noch einmal ohne das Makro laufen lasse, dann habe ich immer noch "-" drin, sollte aber eigentlich wieder die Fehlermeldung haben.
Bei der 2. Alternative: Die macht was es soll. Eine Kleinigkeit stört aber da noch. Ich habe ein Bild in der ursprünglichen Tabelle, die nicht mitkopiert wird. Ich habe 2 Buttons (zurück zum Start und pdf erstellen) in der ursprünglichen Tabelle, die ebenfalls nicht mitkopiert werden. Gibt es eine Möglichkeit dies noch dazu zu kopieren?
Danke und liebe Grüße
Niki
Anzeige
AW: #Bezug! Fehler finden und überschreiben
14.05.2020 16:05:24
Daniel
dann kopiere wie bisher das ganze Sheet mit Sheets().Copy und ersetze im ganzen Blatt Formeln durch Werte.
der Vorgang muss dann aber jedesmal wiederholt werden, wenn das ursprungsblatt mit den Formeln neu berechnet wurde.
das WENNFEHLER kannst du prinizipell bei allen Formeln einfügen.
Wenn die Formel keinen Fehler hat, wird das normale Ergebnis ausgegeben.
diese Funktion ist eigentlich genau dafür da, was du vorhast.
ich verstehe nicht, warum du das so kategorisch ablehnst.
Gruß Daniel
AW: #Bezug! Fehler finden und überschreiben
15.05.2020 12:29:59
CCN
Hallo Daniel,
mit deiner Hilfe habe ich mir den Code jetzt irgendwie zusammengestellt.
Musste zwar einiges noch verändern, dein Ansatz war aber eine sehr gute Basis, danke!
Ich lehne den WennFehler nicht aus Prinzip ab.
Aber wenn man 100 oder mehr Formeln pro Tabelle ändern muss, dann wird das insgesamt eine mühsame Geschichte.
Danke noch einmal für deine Hilfe und deine Geduld.
LG
Niki
Anzeige

76 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige