Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA für mehrere Spalten

VBA für mehrere Spalten
chris58
Hallo !
Ich habe diesen VBA Code hier gefunden. Er geht bestens, je doch benötige ich diesen Code auf mehreren Spalten...also Spalte 3 (C) bis Spalte 24 (Z).
Kann mir hier wer helfen, was ich eingeben muß um dies zu ermöglichen.
Danke
chris
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column  3 Then Exit Sub ' 1=Spalte A, 2=Spalte B usw.
With Target
If .Value = "" Then Exit Sub
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And InStr(.Value, ",") = 0 Then
Application.EnableEvents = False
.Value = Format(.Value, "00:00")
Application.EnableEvents = True
End If
End With
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA für mehrere Spalten
13.01.2012 21:41:36
JoWe
Hi Cris,
so vllt:
If Target.Column 24 Then Exit Sub '
Gruß
Jochen
AW: VBA für mehrere Spalten
13.01.2012 21:43:46
chris58
Hallo !
Habe es so probiert und funktioniert.
Danke Jochen
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, Range("C8:Z39"))
With Target
If .Value = "" Then Exit Sub
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And InStr(.Value, ",") = 0 Then
Application.EnableEvents = False
.Value = Format(.Value, "00:00")
Application.EnableEvents = True
End If
End With
End Sub

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA für mehrere Spalten in Excel


Schritt-für-Schritt-Anleitung

Um in Excel VBA mehrere Spalten auszuwählen und zu bearbeiten, kannst du den folgenden Code verwenden. Dieser Code formatiert die Werte in den Spalten C bis Z, wenn sie numerisch sind und nicht bereits im gewünschten Format vorliegen.

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem du den VBA-Code anwenden möchtest.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Wähle im Projektfenster dein Arbeitsblatt aus (z.B. "Sheet1").
  4. Füge den folgenden Code in das Codefenster ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    Set Target = Intersect(Target, Range("C8:Z39"))
    If Target Is Nothing Then Exit Sub
    With Target
        If .Value = "" Then Exit Sub
        If IsNumeric(.Value) And InStr(.Value, ":") = 0 And InStr(.Value, ",") = 0 Then
            Application.EnableEvents = False
            .Value = Format(.Value, "00:00")
            Application.EnableEvents = True
        End If
    End With
End Sub
  1. Schließe den VBA-Editor und teste den Code, indem du Werte in die Zellen C8 bis Z39 eingibst.

Häufige Fehler und Lösungen

  • Fehler: Der Code scheint nicht zu funktionieren.

    • Lösung: Stelle sicher, dass der Code im richtigen Arbeitsblattmodul eingefügt wurde. Wenn du den Code im Modul eingefügt hast, wird er nicht korrekt ausgeführt.
  • Fehler: Formatierung funktioniert nicht für alle Eingaben.

    • Lösung: Überprüfe, ob die Eingaben tatsächlich numerisch sind. Der Code formatiert nur numerische Werte.

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch die Datenüberprüfung in Excel verwenden, um sicherzustellen, dass nur bestimmte Formate in den Zellen eingegeben werden. Dies ist jedoch weniger flexibel als der Einsatz von VBA.

  1. Wähle die Zellen von C8 bis Z39 aus.
  2. Gehe zu Daten > Datenüberprüfung.
  3. Wähle die gewünschten Kriterien aus (z.B. ganze Zahl, Dezimalzahl).

Praktische Beispiele

Angenommen, du möchtest die Werte in Spalte D von 10:00 bis 23:00 formatieren. Du kannst den oben genannten VBA-Code verwenden, um sicherzustellen, dass jede Eingabe in diesem Bereich automatisch formatiert wird.


Tipps für Profis

  • Nutze die Application.EnableEvents = False-Anweisung, um zu verhindern, dass der Code beim Ändern von Zellen erneut ausgelöst wird. Dies verbessert die Leistung, insbesondere bei großen Datenmengen.
  • Experimentiere mit der Intersect-Methode, um spezifische Bereiche effektiver auszuwählen. Du kannst auch mehrere Bereiche kombinieren, um komplexere Anforderungen zu erfüllen.

FAQ: Häufige Fragen

1. Wie kann ich mehr Spalten auswählen?
Du kannst die Zeile Set Target = Intersect(Target, Range("C8:Z39")) anpassen, um weitere Spalten hinzuzufügen, z.B. Range("C8:Z100") für eine größere Auswahl.

2. Was passiert, wenn ich einen nicht-numerischen Wert eingebe?
Der Code ignoriert nicht-numerische Werte, sodass sie unverändert bleiben. Dies verhindert Fehler bei der Formatierung.

3. Funktioniert dieser Code in jeder Excel-Version?
Ja, dieser VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, einschließlich Excel 2016, 2019 und Microsoft 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige