Herbers Excel-Forum - das Archiv

Text in Zahlen

Bild

Betrifft: Text in Zahlen
von: Frank P.

Geschrieben am: 17.03.2005 20:52:52
Guten Abend Excelgemeinde,
ich habe in der Recherche eine Hilfe zu meinem Problem gefunden welche manuell sehr gut funktioniert aber beim automatisieren mächtig hapert.
Ich habe ein Arbeitsblatt welches mir nach dem Transponieren die Werte als Text ausgibt. Nun habe ich gefunden, wenn ich in eine x beliebige Zelle eine 1 eingebe - auf kopieren gehe - den gesamten Bereich welcher die Textfelder enthält markiere und über Inhalte Einfügen und multipliziere die Aktion abschließe sind alle Zellen als Zahlen formatiert. Über den Makrorecorder passiert da gar nichts.
Kann mir jemand bei VBA unter die Arme helfen?
Danke und Gruß Frank
Range("IV1").Select
ActiveCell.FormulaR1C1 = "1"
Selection.Copy

Range("D2:HK54").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False

Range("IV1").Select
Application.CutCopyMode = False
Selection.ClearContents
Bild

Betrifft: AW: Text in Zahlen
von: Frank P.

Geschrieben am: 17.03.2005 21:35:33
Hallo,
man bildet sich ja Dank dieses Forums, welches mir diese Woche schon gigantisch geholfen hat, immer weiter und langsam kommen die ersten eigenen VBA Ideen.
Bezugnehmend auf meine Frage -- kann ich nicht Excel mit untemstehendem Code dazubringen, all meine Textformatierten Zellen als Zahlenformatzellen umzuwandeln??
If .Range(.Cells(3, i), .Cells(.Cells(65536, i).End(xlUp).Row, i)) = Format(Right(Cells(1, 1), 4), "#,##")
ziel = twks.name ------ das Ziel wird im Makro 2 Etagen höher festgelegt ;-)
End if
es kommt keine Fehlermeldung - funktionieren tuts aber auch nicht
Gruß Frank
Bild

Betrifft: Das geht auch nicht per VBA...
von: Boris

Geschrieben am: 17.03.2005 21:54:37
Hi Frank,
...da hast du Recht. Es sind an dieser Stelle doch wieder 2 Welten - Excel und VBA.
Versuche einfach folgendes:
Bereich markieren und folgenden Code starten:

Sub mach_zahl()
Selection.Value = Selection.Value
End Sub

Grüße Boris
Bild

Betrifft: AW: Das geht auch nicht per VBA...
von: K.Rola

Geschrieben am: 17.03.2005 22:07:07
Hallo,
so sollte es gehen:
Sub Text_in_Zahl()
Selection.Replace What:=".", Replacement:=""
Selection.Replace What:=",", Replacement:="."
Cells(Rows.Count, Columns.Count).Copy
Selection.PasteSpecial Paste:=-4104, Operation:=2
End Sub

Gruß K.Rola

Der Fleiß ist die Wurzel aller Häßlichkeit.

Oscar Wilde


Bild

Betrifft: Werde ich jetzt noch hässlicher...
von: Boris
Geschrieben am: 17.03.2005 22:09:38
Hi Liebes,
...wenn ich jetzt fleißig versuche, mir diese Komma und Punktgeschichten auf immer zu merken?
Grüße Boris
Bild

Betrifft: AW: Werde ich jetzt noch hässlicher...
von: K.Rola
Geschrieben am: 17.03.2005 22:21:10
Hi,
häßlich kannst du gar nicht sein, nichtmal mit {}.
Hast du meine mail von gestern erhalten?
Gruß K.Rola
Bild

Betrifft: Ich sag´s ja ungern...
von: Boris
Geschrieben am: 17.03.2005 22:22:59
Hi K.Rola,
...aber es werden irgendwelche ActiveX-komponenten angemeckert - ich hab´s dir auch bereits per Mail geschickt...
Grüße Boris
Bild

Betrifft: OFTOPIC OFFTOPIC
von: Boris

Geschrieben am: 17.03.2005 22:38:58
Hi K.Rola,
...du hattest Peter gestern Abend nen Hinweis zu "Right" gegeben (VBA.String.Right - eben mit Bib und Klasse).
Hast du denn auch noch ne Ahnung, warum das einmal funktioniert und einmal nicht? Und nicht generell versagt / funktioniert?
https://www.herber.de/forum/messages/586967.html
Grüße Boris
Bild

Betrifft: AW: OFTOPIC OFFTOPIC
von: K.Rola

Geschrieben am: 17.03.2005 23:17:38
Hi,
das ist ein weites Feld. Das passiert meist nur in Mappen, in denen ewig am VBA-Projekt
rumgewerkelt wurde.
Intern werden ja alle möglichen Informationen protokolliert, so auch Variablendeklarationen, Controlnamen, VB-Componentennamen usw.. Wenn da z.B. irgendwann
mal eine Variable ausversehen Right war, weigert sich Excel standhaft, Right anzuerkennen.
Dann gehts z.B. nur noch mit VBA.Strings.Right(...), manchmal reicht auch VBA.Right(...).
Also beim Entwerfen immer schön aufpassen.
Wenn es ein ernsthaftes Projekt ist, sollte man schon ein wenig Aufwand betreiben.
Ich hatte mal für Kursteilnehmer einen kleinen Leitfaden für die Entwicklung erstellt.
Wenn ich ihn noch finde und du interessiert bist, maile ich ihn dir mal zu.
Gruß K.Rola
Bild

Betrifft: OT leitfaden
von: Reinhard
Geschrieben am: 17.03.2005 23:23:16
Hallo K.Rola,
wenn du mir ihn auch zuschicken könntest?
Ich stehe in der Profilliste, dankeschön für die Mühe.
Viele Grüße
Reinhard
Bild

Betrifft: AW: OT leitfaden
von: Heinz Ulm
Geschrieben am: 17.03.2005 23:30:05
Hallo K.Rola,
man kann nie genug über VBA wisse, ich hätte auch Interesse an dem Leitfaden.
Heinzulm"at"gmx.de "at"=@
Vielen Dank im voraus.
Heinz
Bild

Betrifft: AW: OFTOPIC OFFTOPIC
von: Boris
Geschrieben am: 18.03.2005 08:56:12
Hi K.Rola,
danke für die Erläuterung, und: Klar - schick rüber.
Grüße Boris
Bild

Betrifft: AW: OFTOPIC OFFTOPIC
von: K.Rola
Geschrieben am: 18.03.2005 11:25:38
Hi Boris,
habs jetzt nicht gefunden, muss mal am Montag in der Firma nachschauen.
Gruß K.Rola
Bild

Betrifft: AW: OFTOPIC OFFTOPIC
von: Nepumuk

Geschrieben am: 17.03.2005 23:20:08
Hallo Boris,
ich würde mal sagen, da sind zu viele Default's drin.
Korrekt müsste die Anweisung:
.Cells(lgRow, 4) = Right(cboArtGef, Len(cboArtGef) - InStr(cboArtGef, " "))
So ausehen:
.Cells(lgRow, 4).Value = Right$(cboArtGef.Text, Len(cboArtGef.Text) - InStr(cboArtGef.Text, " "))
Gruß
Nepumuk
Bild

Betrifft: AW: OFTOPIC OFFTOPIC
von: PeterW

Geschrieben am: 17.03.2005 23:36:40
Hallo Nepumuk,
ich bin nun mal schreibfaul. Was haben die Default für einen Sinn, wenn man sie doch angeben muss?
Würde das auch erklären, warum die Zeile auf dem Rechner, auf dem der Code geschrieben wurde (Excel 8, Win2000) klaglos akzeptiert wird und auf einem anderen Rechner (Excel 8, Win98SE) nicht?
Gruß
Peter
Bild

Betrifft: Es funktioniert jetzt einwandfrei...
von: Boris
Geschrieben am: 17.03.2005 23:17:21
Hi K.Rola,
...werde mich aber erst morgen mal etwas genauer damit beschäftigen - muss früh raus und werde daher jetzt Heja machen.
Gute Nacht!
Grüße Boris
Bild

Betrifft: AW: Werde ich jetzt noch hässlicher...
von: Frank P.

Geschrieben am: 18.03.2005 15:49:57
hallo zusammen,
steh unmittelbar vor einem kollaps, egal was ich ausprobiere!!!! Es muß doch irgendwie gehen, dass das Datenblatt von Spalte B und Zeile 3 bis sonstwo nach rechts und unten meine textdaten in numerísche umwandelt.
kann jemand mein Wochenende retten - das ist der letzte Punkt, der in meiner Tabelle nicht funktioniert
Gruß Frank
'For a = 2 To .Range("IV2").End(xlToLeft).Column

' If .Range(.Cells(3, a), .Cells(.Cells(65536, a).End(xlUp).Row, i)).Select Then
' Selection.Replace What:=".", Replacement:=""
'Selection.Replace What:=",", Replacement:="."
'Cells(Rows.Count, Columns.Count).Copy
'Selection.PasteSpecial Paste:=-4104, Operation:=2

'End If
'Next a
Bild

Betrifft: AW: Das geht auch nicht per VBA...
von: Frank P.

Geschrieben am: 18.03.2005 13:45:54
Hallo Excelgemeinde,
ein neuer tag hat begonnen und .....!!!???
Erstmal Dank für Euer Interesse an meiner Frage - sehe im Moment nicht so recht durch!! ;-)
Irgendwie funktioniert das hier nicht so recht.
Ich habe alles ausprobiert - bin ja erst gerade auf dem Weg mich vom Macrorecorder zu lösen.
Habe ein Datenblatt und möchte eigentlich nur (ich weiß "nur" bei excel kann was ganz anderes bedeuten) in einem Datenblatt die zellen ab B3 bis nach rechts ist dynamisch denkemal bis IV wäre möglich von Text in Zahl umwandeln. Was heißt denn eigentlich in dem Forum Oftopic -- wechsel von der eigentlichen Fragestellung??
Gruß Frank P.
Bild

Betrifft: AW: Das geht auch nicht per VBA...
von: K.Rola
Geschrieben am: 18.03.2005 15:47:41
Hallo,
eh wir hier lange Rätselraten, wo es klemmen könnte, lad mal ein Beispiel hoch.
Gruß K.Rola
Bild

Betrifft: AW: Das geht auch nicht per VBA...
von: Frank P.

Geschrieben am: 18.03.2005 16:35:55
hallo karola
habe mal meine Datei hochgeladen.
kurze Erklärung - ich habe eine Datei mit einem Arbeitsblatt welches nach meiner Automatisierung "text in Spalten" alle Werte nach Semikolon getrennt in die jeweiligen Felder schreibt (aber als text formatiert). Dieses Datenblatt wird in die Datei Frank_1.xls übernommen und soll von dort aus weiterverarbeitet werden. Ich möchte lediglich, dass alle Felder mit dem grünen Dreieck(Hinweis auf ein Textfeld) als Zahl formatiert werden, bevor der nächste Arbeitsschritt ein Transponieren nach Tabelle1 vorsieht. Habe das Makro mal zwischen drin angehalten.
https://www.herber.de/bbs/user/19843.xls

Gruß Frank
Bild

Betrifft: AW: Das geht auch nicht per VBA...
von: Boris
Geschrieben am: 18.03.2005 17:28:02
Hi Frank,
eine mögliche Lösung hatte ich dir doch schon geschrieben:
Bereich markieren, und dann folgende Codezeile laufen lassen:

Sub Test()
Selection.Value = Selection.Value
End Sub

Und schon ist alles Zahl...
Grüße Boris
Bild

Betrifft: AW: Das geht auch nicht per VBA...
von: Frank P.

Geschrieben am: 18.03.2005 18:27:56
Hallo Boris,
das funktioniert ja bestens - super, ich habe aber Probleme dies automatisch ablaufen zu lassen, da ich bis jetzt mich immer auf den macrorecorder verlassen habe.
Wenn ich den bereich manuell markiere gehe ich sofort auf das angezeigte Ausrufezeichen neben den Zellen und klicke Wert als Zahl darstellen und fertig.
Gruß Frank P.
Bild

Betrifft: AW: Das geht auch nicht per VBA...
von: Frank P.

Geschrieben am: 18.03.2005 18:55:29
Habs hinbekommen
mit
Columns("C:F").Select
'Selection.Replace What:=".", Replacement:=""
Selection.Replace What:=",", Replacement:="."
'Cells(Rows.Count, Columns.Count).Copy
'Selection.PasteSpecial Paste:=-4104, Operation:=2
sorry, bin gerade beim lernen mit VBA umzugehen
der thread kann endlich geschlossen werden
Vielen Dank an alle
Frank P.
 Bild
Excel-Beispiele zum Thema "Text in Zahlen"
Vorkommen von Zahlenreihen in Spalten Zeichenfolgen in Zahlen nach Textimport
Zahlenformatierung mit Punkt nach der 1. Ziffer Namen von TextBoxes hochzählen
Zählen formatierter Zellen Autofilter auch mit Ziffern von Zahlen
Addition der absoluten Zahlen Eingabe von positiven Zahlen erzwingen
Zufallszahlen generieren, die sich nicht wiederholen Summenformel unter Zahlenreihe eintragen
Bewerten Sie hier bitte das Excel-Portal