Zellen aktivieren, Format übernehmen

Hallo zusammen,

hab (mal wieder) ein Problem bei einem Makro, und bevor ich mir wieder was wildes zusammenbastel…

Aus SAP kommen alle Daten als Text. Nun braucht mein Makro aber eine Zahl für einen sverweis.

Hab jetzt gehofft ich kann das Format einfach ändern:

Range(„B:B“).Select
Selection.NumberFormat = „General“

Nun wird das Format aber erst übernommen, wenn die Zelle einmal aktiviert ist (also mit F2 in die Zelle und dann Enter, dann klappts).

Hat hier eine eine einfache Lösung?

P.S. Habs mal mit einem aufgezeichneten Makro „Text in Spalten“ gemacht, da funktionierts gleich, dass in eine Zahl umgewandelt wird. Aber da ich mir die ganzen Parameter und deren Bedeutung schlecht merken kann, such ich eine Lösung, die meinen Ansatz vervollständigt (den behalt ich dann hoffentlich :smile: )

Danke schonmal!

Hallo Brille,

Aus SAP kommen alle Daten als Text. Nun braucht mein Makro
aber eine Zahl für einen sverweis.

dann schreib doch in VLookup() nicht A1 sondern Cint(A1)

Range(„B:B“).Select
Selection.NumberFormat = „General“
Nun wird das Format aber erst übernommen, wenn die Zelle
einmal aktiviert ist (also mit F2 in die Zelle und dann Enter,
dann klappts).

Hat hier eine eine einfache Lösung?

Schreib mal irgendwo eine 1 in eine Zelle, kopiere die mit Stzrg+c, dann markiere B, Bearbeiten—Inhalte Einfügen–Multiplizieren…

P.S. Habs mal mit einem aufgezeichneten Makro „Text in
Spalten“ gemacht, da funktionierts gleich, dass in eine Zahl
umgewandelt wird. Aber da ich mir die ganzen Parameter und
deren Bedeutung schlecht merken kann, such ich eine Lösung,
die meinen Ansatz vervollständigt (den behalt ich dann
hoffentlich :smile: )

Schreib dir doch den „Text in Spalten“-Code in die Personl.xls.

Ich merk mir das nicht bei TextinSpalten oder Sort, das zeichne ich frisch auf und passe es an.

Gruß
Reinhard

dann schreib doch in VLookup() nicht A1 sondern Cint(A1)

Schreib mal irgendwo eine 1 in eine Zelle, kopiere die mit
Stzrg+c, dann markiere B, Bearbeiten—Inhalte
Einfügen–Multiplizieren…

Hallo Reinhard,

habs hier noch im Archiv gefunden (falsch gesucht, Text zu Zahl hätt ja gereicht, aber hab mich zusehr an diesem Zelle aktivieren aufgehängt :stuck_out_tongue:):

With Range(„B1:B20“)
.NumberFormat = „General“
.Value = .Value
End With

Das mit dem mal eins wollte ich vermeiden, weil das bei meinen VBA-Kenntnissen in irgendwelche wilden Do Loops mit Hilfszeilen etc ausartet!

Und das mit dem Cint muss ich nochmal ausprobieren.

Danke erstmal!

hallo Brille,

ich weiß so einigermaßen in Excel genau was geschieht wenn ich in Zellen manuell Werte eingebe und was geschieht wenn ich die Zellen vorher so und nach Zelleingabe anders formatiere.

Mit/bei importierten Tabellen (z.B. SAP) reagiert m.E. Excel aber seltsamer.

Da ich so Importe nicht hae ist es für mich schwierig dadran zu lernen wie damit umzugehen ist.

Was hast du gegen die TextinSpalten-Lösung per Code?

Die Codierung von der „mal 1“ Methode krieg ich auch hin aber ich würde textinSpalten nehmen. F2 mit Sendkeys in alle Zellen schicken wär das allerletzte Mittel der Wahl :frowning:

Gib mir mal eine Übungstabelle bzw. lad die mal hoch, also eine Tabelle wo frisch aus SAP importierte Daten stehen.

Gruß
Reinhard

Was hast du gegen die TextinSpalten-Lösung per Code?

Weil ichs nicht aus dem Kopf schreiben könnte. Mit With mach ich öfter was und da kann ich mir die eine Codezeile besser merken und einsetzen ohne lange zu suchen oder irgendwas aufzuzeichnen.

Hier mal ein kleiner SAP-Export

http://www.file-upload.net/download-3748113/test.xls…

MfG

Grüezi Brille

Aus SAP kommen alle Daten als Text.

Ja, (auch) dafür ist SAP bekannt *seufz*

Nun braucht mein Makro
aber eine Zahl für einen sverweis.

Hab jetzt gehofft ich kann das Format einfach ändern:

Range(„B:B“).Select
Selection.NumberFormat = „General“

Nun wird das Format aber erst übernommen, wenn die Zelle
einmal aktiviert ist (also mit F2 in die Zelle und dann Enter,
dann klappts).

Hat hier eine eine einfache Lösung?

P.S. Habs mal mit einem aufgezeichneten Makro „Text in
Spalten“ gemacht, da funktionierts gleich, dass in eine Zahl
umgewandelt wird. Aber da ich mir die ganzen Parameter und
deren Bedeutung schlecht merken kann, such ich eine Lösung,
die meinen Ansatz vervollständigt (den behalt ich dann

Dann verwende diese Zeilen hier, das hilft per VBA zuverlässig:

With Range("B:B")
 .NumberFormat = "General"
 .TextToColumns
End With

Was hast du gegen die TextinSpalten-Lösung per Code?

Weil ichs nicht aus dem Kopf schreiben könnte. Mit With mach
ich öfter was und da kann ich mir die eine Codezeile besser
merken und einsetzen ohne lange zu suchen oder irgendwas
aufzuzeichnen.
http://www.file-upload.net/download-3748113/test.xls…

Hallo Christoph,

so vielleicht:

Sub Zahl()
Selection.NumberFormat = „0“
Selection.TextToColumns Destination:=Selection
End Sub

Gruß
Reinhard

Aus SAP kommen alle Daten als Text. Nun braucht mein Makro
aber eine Zahl für einen sverweis.

Hallo Christoph,

mit den Zahlen als Text kannst du in Excel rechnen:
=A2*2
=A2+A3

auch in Vba
Sub tt()
Dim A
A = Range(„A2“).Value * 2
MsgBox A
End Sub

Und für Sverweis:

Sub verw()
Dim A, wks2
Set wks2 = Worksheets("Tabelle2")
With Worksheets("Tabelle1")
 A = Application.VLookup(**CLng(**.Range("A3").Value**)**, wks2.Range("A1:B6"), 2, 0)
 MsgBox A
End With
End Sub

Gruß
Reinhard

Grüezi Reinhard

so vielleicht:

Sub Zahl()
Selection.NumberFormat = „0“
Selection.TextToColumns Destination:=Selection
End Sub

…abschreiben gilt nicht… :wink:

/t/zellen-aktivieren-format-uebernehmen/6612826/6

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Sub Zahl()
Selection.NumberFormat = „0“
Selection.TextToColumns Destination:=Selection
End Sub

…abschreiben gilt nicht… :wink:

/t/zellen-aktivieren-format-uebernehmen/6612826/6

Grüezie Thomas,

Mist, da hab ich wohl zuwenig abgeändert und es ist aufgeflogen :frowning:(
Naja, mußt ja so kommen, wurd wohl zu nachlässig beim Fälschen, aber wenn man das pausenlos macht wird man halt unaufmerksam *grins*

Gruß
Reinhard