Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1728to1732
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

cursor springt bei Zellanwahl automatisch in Zeile 1

cursor springt bei Zellanwahl automatisch in Zeile 1
27.12.2019 09:16:17
Stefan
Hallo Forumsgemeinde,
ich stehe vor einem Rätsel. Die Sache ist etwas komplex, ich versuche es mal zu erklären:
ich arbeite (alles innerhalb einer Mappe) von der Tabelle Namens "Desktop" aus. Hier ist u.a. ein Button integriert (CMD13), der click darauf löst folgende sub aus:
Private Sub CMD13_Click()
'nach vorhandener Person suchen (in Tabelle "Personen")
modus = 13
With Personen
'If .AutoFilterMode = False Then .Range("A1").AutoFilter
'nicht benötigte Spalten in der Tabelle ausblenden
.Columns("J:AK").Hidden = True
.Protect AllowSorting:=True, AllowFiltering:=True
.Activate
End With
End Sub

Ich springe also in die entsprechend "vorbereitete" Tabelle "Personen". Hier ist ein sub hinterlegt, das auf die Auswahl einer bestimmten Zelle reagiert:
Private Sub Worksheet_SelectionChange(ByVal target As Range)
Dim adr_nr As Long
Dim pers_nr As Long
Select Case modus
Case 4
'case=4 ist die Filterung und Anzeige einer Adresse zugeordneter Personen (Button CMD4)
'in diesem Fall erfolgt keine Reaktion
Case 13
'case=13 ist die direkte Personensuche (Button CMD13)
'auf Spaltenauswahl achten, wenn eine Zelle ausgewählt wird
Select Case target.Column
Case 2
pers_nr = target.Value
adr_nr = target.Offset(0, -1).Value
'Tabelle "Personen" wieder in Ausgangszustand zurückversetzen
With Personen
.Range("B1").Select   'Cursor auf $B$1 zurücksetzen muss erfolgen, bevor Desktop wieder  _
_
aktiviert wird
.Unprotect
.Columns.Hidden = False
If .FilterMode = True Then
.ShowAllData
End If
End With
'Ausgewählte Personennummer und zugehörige Adr_Nr auf Desktop übertragen
Desktop.Activate
Desktop.Range("B3").Value = adr_nr
End Select
End Select
End Sub

Die Variable modus ist eine globale Variable, steht also auf dem Wert 13. Hier reagiert die sub nur dann, wenn eine Zelle aus Spalte 2 der Tabelle ausgewählt wird (target.column = 2 -> case 2) und gibt die entsprechenden Werte zurück bzw. schreibt sie in "Desktop".
Oder besser soll - denn nun kommt mein Problem:
wenn ich das laufen lasse, kann ich in Tabelle "Personen" jede beliebige Zelle außerhalb der Spalte "B" anwählen, es erfolgt acuh korrekterweise keine Reaktion, da target.column ja nicht 2 ist.
Sobald ich irgendeine beliebige Zelle in Spalte 2 auswählen will (egal, ob per Mausklick oder per Cursor reinlaufen) springt mir der Cursor in Zelle B1. Das passiert wie gesagt einzig und allein in Spalte 2, die ich überwache.
Ein de facto identisches Makro mit gleichem Aufruf und Ablauf habe ich in einer anderen Tabelle dieser Arbeitsmappe laufen, dies funktioniert anstandslos. Wieso hier nicht?

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

Betreff
Datum
Anwender
Anzeige
AW: cursor springt bei Zellanwahl automatisch in Zeile 1
27.12.2019 09:58:17
Torsten
Hallo,
durch diese Zeile springt er klar immer auf B1:

.Range("B1").Select

Aber deine Uebergabe an deine Variable adr_nr funktioniert ja trotzdem.
Gruss Torsten
AW: cursor springt bei Zellanwahl automatisch in Zeile 1
27.12.2019 09:59:45
Oberschlumpf
Hi Stefan,
In Case 2, unterhalb von With Personen steht:

.Range("B1").Select

Du bestimmst doch selbst, dass jedes Mal Zelle B1 ausgewählt werden soll.
Ciao
Thorsten
AW: cursor springt bei Zellanwahl automatisch in Zeile 1
27.12.2019 10:08:40
Stefan
Danke für die schnellen Antworten. Ich hab tatsächlich nicht bemerkt, dass ich mir damit eine ungewollte Schleife eingebaut habe....
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige