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

Forumthread: For each Zelle in Selection ... ?

For each Zelle in Selection ... ?
05.03.2007 10:46:56
Ralf
Hallo Excel - Experten,
ich habe hier einen Code, der das Computerdatum umwandelt in ein
normales Datum. Klappt auch super gut, nuuuuuuur, das Excel hier immer von
T 11 bis T 20000 geht, stört mich sehr. Ich würde gerne zuerst die entsprechenden
Zellen markieren ( also irgendwie mit: for each Zelle in Selection... ?) und dann dies
Makro laufen lassen. Hat jemand von Euch eine Idee, wie ich dies einbauen kann ?
Private Sub CommandButton1_Click()
' Datumumwandeln Makro
' Makro am 14.05.2002 von Hollmann aufgezeichnet
Dim Z As Range
Range("T11:T20000").Select
For Each Z In Selection
If Len(Z) = 7 And IsNumeric(Z) Then Z = CDate(Mid(Z, 6, 2) & "." & Mid(Z, 4, 2) & "." & Mid(Z, 2, 2))
Next Z
End Sub

Bin für jeden Tipp dankbar :-)
viele Grüße
Ralf
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: For each Zelle in Selection ... ?
05.03.2007 11:32:47
Heiko
Hallo Ralf,
lösche einfach diese Zeile:
Range("T11:T20000").Select
Dann wird nur der Bereich geändert denn du vorher markiert (selektiert) hasst.
Gruß Heiko
PS: Rückmeldung wäre nett !
AW: For each Zelle in Selection ... ?
05.03.2007 11:57:00
Ralf
Hallo Heiko,
es klappt :-) Super Idee
Vielen Dank für Deinen Tipp. Erspart mir einiges an Arbeit.
Viele Grüße
Ralf
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

For Each Zelle in Selection: VBA-Anpassungen für Excel


Schritt-für-Schritt-Anleitung

Um den VBA-Code so anzupassen, dass er nur auf die in der Auswahl markierten Zellen angewendet wird, folge diesen Schritten:

  1. Öffne das Excel-Dokument und gehe zu Entwicklertools.

  2. Klicke auf Visual Basic, um den VBA-Editor zu öffnen.

  3. Füge den folgenden Code in das Modul ein, das du verwenden möchtest:

    Private Sub CommandButton1_Click()
    ' Datumumwandeln Makro
    Dim Z As Range
    For Each Z In Selection
       If Len(Z) = 7 And IsNumeric(Z) Then
           Z = CDate(Mid(Z, 6, 2) & "." & Mid(Z, 4, 2) & "." & Mid(Z, 2, 2))
       End If
    Next Z
    End Sub
  4. Stelle sicher, dass du die Zeile Range("T11:T20000").Select entfernst, damit das Makro nur auf die aktuell ausgewählten Zellen angewendet wird.

  5. Schließe den VBA-Editor und teste das Makro, indem du zuerst die gewünschten Zellen markierst und dann den Button klickst.


Häufige Fehler und Lösungen

  • Fehler: "Objektvariable oder With-Blockvariable nicht gesetzt"

    • Lösung: Stelle sicher, dass du zuerst Zellen in der Auswahl markierst, bevor du das Makro ausführst.
  • Fehler: "Typen unverträglich"

    • Lösung: Überprüfe, ob die Zellen in der Auswahl numerische Werte enthalten, die umgewandelt werden können.

Alternative Methoden

Falls du eine andere Methode zur Bearbeitung von Zellen in der Auswahl verwenden möchtest, kannst du auch die Funktion Selection.Value nutzen:

Private Sub CommandButton1_Click()
   Dim Z As Range
   For Each Z In Selection
       If IsNumeric(Z.Value) Then
           Z.Value = CDate(Mid(Z.Value, 6, 2) & "." & Mid(Z.Value, 4, 2) & "." & Mid(Z.Value, 2, 2))
       End If
   Next Z
End Sub

Diese Methode verwendet direkt den Wert der Zelle, anstatt den Zellinhalt zu ändern.


Praktische Beispiele

  1. Beispiel 1: Auswahl von Zellen in der Spalte A und Umwandlung von Datumsformaten.

    • Markiere die Zellen in der Spalte A (z.B. A1:A10) und führe das Makro aus.
  2. Beispiel 2: Umwandlung von mehreren Bereichen.

    • Du kannst mehrere Bereiche auswählen, indem du die Strg-Taste gedrückt hältst und die gewünschten Zellen auswählst, bevor du das Makro ausführst.

Tipps für Profis

  • Nutze die Application.ScreenUpdating-Eigenschaft, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren. Das beschleunigt die Ausführung:

    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True
  • Experimentiere mit Fehlerbehandlungsroutinen, um sicherzustellen, dass das Makro auch bei unerwarteten Eingaben stabil läuft:

    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0

FAQ: Häufige Fragen

1. Wie kann ich den Bereich der Zellen anpassen?
Du kannst den Bereich einfach durch die Auswahl der Zellen ändern, bevor du das Makro ausführst. Das Makro arbeitet nur mit der Auswahl.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der VBA-Code ist mit den meisten modernen Excel-Versionen kompatibel, solange die Entwicklertools aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige