Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Werte in Zahlen umwandeln
12.05.2009 10:28:57
Jakob
Hallo,
ich habe Daten aus SAP in Excel importiert. Die Werte in der Spalte "AQ" werden als Text importiert. Deshalb habe ich diese Werte mit "1" multipliziert um die Spalte ins Zahlenformat umzuwandeln. Ich habe dafür den folgenden Code mit dem Macrorecorder aufgezeichnet.
Range("BB1").Select
ActiveCell.FormulaR1C1 = "1"
Selection.Copy
Range("AQ2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False

Die Spalte hat jetzt auch tatsächlich das Zahlenformat. Jetzt wollte ich das ganze automatisieren und habe deshalb oben genannten Code eingesetzt. Der Code läuft ohne Beanstandung durch. Leider ist am Ende die Spate im gleichen Zustand wie vor dem Code, spricht die Werte in den Spalten wurden nicht mit "1" multipliziert. Wie kann das sein? Beim Aufzeichnen hat es doch auch so geklappt.
Vielen Dank.
Gruß,
Jakob

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte in Zahlen umwandeln
12.05.2009 11:33:52
Tino
Hallo,
versuche es mal hiermit.
Sub Text_zu_Zahl()
Dim Bereich As Range

Set Bereich = IIf(IsEmpty(Range("AQ2")), Range("AQ2").End(xlDown), Range("AQ2"))
Set Bereich = Range(Bereich, Cells(Rows.Count, Bereich.Column))
    
Bereich.TextToColumns Destination:=Bereich(1, 1), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True

End Sub


Gruß Tino

Anzeige
AW: Werte in Zahlen umwandeln
13.05.2009 14:12:03
Jakob
Hallo Tino,
Dein Code funktioniert prima. Läßt sich der Range variabel halten? Ich müsste nämlich dieses Makro auf verschiedene Spalten in der Tabelle anwenden. Leider sind diese aber auch nicht zusammenhängend ("AK:AL", "AN:AQ", "AW:AW"). Eventuell das VBA für den Range den markierten Bereich verwendet.
Ich kenne mich leider mit VBA nur sehr, sehr wenig aus. Vielleicht könntest Du mir Deinen Code entsprechend ändern?
Vielen Dank.
Gruß,
Jakob
AW: Werte in Zahlen umwandeln
13.05.2009 15:25:53
Tino
Hallo,
versuche es mal hiermit.
Bereich Markieren und Makro laufen lassen.
Sub Text_zu_Zahl()
Dim Bereich As Range, BereichCol As Range

With Application
 .ScreenUpdating = False
 .EnableEvents = False

    For Each Bereich In Selection.Columns

        Set BereichCol = IIf(IsEmpty(Bereich.Cells(1)) Or Bereich.Cells(1).Value = "", Bereich.Cells(1).End(xlDown), Bereich.Cells(1))
        Set BereichCol = Range(BereichCol, Cells(Rows.Count, Bereich.Column))
     
         If BereichCol.Rows.Count > 1 Then
            BereichCol.TextToColumns Destination:=BereichCol(1), DataType:=xlDelimited, _
                    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
                    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
                    :=Array(1, 1), TrailingMinusNumbers:=True
        
         End If
    
    Next Bereich

 
 .ScreenUpdating = True
 .EnableEvents = True
End With
End Sub


Gruß Tino

Anzeige
AW: Werte in Zahlen umwandeln
13.05.2009 16:31:08
Jakob
Hallo Tino,
leider funktioniert jetzt das Makro nicht ganz richtig. Ich habe mal meine Beispieldatei hochgeladen. In einigen Zellen macht es aus einen Komma einen Punkt (Bsp. zelle O12 "2,5" in "2.5"). Woran kann das liegen?
https://www.herber.de/bbs/user/61793.xls
Gruß,
Jakob
AW: Werte in Zahlen umwandeln
13.05.2009 17:24:25
Tino
Hallo,
lade mal eine Datei hoch wo die Daten noch als Text vorliegen, damit ich damit mal testen kann.
Gruß Tino
Format auf Standard
13.05.2009 17:27:29
Tino
Hallo,
ach so, es liegt wohl am Format der Zellen,
einige sind auf Zahl mit zwei Nachkommastellen Formatiert.
Formatiere diese zuvor mal auf Standard, dann sollte es funzen.
Gruß Tino
Anzeige
AW: Format auf Standard
13.05.2009 17:38:15
Jakob
Hallo Tino,
obwohl ich die Spalten O:P vorher als Standard formatiert habe kommt es zum bereits beschriebenen Fehler. Weiß Du Rat?
Gruß,
Jakob
AW: Format auf Standard
13.05.2009 17:46:26
Tino
Hallo,
lade mal eine Datei hoch zum Spielen.
Gruß Tino
AW: Format auf Standard
13.05.2009 18:12:36
Tino
Hallo,
hauen wir mit der Keule drauf.
Du brauchst nichts Markieren, einfach die Tabelle aktivieren und dieses Makro laufen lassen.
Sub Formatieren()
Dim Bereich As Range
Dim MyAr
Dim A As Long, B As Long

Set Bereich = ActiveSheet.UsedRange
MyAr = Bereich

    For A = 1 To Ubound(MyAr)
     For B = 1 To Ubound(MyAr, 2)
      If IsNumeric(MyAr(A, B)) And MyAr(A, B) <> "" Then MyAr(A, B) = MyAr(A, B) * 1
     Next B
    Next A

Bereich = MyAr

End Sub


Gruß Tino

Anzeige
AW: Format auf Standard
18.05.2009 12:47:15
Jakob
Hallo Tino,
sorry, daß ich mich jetzt erst melde. Dein Code hat prima funktioniert.
Vielen Dank.
Gruß,
Jakob

419 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige