Anzeige
Archiv - Navigation
1316to1320
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

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

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

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

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

...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.

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
.

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 :-?

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
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige