Anzeige
Archiv - Navigation
628to632
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
628to632
628to632
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tricky Replacement Stuff

Tricky Replacement Stuff
23.06.2005 17:31:02
Stephan
Hey xlFreaks.
Hab hier etwas Schwieriges. Hatte gedacht, dass ich alle Zellen meines Workbooks, deren Wert = "#NV" ist, durch die untere Codezeile auf Null setze:
Blatt.Range("G30:I200").Cells.Replace What:="#NV", Replacement:="0", LookAt:=xlPart
Da habe ich mich gründlich getäuscht, der scheint das "#NV" nicht als String aufzufassen. Ich weiss, dass dieser Fehlertyp den internen Fehlerwert Typ 7 besitzt. Wie kann ich dass den Einbauen ?
Alle Anregungen erwünscht...

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tricky Replacement Stuff
Stephan
Das wäre ein anderer Ansatz, der aber leider nicht richtig funktioniert....
If Error.Type(Blatt.Range("G30:I200").Cells.Value) = 7 Then
Blatt.Range("G30:I200").Cells.Value = 0
End If
Cells.SpecialCells(xlCellTypeFormulas, xlErrors)
23.06.2005 17:47:19
ransi
hallo stefan
allerdings ohne richtige fehlerbehandlung:
Option Explicit
Public

Sub test()
Dim zelle As Range
On Error Resume Next
For Each zelle In Range("g30:i200").Cells.SpecialCells(xlCellTypeFormulas, xlErrors)
If zelle.Text = "#NV" Then zelle.Value = 0
Next
End Sub

ransi
AW: Tricky Replacement Stuff
23.06.2005 17:49:34
ransi
hallo stefan
das sind aber alles nur Krücken.
Am besten ist es wenn du deine Formeln so umstrickst das es erst
garnicht zu dem fehler kommt.
ransi
Anzeige
Schön wäre es....
23.06.2005 17:51:42
Stephan
Hey ransi. Danke.
Leider sind die Daten aus einem DATA-Warehouse, auf das ich keinen Einfluss habe. Somit sind die Krücken schon zu bevorzugen. Danke Dír... ich werd es mal ausprobieren...
Es funzt nicht.....
Stephan
Hey Jungs, der oben von ransi empfohlene "Krücken"-Code fiunzt nicht. Geht zwar butterweich durch, aber Null Funktionalität. Die "#NV" Zellen bleiben erhalten...
AW: Tricky Replacement Stuff
23.06.2005 18:01:48
ransi
hallo stefan
wenn du keine formeln hast gehts auch so:
Option Explicit
Public

Sub t()
Dim zelle As Range
On Error Resume Next
Range("G30:I200").Replace What:="#NV", Replacement:="0", LookAt:=xlPart
End Sub

ransi
Anzeige
MEGA-Tricky Replacement Stuff
23.06.2005 18:08:28
Stephan
Egal, was man macht, keine Lösung funktionärt. Fakt ist, dass der Fehlerwert "#NV" kein Text ist, sondern ein Value (weil in Formel das "'" fehlt...). MUss man vielleicht doch über den Fehlerindex ran ?
AW: Tricky Replacement Stuff
23.06.2005 18:10:05
Matthias
Hallo Stephan,
folgender Code wandelt die Formeln der selektierten Zellen entsprechend um:

Sub NV_Weg()
Dim z As Range, formel As String
For Each z In Selection
If z.HasFormula Then
formel = Mid(z.Formula, 2)
z.Formula = "=IF(ISNA(" & formel & "),0," & formel & ")"
End If
Next z
End Sub

Möglichst nur einmal auf jede Zelle anwenden! ;-)
Gruß Matthias
Anzeige
Auch die funktioniert nicht... aber vielleicht Alt
23.06.2005 18:35:31
Stephan
Habe es mal meinen Anforderungen angepasst, aber out of function....
For Each z In Blatt.Range("F30:F200")

If z.HasFormula Then
formel = Mid(z.Formula, 2)
z.Formula = "=IF(ISNA(" & formel & "),0," & formel & ")"
End If
Next z
AW: Auch die funktioniert nicht... aber vielleicht Alt
23.06.2005 18:38:45
Stephan
Drehen wir den Spiess mal um, wenn ich im unteren Feld die Daten aus einem Range (eben diesen Worksheets, in denen der Wert "#NV" auftaucht) in das Array einlese, müsste es doch mit "On Error Resume Next" klappen, die Fehlermeldung zu umgehen und bis zum Ende einzulesen !?. Wo platziere ich das "On Error..." in der For-Schleife ?
With Worksheets("measures").Range("eins")
ReDim Preserve varM(1 To .Rows.Count, 1 To 4)
For intDatArrayPos = LBound(varM) To UBound(varM)
varM(intDatArrayPos, 1) = .cells(intDatArrayPos, 1).Value
varM(intDatArrayPos, 2) = .cells(intDatArrayPos, 2).Value
varM(intDatArrayPos, 3) = .cells(intDatArrayPos, 3).Value
varMintDatArrayPos, 4) = .cells(intDatArrayPos, 4).Value
Anzeige
AW: Auch die funktioniert nicht... aber vielleicht
23.06.2005 18:43:01
Matthias
Hallo Stephan,
was heißt out of function... verändert es etwa die Formeln nicht? Oder stehen da gar keine Formeln in den Zellen?
Gruß Matthias
AW: Tricky Replacement Stuff
23.06.2005 18:55:55
Kurt
Hallo,
na dann probier mal das:

Sub test()
Dim rng As Range
For Each rng In ActiveSheet.UsedRange
If IsError(rng.Value) Then
rng.Value = 0
End If
Next
End Sub

...und Tschüss Kurt
AW: Tricky Replacement Stuff
23.06.2005 19:18:23
Stephan
HAbe den Fehler erst mal auf Eis gelegt und mich mit On Error Resume Next begnügt... Ich werde das am Wochenende mal eingehend ausprobieren....
Danke für Eure Mithilfe.
AW: Tricky Replacement Stuff
26.06.2005 01:18:28
Herb
WARUM SOLL ICH DAS PROBIEREN? TAUGT NICHTS!!!!!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige