Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: "ActiveRange" - VBA

"ActiveRange" - VBA
Franz
Hallo Fachleute,
mit ActiveCell.Address lässt sich die aktuell selektierte Zelle herausfinden. Geht das auch, wenn mehrere Zellen selektiert wurden? Z. B. Anfang und Ende von "O5:O11" bestimmen? Ich meine nicht UsedRange!
Grüße
Franz
Anzeige
Meinst du vielleicht "Selection"? ;-) oT
15.12.2009 14:23:50
Matthias5
AW: Meinst du vielleicht "Selection"? ;-) oT
15.12.2009 14:25:27
Franz
ähm - ja - glaub schon.....
Und wie kann ich die erste und letzte Zelle von "Selection" bestimmen?
Grüße
Franz
AW: Meinst du vielleicht "Selection"? ;-) oT
15.12.2009 14:30:21
Original
Hi,
MsgBox Selection.Cells(1).Address
MsgBox Selection.Cells(Selection.Count).Address
mfg Kurt
Anzeige
AW: Meinst du vielleicht "Selection"? ;-) oT
15.12.2009 14:34:35
Franz
Hallo Kurt,
danke für die "LetzteZelleDesBereiches" - hilft mir weiter.
Danke und Grüße
Franz
Wozu noch die Zellen?
15.12.2009 14:31:16
Matthias5
Hallo Franz,
wozu brauchst du denn noch die erste und die letzte Zelle? Selection ist ja schon ein Range.
Die Adresse erhältst du mit Selection.Address.
Gruß,
Matthias
AW: Wozu noch die Zellen?
15.12.2009 14:40:40
Franz
Hallo Matthias,
in dem Bereich, der wahlweise ausgewählt wird, stehen Dateinamen. Und die sollen in ein Array eingelesen werden. Vielleicht geht's ja auch einfacher, aber die Möglichkeit, die ich kann ist diese mittels einer Schleife einzulesen von der ersten bis zur letzten Zelle. Und dazu nutze ich Anfangs- und Endzelle.
Grüße
Franz
Anzeige
Schleife in Selection
15.12.2009 14:44:32
Matthias5
Hallo Franz,
so kannst du alle Zellen in der Selektion durchlaufen:
Sub Schleife_in_Selection()
Dim c As Range
For Each c In Selection
Next c
End Sub
Gruß,
Matthias
AW: Schleife in Selection
15.12.2009 14:54:58
Franz
Hallo Matthias,
ah gut. Und dann für jede einzelne Zelle:
strDatei = c

Toll, vielen Dank, funktioniert.
Grüße
Franz
Anzeige
AW: "ActiveRange" - VBA
15.12.2009 14:30:22
Uduuh
Hallo,
meinst du Selection.Address ?
Gruß aus’m Pott
Udo

AW: "ActiveRange" - VBA
15.12.2009 14:32:27
Franz
Hallo Udo,
ja, vielen Dank, einfach eigentlich, hab's mal wieder viel komplizierter versucht .... :-(((
Danke und Grüße
Franz
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Umgang mit Active Range in VBA


Schritt-für-Schritt-Anleitung

Um mit der aktiven Auswahl in VBA zu arbeiten, kannst du die Selection-Objekte verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Zellen auswählen: Markiere die Zellen in deinem Excel-Blatt, mit denen du arbeiten möchtest.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Neues Modul erstellen: Klicke auf Einfügen und wähle Modul.

  4. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub Schleife_in_Selection()
        Dim c As Range
        For Each c In Selection
            ' Hier kannst du deine Logik für jede Zelle einfügen
            MsgBox c.Address
        Next c
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus, um die Adressen der selektierten Zellen anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: "Objektvariable nicht festgelegt"
    Lösung: Stelle sicher, dass du tatsächlich Zellen ausgewählt hast. Wenn Selection leer ist, wird dieser Fehler angezeigt.

  • Fehler: "Typ nicht definiert"
    Lösung: Überprüfe, ob du das Range-Objekt korrekt definiert hast. Der Code sollte in einem Modul und nicht in einem Blattmodul stehen.


Alternative Methoden

Wenn du eine Alternative zum Arbeiten mit der aktiven Auswahl benötigst, kannst du die ActiveCell-Eigenschaft verwenden. Hier ein Beispiel, wie du die Adresse der aktiven Zelle ermitteln kannst:

Sub ActiveCellAddress()
    MsgBox ActiveCell.Address
End Sub

Außerdem kannst du die Funktion Range verwenden, um einen bestimmten Bereich direkt anzusprechen:

Sub RangeAddress()
    MsgBox Range("O5:O11").Address
End Sub

Praktische Beispiele

Hier sind einige praktische Anwendungen für die Arbeit mit dem active range in VBA:

  1. Erste und letzte Zelle der Auswahl anzeigen:

    Sub ErsteUndLetzteZelle()
        MsgBox "Erste Zelle: " & Selection.Cells(1).Address
        MsgBox "Letzte Zelle: " & Selection.Cells(Selection.Count).Address
    End Sub
  2. Zellen in ein Array einlesen:

    Sub ArrayEinlesen()
        Dim arr() As Variant
        Dim i As Integer
        ReDim arr(1 To Selection.Count)
    
        For i = 1 To Selection.Count
            arr(i) = Selection.Cells(i).Value
        Next i
    End Sub

Tipps für Profis

  • Verwende With Selection um den Code lesbarer und effizienter zu gestalten:

    Sub MitSelection()
        With Selection
            MsgBox .Cells(1).Address
            MsgBox .Cells(.Count).Address
        End With
    End Sub
  • Nutze DoEvents, wenn du mit großen Datenmengen arbeitest, um Excel nicht einfrieren zu lassen.


FAQ: Häufige Fragen

1. Wie kann ich die aktive Auswahl in einer Schleife durchlaufen?
Du kannst die For Each-Schleife verwenden, um jede Zelle in der aktiven Auswahl zu bearbeiten:

For Each c In Selection
    ' Deine Logik hier
Next c

2. Was ist der Unterschied zwischen ActiveCell und Selection?
ActiveCell bezieht sich immer auf eine einzelne Zelle, während Selection mehrere Zellen umfassen kann.

3. Wie erhalte ich die Adresse der aktiven Auswahl?
Verwende Selection.Address, um die Adresse des aktuell selektierten Bereichs zu erhalten.

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