Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1784to1788
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

In welche Richtung wurde markiert?

In welche Richtung wurde markiert?
12.10.2020 15:14:07
Edmund
Hallo, liebe Excel-Gemeinde
Nachdem mir hier schon einige Male geholfen wurde, komme ich heute mal wieder mit einer Aufgabe, für die ich noch keine Lösung gefunden habe.
Die Aufgabe:
Der User soll eine oder mehrere Zellen in einer Zeile auswählen.
Diese Zellen sollen dann jede einzeln abgearbeitet werden. Also Selection. funktioniert nicht.
Bis jetzt helfe ich mir so:
i = Selection.Columns.Count - 1
z = ActiveCell.Row
s = ActiveCell.Column
For s = s To s + i

hier kommt ein Script
Next s
Das funktioniert.
Aber leider nur so lange, bis ein Schlaule auf die Idee kommt, die Zellen von rechts nach links zu markieren.
Dann wird natürlich von der aktiven Zelle auch nach links abgearbeitet
Deshalb die konkrete Frage, wie kann ich ermitteln, ob von der aktiven Zelle nach links, oder nach rechts markiert wurde?
Bin mal gespannt auf Eure Lösungen
Viele Grüße
Edmund

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In welche Richtung wurde markiert?
12.10.2020 15:25:20
Daniel
Hi
Spielt die Reihenfolge eine Rolle?
Wenn einfach nur alle Zellen nacheinander bearbeitet werden müssen, dann reicht:
For each Zelle in Selection
Wobei Zelle als Range deklariert werden muss und die Objektvariable mit der jeweiligen Zelle ist.
Ansonsten kannst du mit Selection.Column die Spaltennummer der ersten Spalte der Selektion ermitteln und mit ActiveCell.Column die Spaltennummer der aktiven Zelle.
Vergleiche beide Werte:
Sind beide Spalten gleich, wurde von links nach rechts selektiert, ist die Spalte der aktiven Zelle größer, von rechts nach links.
Gruß Daniel
Anzeige
AW: In welche Richtung wurde markiert?
12.10.2020 15:31:32
Nepumuk
Hallo Edmund,
warum nicht einfach so (Beispiel):
Public Sub Test()
    Dim objCell As Range
    Dim lngCount As Long
    If TypeOf Selection Is Range Then
        If Selection.Rows.Count = 1 Then
            For Each objCell In Selection
                lngCount = lngCount + 1
                objCell.Value = lngCount
            Next
        End If
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: In welche Richtung wurde markiert?
12.10.2020 15:46:06
Edmund
Danke für Eure Antworten.
@Daniel
Die Reihenfolge spielt keine Rolle.
For Each in Selection, ist natürlich die Lösung.
@Nepomuk
Dein Code funktioniert einwandfrei, auch wenn ich noch nicht so 100% weiß, warum :)
Ich gehe davon aus, dass ich Dein
lngCount = lngCount + 1
objCell.Value = lngCount

einfach gegen meinen Code ersetzen kann.
Vielen Dank Euch beiden

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige