171 Aufrufe
Gefragt in Tabellenkalkulation von jonesm Mitglied (191 Punkte)
Bearbeitet von jonesm

Hallo zusammen, 

ich erhalte regelmäßig eine Datei, in der ich per Makro einige Routineformatierungen durchführen möchte. Hierzu habe ich folgendes Makro aufgezeichnet/ erstellt:

Sub SpaltenFormateSetzen()

If Range("a1") = "z" Then
    Columns("a:a").NumberFormat = "#,##0"
End If
If Range("b1") = "z" Then
    Columns("b:b").NumberFormat = "#,##0"
End If
If Range("c1") = "z" Then
    Columns("c:c").NumberFormat = "#,##0"
End If
...

If Range("m1") = "z" Then
    Columns("m:m").NumberFormat = "#,##0"
End If

If Range("a1") = "d" Then
    Columns("a:a").NumberFormat = "dd/mm/yy;@"
End If
...

If Range("m1") = "d" Then
    Columns("m:m").NumberFormat = "dd/mm/yy;@"
End If

End Sub

Das sind nur Beispiele, es können noch mehr Formate auftreten.

Wie kann ich das einfacher als Schleife erstellen? Wenn ich das System kenne, kann ich es mir anpassen... wink

Viele Grüße

Jones

2 Antworten

+1 Punkt
Beantwortet von m-o Profi (22.8k Punkte)
ausgewählt von halfstone
 
Beste Antwort

Hallo Jones,

das kannst du z.B. so lösen:

Sub spaltenformatieren()
Dim lngSpalte As Long

'Spalte A = 1, Spalte B = 2 usw.
'Spalte A bis M prüfen
For lngSpalte = 1 To 13
  Select Case Cells(1, lngSpalte).Value
    Case Is = "z"
      Columns(lngSpalte).NumberFormat = "#,##0"
    Case Is = "d"
      Columns(lngSpalte).NumberFormat = "dd/mm/yy;@"
   End Select
Next lngSpalte

End Sub

Gruß

M.O.

0 Punkte
Beantwortet von jonesm Mitglied (191 Punkte)
Danke!

Funktioniert...
...