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

Laufzeitfehler bei Text in Spalte die Za

Laufzeitfehler bei Text in Spalte die Za
14.01.2021 11:03:47
Sigi
Hallo zusammen,
ich habe das kleine Problem das ich nicht lösen kann.
Ich nutze eine SAP DWL und strukturiere das Format so das es leichter zu lesen ist.
Aus SAP ist es systembedingt so das Zahlenkolonnen mit führender Null diese Null dann abgeschnitten ist.
das Problem habe ich folgendermaßen gelöst.
''Fürende 0 bei Funktionsbereich und Fipo
Set rg = ws1.Range("A1:Z1").Find(what:="Send. Fber")
If Not rg Is Nothing Then
ws1.Columns(rg.Column).NumberFormat = "0000000"
For Zeile = 2 To LZ
ws1.Cells(Zeile, rg.Column) = CCur(ws1.Cells(Zeile, rg.Column))
Next
End If
Set rg = ws1.Range("A1:Z1").Find(what:="S.Fipos")
If Not rg Is Nothing Then
ws1.Columns(rg.Column).NumberFormat = "000000000"
For Zeile = 2 To LZ
ws1.Cells(Zeile, rg.Column) = CCur(ws1.Cells(Zeile, rg.Column))
Next
End If
Nun ist es aber so das in der Spalte "Send. Fber" seit neuesten auch echter Text auftaucht der ignoriert werden muss.
Im Moment ist es so das der echte Text dann einen Laufzeitfehler bringt.
Wie kann ich den Laufzeitfehler an dieser Stelle übergehen?

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

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler bei Text in Spalte die Za
14.01.2021 11:20:33
Werner
Hallo,
mal was Grundsätzliches: Es macht wenig Sinn, nur einen Teil eines Codes hier zu posten. Kein Mensch weiß wo und wie du deine Variablen deklariert und befüllt hast.
With ws1
Set rg = .Range("A1:Z1").Find(what:="Send. Fber")
If Not rg Is Nothing Then
.Columns(rg.Column).NumberFormat = "0000000"
For Zeile = 2 To LZ
If IsNumeric(.Cells(Zeile, rg.Column)) Then
ws1.Cells(Zeile, rg.Column) = CCur(ws1.Cells(Zeile, rg.Column))
End If
Next Zeile
End If
Set rg = .Range("A1:Z1").Find(what:="S.Fipos")
If Not rg Is Nothing Then
.Columns(rg.Column).NumberFormat = "000000000"
For Zeile = 2 To LZ
If IsNumeric(.Cells(Zeile, rg.Column)) Then
.Cells(Zeile, rg.Column) = CCur(ws1.Cells(Zeile, rg.Column))
End If
Next Zeile
End If
End With
Gruß Werner
Anzeige
AW: Laufzeitfehler bei Text in Spalte die Za
14.01.2021 14:57:29
Sigmund
Danke Werner das hat sofort geholfen. Das Ergebnis schaut gut aus.
Ich gelobe Besserung bei weiteren Frage und werde den ganzen Code mitliefern. :o)
VG
Gerne u. Danke für die Rückmeldung. o.w.T.
14.01.2021 19:36:51
Werner
AW: Laufzeitfehler bei Text in Spalte die Za
14.01.2021 11:59:09
Daniel
Hi
Ist CCur als Umwandlung zwingend oder reicht auch ein normales CDbl?
Wenn die normale Umwandlung reicht, kannst du auch einfach die Menüfunktion Daten - Datentools - Text in Spalten auf die Spalte anwenden, um als Text formatierte Zahlen in echte Zahlen zu wandeln.
Das stört sich nicht an Texten zwischen drin und sollte auch schneller sein als so eine Schleife.
Du solltest nur wenn du das per VBA ausführst, immer FAS Dezimalzeichen angeben. (Im Assistenten Schritt 3 WEITERE)
Ansonsten verwendet VBA immer den Punkt als Dezimalzeichen, während bei der von-Hand-ausführung dasjenige der Ländereinstellung verwendet wird. (Hier komma)
Ansonsten wie von Werner gezeigt mit IsNumeric prüfen, ob der Wert in eine Zahl gewandelt werden kann.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige