Excel Zellenformatierung

Dieses Thema Excel Zellenformatierung im Forum "Microsoft Office Suite" wurde erstellt von MasterQ, 14. Mai 2008.

Thema: Excel Zellenformatierung Hallo, habe hier Excel 2000 Sp3 mit einer Tabelle, 10 Jahre alt, rund 1500 Zeilen und zig Spalten. Einige Spalten,...

  1. Hallo,

    habe hier Excel 2000 Sp3 mit einer Tabelle, 10 Jahre alt, rund 1500 Zeilen und zig Spalten. Einige Spalten, in denen Zahlenwerte stehen sind allerdings als Text formatiert.

    In diesen Spalten sind keine Berechnungen möglich, da die Zahlen ja keine Zahlen sind sondern als Text interpretiert werden. Mir ist es leider nicht gelungen, die Einstellungen so zu ändern, dass aus dem Text 25,8 die Zahl 25,8 wird. Auch das Umkopieren mit inhalte einfügen und werte bringt keinen Erfolg. Zwar ist dann die Einstellung des Formats z.B. Zahl und angezeigt wird auch 25,8 doch es ist definitiv nach wie vor ein Text, denn wenn ich die Anzahl der Nachkommastellen ändere, tut sich an der Anzeige nix.

    Wie kriege ich es hin, dass aus Text eine Zahl wird? Wichtig zu wissen ist auch, dass diese Tabelle auch echten Text in Spalten enthält und einige Zellen farblich markiert sind. Also einfach mal als csv abspeichern und wieder einlesen ist nicht, da sonst genau diese wichtigen Formatierungen verloren gehen.

    Hat jemand eine Idee?

    Gruß

    MQ
     
  2. Hallo MasterQ,

    folgender Makro könnte dir behilflich sein.

    Er arbeitet auf der aktuellen Arbeitsmappe auf der selektioerten Spalte.
    Unter cFORMAT_ZAHL müßtest du noch das gewünschte Zahlenformat angeben.
    (siehe A N PN A S S E N)

    Gruß Matjes :)
    Code:
    Option Explicit
    
    Sub Spalte_StringinZahlWandeln()
     
    -><<< A N P A S S E N >>>
    ->Const cFORMAT_ZAHL = 0.00->mit 2 Nachkommastellen
     Const cFORMAT_ZAHL = 0.0->Mit 1 Nachkopmmastellen
    ->Const cFORMAT_ZAHL = 0 ->ohne Nachkopmmastellen
    -><<< A N P A S S E N  E N D E >>>
    
     Dim ws As Worksheet
     Dim lCol As Long, lRows As Long, x As Long
     Dim sTxt As String, dTxt As Double
    
    ->pruefen, ob nur eine Spalte selektiert ist
     If Selection.Columns.Count > 1 Then
      MsgBox  Bitte nur eine Spalte selektieren
      Exit Sub
     End If
    ->Spalte bestimmen
     lCol = Selection.Column
     
     Set ws = ActiveSheet
     
    ->letzte Zeile für Spalte bestimmen
     lRows = ws.Cells(ws.Rows.Count, lCol).End(xlUp).Row
     
    ->über alle Zeilen der Spalte
     For x = 1 To lRows
      If ws.Cells(x, lCol).NumberFormat = @ Then
       sTxt = ws.Cells(x, lCol).Value
       On Error Resume Next
       dTxt = sTxt
       If Err.Number <> 0 Then
        Err.Clear
        MsgBox Zeile  & x & sTxt &  kann nicht in eine Zahl umgewandelt werden.
       Else
        ws.Cells(x, lCol).Value = 
        ws.Cells(x, lCol).NumberFormat = cFORMAT_ZAHL
        ws.Cells(x, lCol).Value = dTxt
       End If
       On Error GoTo 0
      End If
     Next
    AUFAEUMEN:
     Set ws = Nothing
    End Sub
    
     
  3. Hallo Matjes,

    vielen Dank für das Makro.

    Leider funktioniert es nicht so, wie man es vermuten würde. Das Problem liegt aber nicht am Makro. Ich habe das Makro auf die Datei losgelassen und habe schon jubiliert, denn es zeigte Erfolg. Leider musste ich kurz darauf feststellen, dass der Erfolg nicht durchgängig war. In einer Spalte gibt es Zellen, bei denen geht es und Zellen bei denen geht es nicht.

    Wenn das Makro funzt, dann kann man auch in den Zelleneigenschaften, das Format ändern und dann wird automatisch aus Text eine Zahl, da brauchts kein Makro. In den Zellen wo sich durch die Zelleneigenschaften nix tut, hilft das Makro auch nicht.

    Ich kann keine Unterschiede in den Einstellungen zwischen den Zellen feststellen. Bis Zeile 869 gehen alle Zellen, danach gehen einige und einige nicht. Später kommt dann ein Bereich, in dem alle Zellen nicht mehr umzuwandeln sind.

    Kann es sein, dass die Datei allgemein einen Schuß hat? Wenn ja, wie kriege ich die Inhalte und farblichen Formatierungen ein eine neue Datei kopiert ohne dass evtl das Kaputte mit übernommen wird. Die Daten in der Tabelle sind höchst wichtig! Sowohl die Daten als auch die farblichen Markierungen dürfen nicht verloren gehen. Eine händische Nachbearbeitung wäre sehr aufwendig und fehleranfällig! :'(

    Gruß

    MQ
     
  4. Hallo MasterQ,

    kannst du mir einen Auszug aus der Datei an mein mailaddy schicken ?
    (Ich setze auch ne dicke Sonnebrille auf 8) )
    Dann schau ich heute abend mal, woran es liegt.

    Gruß Matjes :)
     
  5. Mail ging gerade raus!

    Gruß und Danke

    MQ
     
  6. xyz
    xyz
    Hallo MasterQ,

    mit dieser Makro-Variante sollte es klappen.

    Gruß Matjes :)
    Code:
    Option Explicit
    
    Sub Spalte_StringinZahlWandeln()
     
    -><<< A N P A S S E N >>>
    ->Const cFORMAT_ZAHL = 0.00->mit 2 Nachkommastellen
     Const cFORMAT_ZAHL = 0.0->Mit 1 Nachkopmmastellen
    ->Const cFORMAT_ZAHL = 0 ->ohne Nachkopmmastellen
    -><<< A N P A S S E N  E N D E >>>
    
     Dim ws As Worksheet
     Dim lCol As Long, lRows As Long, x As Long
     Dim sTxt As String, dTxt As Double
    
    ->pruefen, ob nur eine Spalte selektiert ist
     If Selection.Columns.Count > 1 Then
      MsgBox  Bitte nur eine Spalte selektieren
      Exit Sub
     End If
    ->Spalte bestimmen
     lCol = Selection.Column
     
     Set ws = ActiveSheet
     
    ->letzte Zeile für Spalte bestimmen
     lRows = ws.Cells(ws.Rows.Count, lCol).End(xlUp).Row
     
    ->über alle Zeilen der Spalte
     For x = 1 To lRows
       sTxt = ws.Cells(x, lCol).Value
       If sTxt =  Then
        ws.Cells(x, lCol).NumberFormat = cFORMAT_ZAHL
       Else
        On Error Resume Next
        dTxt = sTxt
        If Err.Number <> 0 Then
         Err.Clear
         MsgBox Zeile  & x & : & vbLf & sTxt & vbLf &  kann nicht in eine Zahl umgewandelt werden.
        Else
         ws.Cells(x, lCol).Value = 
         ws.Cells(x, lCol).NumberFormat = cFORMAT_ZAHL
         ws.Cells(x, lCol).Value = dTxt
        End If
        On Error GoTo 0
       End If
     Next
     
    AUFAEUMEN:
     Set ws = Nothing
     
    End Sub
     
  7. Hallo MasterQ,

    mit folgender Variante sollte es klappen.

    Gruß Matjes :)
    Code:
    Option Explicit
    
    Sub Spalte_StringinZahlWandeln()
     
    -><<< A N P A S S E N >>>
    ->Const cFORMAT_ZAHL = 0.00->mit 2 Nachkommastellen
     Const cFORMAT_ZAHL = 0.0->Mit 1 Nachkopmmastellen
    ->Const cFORMAT_ZAHL = 0 ->ohne Nachkopmmastellen
    -><<< A N P A S S E N  E N D E >>>
    
     Dim ws As Worksheet
     Dim lCol As Long, lRows As Long, x As Long
     Dim sTxt As String, dTxt As Double
    
    ->pruefen, ob nur eine Spalte selektiert ist
     If Selection.Columns.Count > 1 Then
      MsgBox  Bitte nur eine Spalte selektieren
      Exit Sub
     End If
    ->Spalte bestimmen
     lCol = Selection.Column
     
     Set ws = ActiveSheet
     
    ->letzte Zeile für Spalte bestimmen
     lRows = ws.Cells(ws.Rows.Count, lCol).End(xlUp).Row
     
    ->über alle Zeilen der Spalte
     For x = 1 To lRows
       sTxt = ws.Cells(x, lCol).Value
       If sTxt =  Then
        ws.Cells(x, lCol).NumberFormat = cFORMAT_ZAHL
       Else
        On Error Resume Next
        dTxt = sTxt
        If Err.Number <> 0 Then
         Err.Clear
         MsgBox Zeile  & x & : & vbLf & sTxt & vbLf &  kann nicht in eine Zahl umgewandelt werden.
        Else
         ws.Cells(x, lCol).Value = 
         ws.Cells(x, lCol).NumberFormat = cFORMAT_ZAHL
         ws.Cells(x, lCol).Value = dTxt
        End If
        On Error GoTo 0
       End If
     Next
     
    AUFAEUMEN:
     Set ws = Nothing
     
    End Sub
     
Die Seite wird geladen...

Excel Zellenformatierung - Ähnliche Themen

Forum Datum
Excel | Zellenformatierung Microsoft Office Suite 10. März 2008
Excel-Feature gesucht Microsoft Office Suite 11. Okt. 2016
Excel Tabelle Werte zu ordnen Microsoft Office Suite 23. Sep. 2016
Excel: Bereiche auf 'leer' Überprüfen Microsoft Office Suite 15. Sep. 2016
Import Datensatz inkl = und - Zeichen in Excel/Libre CALC Software: Empfehlungen, Gesuche & Problemlösungen 20. Mai 2016