Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Selektierte Zeilen Und Spalten ermitteln

Forumthread: Selektierte Zeilen Und Spalten ermitteln

Selektierte Zeilen Und Spalten ermitteln
11.08.2002 22:37:33
Nepumuk
Guten Abend zusammen
ich habe, um in einer Tabelle mit ca. 100 Spalten und X-tausend Zeilen, einen Code entwickelt der es mir erlaubt in einem beliebigen Bereich eine Auswahl zu treffen und diesen dann Zelle für Zelle zu abzuarbeiten. Meine Frage: Gibt es eine weniger unübersichtliche Methode als meine, um die Startzelle und die Endezelle einer Selektion zu ermitteln.
Mein Code:

Vielen Dank für eure Bemühungen.
Gruß
Nepumuk


Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Selektierte Zeilen Und Spalten ermitteln
11.08.2002 23:04:42
L.Vira
Abgesehen davon, dass ich nicht genau verstehe, was du eigentlich
damit erreichen willst, sind die Datentypen schon mal falsch.
Beispiel:
Dim spalte1 As String
spalte1 = Selection.Row 'Row sollte Long sein

Dim zeile As Single 'Zeile sollte Long sein
Kannst du weglassen
CSng(zeile1) To CSng(zeile2)
zeile1 to zeile2 'als Long deklariert

Anzeige
Re: Selektierte Zeilen Und Spalten ermitteln
11.08.2002 23:35:32
L.Vira
So sollte es gehen:

Option Explicit
Sub Zeilen_und_Spalten()
Dim spalte1 As Integer, spalte2 As Integer, zeile1 As Long, zeile2 As Long
Dim zeile As Long, spalte As Integer

If Selection.Count > 1 Then
If Selection.Areas.Count > 1 Then
MsgBox "Mehrbereichsauswahl ist nicht gestattet", 48, "Hinweis"
Else
spalte1 = Selection.Column
spalte2 = spalte1 + Selection.Columns.Count - 1
zeile1 = Selection.Row
zeile2 = zeile1 + Selection.Rows.Count - 1
End If
Else
spalte1 = Selection.Column
spalte2 = spalte1
zeile1 = Selection.Row
zeile2 = zeile1
End If

For spalte = spalte1 To spalte2
For zeile = zeile1 To zeile2
'hier kommt mein Bearbeitungscode
Next zeile
Next spalte

'Warum geht eigentlich nicht eine For each Next Schleife?
'Da könnte alles, bis auf die Abfrage Mehrfachselektion
'entfallen.

End Sub


Anzeige
Re: Selektierte Zeilen Und Spalten ermitteln
12.08.2002 00:14:29
Sigi E.
oder kürzer ...

Zeile_erste = Selection.Cells(1).Row
Spalte_erste = Selection.Cells(1).Column
Zeile_letzte = Selection.Cells(Selection.Cells.Count).Row
Spalte_letzte = Selection.Cells(Selection.Cells.Count).Column

Gruß
Sigi

Re: Selektierte Zeilen Und Spalten ermitteln
12.08.2002 00:15:33
Nepumuk
Die Daten kommen automatisch von verschiedenen Sensoren aus einem Kunststoffspritzwerkzeug plus Maschinendaten plus Granulatdaten. Wenn eine 3DLasermessapparatur bei Werkstücken größere Abweichungen ermittelt sollen diese Daten untersucht werden. Daher die Bereichsauswahl. Den Datentyp String habe ich benutzt um aus der R1C1-Adresse die Zeilen und Spalten zu ermitteln. Habe früher in Assembler und RPG2 programmiert únd versuche mir seit ca. 2 Jahren VBA autodidaktisch beizubringen. Desswegen mein noch etwas eingeschränkter Befehlsschatz.
Nochmals vielen Dank
Gruß
Nepumuk

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Selektierte Zeilen und Spalten ermitteln in Excel VBA


Schritt-für-Schritt-Anleitung

Um in Excel VBA die selektierten Zeilen und Spalten zu ermitteln, kannst Du den folgenden Code verwenden. Dieser Code überprüft, ob mehrere Bereiche ausgewählt sind, und gibt die erste und letzte Zeile sowie die erste und letzte Spalte zurück.

Option Explicit
Sub Zeilen_und_Spalten()
    Dim spalte1 As Integer, spalte2 As Integer
    Dim zeile1 As Long, zeile2 As Long
    Dim zeile As Long, spalte As Integer

    If Selection.Count > 1 Then
        If Selection.Areas.Count > 1 Then
            MsgBox "Mehrbereichsauswahl ist nicht gestattet", 48, "Hinweis"
        Else
            spalte1 = Selection.Column
            spalte2 = spalte1 + Selection.Columns.Count - 1
            zeile1 = Selection.Row
            zeile2 = zeile1 + Selection.Rows.Count - 1
        End If
    Else
        spalte1 = Selection.Column
        spalte2 = spalte1
        zeile1 = Selection.Row
        zeile2 = zeile1
    End If

    For spalte = spalte1 To spalte2
        For zeile = zeile1 To zeile2
            ' Hier kannst Du Deinen Bearbeitungscode einfügen
        Next zeile
    Next spalte
End Sub

Dieser Code nutzt die Selection-Eigenschaft, um die markierten Zellen auszulesen und die erste und letzte Zeile sowie Spalte zu ermitteln.


Häufige Fehler und Lösungen

  1. Falsche Datentypen

    • Wenn Du die Variablen für Zeilen und Spalten deklarierst, achte darauf, die richtigen Datentypen zu verwenden:
      Dim spalte1 As Integer
      Dim zeile1 As Long
  2. Mehrbereichsauswahl

    • Wenn Du mehrere Bereiche auswählst, gibt es eine Fehlermeldung. Stelle sicher, dass Du nur einen Bereich ausgewählt hast, oder passe den Code an, um mit mehreren Bereichen umzugehen.

Alternative Methoden

Eine kürzere Methode, um die erste und letzte Zeile sowie Spalte zu ermitteln, verwendet die Cells-Eigenschaft. Hier ist ein Beispiel:

Dim zeile_erste As Long
Dim spalte_erste As Integer
Dim zeile_letzte As Long
Dim spalte_letzte As Integer

zeile_erste = Selection.Cells(1).Row
spalte_erste = Selection.Cells(1).Column
zeile_letzte = Selection.Cells(Selection.Cells.Count).Row
spalte_letzte = Selection.Cells(Selection.Cells.Count).Column

Diese Methode ist kompakter und funktioniert gut, wenn Du die excel vba cells(zeile, spalte)-Funktion nutzen möchtest.


Praktische Beispiele

Ein praktisches Beispiel könnte sein, dass Du alle markierten Zellen durchlaufen und deren Inhalte auslesen möchtest:

For Each zelle In Selection
    Debug.Print zelle.Value ' Gibt den Wert der Zelle in das Direktfenster aus
Next zelle

Hiermit kannst Du die excel vba markierte zellen ermitteln und deren Werte weiterverarbeiten.


Tipps für Profis

  • Nutze die ActiveCell-Eigenschaft, wenn Du nur mit der aktuell aktiven Zelle arbeiten möchtest.
  • Um die vba zeilennummer ermitteln oder vba spaltennummer ermitteln, kannst Du direkt auf die Eigenschaften Row und Column der ActiveCell zugreifen.

FAQ: Häufige Fragen

1. Wie kann ich die selektierte Zelle ermitteln?
Du kannst die Selection-Eigenschaft verwenden, um die aktuelle Auswahl zu überprüfen. Zum Beispiel:

Dim aktuelleZelle As Range
Set aktuelleZelle = Selection
MsgBox "Aktuelle Zelle ist: " & aktuelleZelle.Address

2. Was ist der Unterschied zwischen Cells und Selection?
Cells referenziert eine bestimmte Zelle basierend auf Zeilen- und Spaltennummern, während Selection die aktuell ausgewählten Zellen in Excel darstellt.

Mit diesen Informationen bist Du gut gerüstet, um in Excel VBA selektierte Zeilen und Spalten effektiv zu ermitteln!

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