Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
436to440
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
436to440
436to440
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

formeln in mehreren tabellen ergänzen

formeln in mehreren tabellen ergänzen
04.06.2004 14:11:12
stefan
hallo,
ich habe eine grosse datei mit vielen vielen formeln, leider ist es so, das die formeln oft in #NV bzw #NA enden. nun wuerde ich gerne diese fehlermeldung abfangen und dafür eine null einsetzen. soweit auch kein problem, aber ich habe einige hundert zellen mit formeln die leider zu ändern sind. gibt es hierfür einen schnellen weg via VBA ?
also die formeln lauten:
HPVAL(F$1,F$2,$A28,F$3,$B$2,$B$3)
und sollte dann lauten
=IF(ISNA(HPVAL(F$1,F$2,$A28,F$3,$B$2,$B$3)),0,HPVAL(F$1,F$2,$A28,F$3,$B$2,$B$3))
alle formeln fangen mit HPVAL an haben aber unterschiedliche klammerinhalte.
bin für jeden tip sehr empfänglich, der es mir erspart eine muhevolle tipparbeit zu leisten :-))
vielen dank schon mal
gruß
stefan

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: formeln in mehreren tabellen ergänzen
04.06.2004 14:58:37
Matthias
Hallo Stefan,
folgender Code ändert die Fomeln im aktiven Blatt, ist also ggf. mehrmals auszuführen.
Besser aber den Code pro Blatt nur einmal auszuführen! Du kannst aber gerne testen, was sonst passiert... :-)

Option Explicit
Sub FormelÄndern()
Dim z As Range
Dim f As String
Dim calc
calc = Application.Calculation
Application.Calculation = xlCalculationManual
For Each z In ActiveSheet.UsedRange
If z.HasFormula Then
f = Mid(z.Formula, 2)
z.Formula = "=IF(ISNA(" & f & "),0," & f & ")"
End If
Next z
Application.Calculation = calc
End Sub
Gruß Matthias
Anzeige
AW: etwas schneller...
04.06.2004 15:09:11
Matthias
Hallo Stefan,
..geht es mit diesem Code (ich erinnerte mich, Boris! ;-):
Option Explicit
Sub FormelÄndern()
Dim z As Range
Dim f As String
Dim calc
calc = Application.Calculation
Application.Calculation = xlCalculationManual
For Each z In ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas)
f = Mid(z.Formula, 2)
z.Formula = "=IF(ISNA(" & f & "),0," & f & ")"
Next z
Application.Calculation = calc
End Sub
Gruß Matthias
AW: etwas schneller...
Gerd
For Each z In ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas)
Unnötig, wo sollten die Zellen sonst sein, wenn nicht im usedrange?
For Each z In ActiveSheet.SpecialCells(xlCellTypeFormulas)
Gerd
Anzeige
AW: etwas schneller...
Gerd
Noch mehr einschränken:
SpecialCells(xlCellTypeFormulas, 16)
Gerd
AW: etwas schneller...
04.06.2004 15:27:55
Matthias
Hallo Gerd,
das meint xlErrors... wenn aber dann plötzlich ein Fehler auftaucht, wo vorher keiner war, muss die Sub nochmals angewendet werden.
Gruß Matthias
AW: etwas schneller...
Gerd
Das passiert genauso, wenn du alle Zellen mit Formeln behandelst und der Fehler nachträglich auftritt.
Gerd
AW: etwas schneller...
04.06.2004 15:36:29
Matthias
Hallo Gerd,
Warum?
Dann steht doch in der Formel schon =WENN(ISTNV(..., also steht dann "0" drin und nicht #NV.
(diskutier...)
Gruß Matthias
Anzeige
AW: etwas schneller...
Gerd
Ok, hatte die ursprüngliche Aufgabe schon nicht mehr im Auge.
Gerd
tausend dank !!!! funzt wunderbar !!!
04.06.2004 15:12:54
stefan
.

316 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige