Calc-Makro zur Text-zu-Zahl-Konvertierung

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Gast8881

Calc-Makro zur Text-zu-Zahl-Konvertierung

Beitrag von Gast8881 » Di, 06.08.2019 11:58

Hallo,
bin vor kurzem auf OO (LO) umgestiegen und bin nun dabei einige geliebte Makros von Excel zu konvertieren. Dabei ist dieses, das Zahlen, die extern importiert wurden (also mit Hochkomma als Text) "on the fly" ins numerische Format umzuwandeln. Mit Zahlen funktioniert das ganz gut, aber wenn ich eine Zelle mit echtem Text (String) markiere, schreibt mir das Makro eine 0 hinein.
Nun meine 2 Fragen:
1. Wie muss die If-Then-Else-Anweisung aufgebaut sein, damit Alpha-Strings unberücksichtigt beiben und das Makro beendet wird.
2. Da es mühsam ist, Zelle für Zelle zu bearbeiten, hätte ich gern das Makro für den markierten Zellbereich (.Range) angepasstt haben.
Danke für Eure Vorschläge.

Code: Alles auswählen

sub InWertWandeln___
' Listing 474. Ermittlung der aktiven Zelle.
' isNumeric() prüft lediglich, ob der übergebene Ausdruck in
' eine gleichlautende Zahl umgewandelt werden kann,
' also ob es sich um Ziffern handelt.
 oDoc = thisComponent
mysheet = oDoc.CurrentController.ActiveSheet
oActiveCell=oDoc.currentSelection
oString=oActiveCell.string
 Msgbox oString ' zu Kontrollzwecken
Wert=Val(oString)
If IsNumeric(Wert) then
 Msgbox Wert
oActivecell.setValue(Wert)
  else
 MSgbox "Ist keine Zahl"
 exit Sub
end if
end sub

mikeleb
******
Beiträge: 800
Registriert: Fr, 09.12.2011 16:50

Re: Calc-Makro zur Text-zu-Zahl-Konvertierung

Beitrag von mikeleb » Di, 06.08.2019 16:50

Hallo,
Dabei ist dieses, das Zahlen, die extern importiert wurden (also mit Hochkomma als Text) "on the fly" ins numerische Format umzuwandeln.
Dafür wird kein Makro benötigt, siehe hier: https://de.openoffice.info/viewtopic.ph ... 32#p228680
Gruß,
mikeleb

Gast

Re: Calc-Makro zur Text-zu-Zahl-Konvertierung

Beitrag von Gast » Di, 06.08.2019 17:30

Hallo,

ja das funktioniert so gut durch Ersetzen. Habe alles mitgeschnitten und so als Makro abgespeichert.
Ich habe keine Lust, ständig die gleichen Schritte tun zu müssen, deshalb hielt ich ein Makro für die bessere Lösung, außerdem brauche ich mir nicht zu merken was ich da eingeben muss und kann alles durch einen Buttonklick erledigen. Das Makro ist schön lang und ich kann damit beginnen die nicht benötigten Argumente zu löschen...

Danke und tschüs

8881er

Antworten