Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1116to1120
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

#WERT! ignorieren

#WERT! ignorieren
Gordon
Moin Moin,
ich habe zwei Excel-Blätter, wo per Makro Zelleninhalte von der einen in die andere übertragen werden. Als Beispiel:
Blatt2.Range("A1").Value = Blatt1.Range("A1").Value
Blatt2.Range("B1").Value = Blatt1.Range("B1").Value
Blatt2.Range("C1").Value = Blatt1.Range("C1").Value
......
.....
....
Es handelt sich hier im Zahlenwerte und das ganze läuft in einer DO-Schleife. Leider es so, dass auf Blatt1 manchmal in den Zellen auch der Fehlerwert '#WERT!' stehen kann. Wenn dem so ist, kommt immer eine Fehlermeldung und die Prozedur bricht ab.
Ich fände es nun schön, wenn dort dieser Fehlerwert steht, dass dieser ignoriert wird und stattdessen die Zelle auf Blatt2 leer bleibt und das Makro weiterläuft.
Ich hatte es schon so versucht, dass ich mit einer IF-Abfrage vorher schaue, ob der Wert in der jeweiligen Zelle gleich '#WERT!' ist. Leider hat das nicht funktioniert. Hat da jemand vielleicht eine bessere Idee?
Besten Gruß
Gordon

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
geht doch mit Formeln
23.11.2009 09:46:11
Matthias
Hallo
Userbild
Gruß Matthias
AW: geht doch mit Formeln
23.11.2009 10:03:06
Detlef
Hallo Gordon,
If IsError(Blatt1.Range("B1").Value) Then
'nichts tun
Else
Blatt2.Range("B1").Value = Blatt1.Range("B1").Value
End If
Gruß Detlef
AW: #WERT! ignorieren
23.11.2009 09:49:57
Oberschlumpf
Hi Gordon
Hast du auch schon das versucht (ungetestet):

If Blatt1.Range("A1").Text  "#WERT!" Then
Blatt2.Range("A1").Value = Blatt1.Range("A1").Value
End If

Dieses Bsp gilt jetzt nur für die Zelle(n) A1.
Kann sein, dass der Code angepasst werden muss, aber wir kennen deine Do/Loop-Schleife nicht.
Hilfts denn?
Ciao
Thorsten
Anzeige
vielleicht geht es so,...
23.11.2009 09:55:25
Tino
Hallo,
wenn ich Deinen Code richtig verstanden habe, müsste es so gehen.
Sub test()
Dim MeAR()
Dim A&, LLetzte&
Dim Blatt1 As Worksheet, Blatt2 As Worksheet
Set Blatt1 = Sheets("Tabelle1")
Set Blatt2 = Sheets("Tabelle2")
With Blatt1
LLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
If LLetzte > 1 Then
MeAR = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)).Value2
Else
ReDim MeAR(1 To 1, 1 To 1)
MeAR(1, 1) = .Cells(1, 1)
End If
End With
For A = 1 To UBound(MeAR)
If IsError(MeAR(A, 1)) Then MeAR(A, 1) = Empty
Next A
With Blatt2
.Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)).ClearContents
.Cells(1, 1).Resize(UBound(MeAR)) = MeAR
End With
End Sub
Gruß Tino
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige