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

Forumthread: If not ActiveCell bewegt sich senkrecht Then

If not ActiveCell bewegt sich senkrecht Then
24.06.2013 12:40:14
Lutz
Hallo Experten,
Leider sind meine VBA-Kenntnisse noch sehr begrenzt, deshalb kann ich mein Befehl auch nur in Englisch-Deutsch-VBA :0) wiedergeben.
If not ActiveCell bewegt sich senkrecht Then
Befehl1
Else
Befehl2
End If
Vielleicht kennt jemand den Rest, danke.
Gruß
Lutz

Anzeige

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
was willst du? owT
24.06.2013 12:46:11
Rudi

AW: was willst du? owT
24.06.2013 12:58:36
Lutz
Hallo Rudi,
Also, wenn sich die aktive Zelle nach rechts oder links in der selben Zeile bewegt, egal wie weit und womit, dann soll Befehl1 ablaufen, ansonsten der andere. Was die Befehle danach machen ist noch nicht ganz klar weil mir der Anfang noch fehlt.
Gruß
Lutz

Anzeige
AW: If not ActiveCell bewegt sich senkrecht Then
24.06.2013 12:56:25
JACKD
Hallo Lutz
Active Cell kann sich nicht bewegen..
sie kann nur eine andere Zelle werden.
Also versuch dein Porblem doch bitte anders zu beschreiben..
Grüße

AW: If not ActiveCell bewegt sich senkrecht Then
24.06.2013 13:01:09
Lutz
Hallo JACKD,
dann eben dass sie eine andere Zelle wird. z.B mit Mausklick oder den Richtungstasten.
Gruß Lutz

Anzeige
Spalte/Zeile abfragen ...
24.06.2013 13:14:11
Rudi
Hallo,
...und vorherige Zelle merken.
Dim rngOld As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Column = rngOld.Column Then
'senkrecht
Else
'waagerecht
End If
Set rngOld = ActiveCell
End Sub

Gruß
Rudi

Anzeige
Na, na, Rudi, da fehlt doch was...! ;-) orT
24.06.2013 13:45:47
Luc:-?
(Vgl Guenther & Klaus!)
Gruß Luc :-?

ich weiß
24.06.2013 13:49:14
Rudi
Hallo,
da hab ich mal den Hajo gemacht ;-)
Gruß
Rudi

:D
24.06.2013 14:45:33
Sheldon
U made my day!
Gruß
Sheldon

Anzeige
...Dem klingen jetzt viell die Ohren! ;-) owT
24.06.2013 16:50:16
Luc:-?
:-?

AW: If not ActiveCell bewegt sich senkrecht Then
24.06.2013 13:12:35
GuentherH
Hallo Lutz,
innerhalb eines Worksheets könnte der Code, herauszukriegen ob die Markierung nicht senkrecht bewegt wird, wie unten aussehen. Ehrlich gesagt, würde ich das aber nicht für eigene Projekte einsetzen, sondern die Anforderungen ändern.
Im Tabellen-Objekt:

Dim LastRow As Long
Dim LastCol As Long
Private Sub Worksheet_Activate()
LastRow = Selection.Row
LastCol = Selection.Column
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim waagerecht As Boolean
If Target.Column  LastCol Then
waagerecht = True
MsgBox "Bewegung waagerecht"
End If
LastRow = Selection.Row
LastCol = Selection.Column
End Sub
Viele Grüße,
Günther

Anzeige
AW: If not ActiveCell bewegt sich senkrecht Then
24.06.2013 13:20:12
Klaus
Hallo Lutz,
probiers mal so:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static OldRow As Long
If OldRow  Target.Row Then
Debug.Print "senkrecht"
Else
Debug.Print "waagerecht"
End If
OldRow = Target.Row
End Sub
Grüße,
Klaus M.vdT.

Anzeige
AW: If not ActiveCell bewegt sich senkrecht Then
24.06.2013 13:34:29
Lutz
Hallo Rudi, Günther und Klaus,
danke vielmals, Rudis geht leider nicht (Laufzeitfehler91). Die anderen beiden wunderbar, jetzt darf ich mich entscheiden...
Gruß Lutz

Danke für die Rückmeldung! owT.
24.06.2013 14:16:47
Klaus
.

Danke für die Rückmeldung! owT.
24.06.2013 14:16:47
Klaus
.

Anzeige
Danke für die Rückmeldung! owT.
24.06.2013 14:16:47
Klaus
.

Nimm erst mal Guenthers Lösung, ...
24.06.2013 14:32:17
Luc:-?
…Lutz,
bei Klaus fehlt auch noch 'ne Kleinigkeit. ;-)
Es ginge aber auch so:
Option Explicit
isEdit As Boolean, adPrevTarget As String
Private Sub Worksheet_Activate()
adPrevTarget = ActiveCell.Address(0, 0)
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
isEdit = True: adPrevTarget = Target.Cells(1).Address(0, 0)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If isEdit And adPrevTarget  "" Then
If Not Intersect(Target.Cells(1), Me.Range(prevTarget).Offset(1, 0)) Is Nothing Then
Debug.Print "[Ret]-Abschluss"
Else: Debug.Print "[Tab]-Abschluss"
End If
End If
isEdit = False
End Sub
Hier wird die Bewegung nur festgestellt, wenn sie in direktem Anschluss an (und als Folge) eine(r) ZellBearbeitung erfolgt.
Gruß Luc :-?

Anzeige
Welche Kleinigkeit fehlt denn ...
25.06.2013 08:13:17
Klaus
... in meiner Lösung, Luc? Das zuweisen von row der ersten aktiven Zeile? In meinem Test ging es auch ohne :-)
Grüße,
Klaus M.vdT.

OldRow ist beim 1.Mal =0, ...
25.06.2013 15:28:25
Luc:-?
…Klaus;
davon kann man eigentl keine Bewegungsrichtung ableiten, denn ein theoretisches OldColumn wäre genauso =0, also hätte sich der Cursor quasi schräg nach rechts unten bewegt, was aber mit den üblichen Bewegungstasten bei 1maligem Anschlag nicht möglich wäre.
Gruß Luc :-?

Anzeige
AW: OldRow ist beim 1.Mal =0, ...
25.06.2013 16:37:03
GuentherH
Hallo,
letztlich hab' ich gepokert und die Prüfung, ob rein waagrecht bewegt wird, weggelassen, weil es danach aussieht, als ob's hier egal wär.
Die diagonale Bewegung kommt dann per Maus.
schönen Abend,
Günther
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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