Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1932to1936
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

Springen in Zelle mit bestimmten Wert

Springen in Zelle mit bestimmten Wert
05.06.2023 10:04:39
UweB.

Guten Morgen,

ich habe folgendes Problem. Ich möchte in einer Zelle der Spalte R doppelklicken. Danach soll in der selben Zeile zu der Zelle, in der ein "s" steht gesprungen werden. Zwischen dieser Zelle in Spalte R und der gesuchten Zelle gibt es nur leere Zellen.
Kann mir hier jemand helfen?
Vielen Dank.

Uwe

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Springen in Zelle mit bestimmten Wert
05.06.2023 10:17:47
Oberschlumpf
Hi Uwe,

schreib is Klassenmodul deines Tabellenblattes diesen Code:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    Dim lloCol As Long
    
        If Target.Column = 18 Then
            For lloCol = 17 To 1 Step -1
                If Cells(Target.Row, lloCol).Value = "s" Then
                    Cells(Target.Row, lloCol).Select
                    Exit Sub
                End If
            Next
        End If
    
End Sub
Der Code sucht in allen Nachbarzellen nach links nach dem Eintrag "s", nicht "S"!
Wenn gefunden, wird die Zelle ausgewählt und Code ist zu ende.

Hilfts?

Ciao
Thorsten


Anzeige
AW: Springen in Zelle mit bestimmten Wert
05.06.2023 10:25:04
UweB
Hallo Thorsten,

Vielen Dank für Deine schnelle Antwort.
Was heißt Klassenmodul?
Ich habe in dem Tabellenblatt schon ein anderes "Doppelklick"-VBA integriert, so dass es eine Fehlermeldung bei diesem "Doppelklick" gibt.
Gruß
Uwe


AW: Springen in Zelle mit bestimmten Wert
05.06.2023 10:30:02
Oberschlumpf
Hi Uwe,

so sieht es bei mir jetzt aus und funktioniert:
Userbild

Ach so, links, der dunkel markierte Eintrag "Tabelle1" ist das Klassenmodul von Tabellenblatt mit dem Namen "Tabelle1".

Wenn das mit deinem bisherigen Code nicht kompatibel ist, dann zeig uns bitte per Upload eine Bsp-Datei mit Bsp-Daten und deinem Code.

Ciao
Thorsten


Anzeige
AW: Springen in Zelle mit bestimmten Wert
05.06.2023 11:03:48
Oberschlumpf
Hi Uwe,

hab meinen Code über all deine Codes gestellt - deine Codes werden trotzdem nicht beeinflusst, weil mein Code ja nur bei Doppelklick in Spalte R "reagiert".
Ach so, ich hab vermutet, es soll in den Nachbarspalten in Rihctung Spalte A gesucht werden - du hattest ja gar nix davon erzählt, wo genau gesucht werden soll.
Hab meinen Code angepasst.
(eigtl find zumindest ich es besser, immer gleich sofort eine Bsp-Datei mitzuliefern, dann muss zuerst nich so viel geraten werden.)

Versuch es so
https://www.herber.de/bbs/user/159468.xlsm

Hilfts?

Ciao
Thorsten


Anzeige
AW: Springen in Zelle mit bestimmten Wert
05.06.2023 11:11:11
UweB
Hallo Thorsten,

super, das klappt. Vielen, vielen Dank.
Ja, Du hast Recht, mit dem Anfügen der Datei. Ich merke es mir für das nächste mal. :-) Und das genauer erklären auch. Ist nicht so einfach, wenn man alles schon hundertmal probiert hat, es so zu beschreiben, dass es ein Dritter versteht.
Eine Frage noch, wenn ich das Gleiche für die Spalte S haben will, weil, wie Du gesehen hast, manchmal mehrere "Starts" in der Zeile habe, brauche ich nur
If Target.Column = 18 Then durch 19 ergänzen oder?

Gruß
Uwe


AW: Springen in Zelle mit bestimmten Wert
05.06.2023 11:35:01
Oberschlumpf
Hi Uwe,

Jein!
Ja, wenn du die 18 durch 19 ersetzt, "reagiert" mein Code bei Doppelklick in Spalte S.
Nein, es wird aber nicht der zweite s-Eintrag in der gleichen Zeile markiert, sondern weiterhin nur der erste gefundene s-Eintrag

Du musst Excel schon ganz genau sagen, wann du was suchst.
Ich hab meinen Code angepasst.
Hier, probier mal
https://www.herber.de/bbs/user/159470.xlsm

Bei Doppelklick in Spalte R wird weiter nach dem ERSTEN s-Eintrag in der selben Zeile gesucht, gefunden, angezeigt
Bei Doppelklick in Spalte S wird nach dem ZWEITEN s-Eintrag in der selben Zeile gesucht, gefunden, angezeigt

Das Ganze funktioniert aber nur, wenn du die Zelle in Spalte S auch tatsächlich mit Doppelklick anklicken kannst.
Was aber ist z Bsp mit Zeile 157???
Es gibt in Zeile 157 mindestens 2 s-Einträge, in Zelle X157 UND in Zelle LO157 - aber - du hast in Zeile 157 die Spalten R,S,T,U als verbundene Zellen formatiert.
Bei Doppel- oder auch nur einfachen Klick in verbundenen Zellen wird als Klick-Adresse immer nur die ganz links stehende Spalte zurückgegeben
Somit könntest du nie einen Doppelklick in Spalte S (Zeile 157) durchführen, so lange die genannten Zellen verbunden sind.

Hilfts?

Ciao
Thorsten


Anzeige
AW: Springen in Zelle mit bestimmten Wert
05.06.2023 11:40:16
UweB
Hallo Thorsten,

das klappt super. :-)
Und vielen Dank für Deine Hinweise zu Zeile 157. Das ist tatsächlich falsch in meiner Tabelle. Das muss ich noch ändern.

Gruß Uwe


mir hat's in den Fingern gejuckt :-)
05.06.2023 12:23:17
Oberschlumpf
Hi Uwe,

ich hab deinen alten Code mit ganz vielen If/Then's und den vielen Einzel-Makro1,2,3,4, usw jetzt doch optimiert :-)

Hier, probier mal
https://www.herber.de/bbs/user/159471.xlsm

- mit nur einer einzigen If (Not) Then-Codezeile werden nun die Zellen "E6:P6" überwacht
- mit nur einem einzigen Makro werden nun die gewünschten Spalten ein- bzw ausgeblendet.

Hilfts?

Ciao
Thorsten


Anzeige
AW: Springen in Zelle mit bestimmten Wert
05.06.2023 17:49:40
Oberschlumpf
ja, ich weiß, meine "ungefragte" Lösungsidee kam 42 Sekunden "zu spät" - aber über eine Antwort von dir zu meinem letzten Vorschlag hätt ich mich trotzdem gefreut...


AW: Springen in Zelle mit bestimmten Wert
06.06.2023 08:04:22
UweB
Hallo Thorsten,

Entschuldige bitte, das ging gestern bei den vielen Mails und Probieren völlig unter.
Dein letzter Vorschlag ging bei mir auch nicht. Die längere Version hatte funktioniert.
Vielen Dank nochmal für Deine Lösungen, die mich wirklich weiter gebracht haben.
Gruß
Uwe


Anzeige
AW: Springen in Zelle mit bestimmten Wert
05.06.2023 12:22:35
GerdL
Hallo,

noch ein Sparcode-Teil fürs Ein-Ausblenden. in der DoubleClick-Prozedur.
Dim XEnde As Variant
    
    
    If Not Intersect(Target, Range("E6:P6")) Is Nothing Then
        Cancel = True
        XEnde = Array(0, 1, 2, 3, 4, 5, "BA", "Cc", "DH", "EL", "FQ", "GU", "HZ", "JE", "KI", "LN", "MR")
        Columns("W:NY").EntireColumn.Hidden = False
        If Target.Column > 5 Then 'Spalte > "E"
            Columns("W:" & XEnde(Target.Column)).EntireColumn.Hidden = True
        End If
    End If
Gruß Gerd


AW: Springen in Zelle mit bestimmten Wert
05.06.2023 13:31:38
UweB
Hallo Gerd,

vielen Dank für Deine Lösung. Die funktioniert bei mir.
Gäbe es eine "einfache" Lösung, wenn ich anstatt der Spalten E-P nur in der Spalte E eine Zahl zwischen 1 und 12 eingebe und dann die entsprechenden Spalten ausgeblendet werden, also das gleiche Ergebnis geliefert wird wie jetzt?

Gruß
Uwe


Anzeige
AW: Springen in Zelle mit bestimmten Wert
05.06.2023 13:46:52
Daniel
das würde auch gehen.
dann müsstest du das Change-Event-Makro anwenden, wenn die ausführung sofort bei eingabe des Wertes erfolgen soll.

also im Prinzip so, ich würde hier die Makros, die du schon hast verwenden, über Application.Run kann man die dann auch mit "zusammengesetzten" Namen starten:
If Target.Address(0, 0) = "E6" Then
    Select Case Target.Value
          case 1 to 12
              Application.run "Makro" & Target.value
          Case Else
     end Select
End if
Gruß Daniel



Anzeige
AW: Springen in Zelle mit bestimmten Wert
05.06.2023 14:05:43
GerdL
Hallo Uwe,

nebenbei: Das Array beginnt mit Index 0. Da bei 1 außerdem nichts auszublenden ist, brauchen wir zwei Dummy-Werte,
damit der Zähler passt.

Probier mal.
Dim XEnde As Variant
    
    If Target.Address = "$E$6" Then
        Cancel = True
        Select Case Int(Target.Value)
            Case 1 To 12
            XEnde = Array("", "", "BA", "CC", "DH", "EL", "FQ", "GU", "HZ", "JE", "KI", "LN", "MR")
            Columns("W:NY").EntireColumn.Hidden = False
            If Target.Value > 1 Then
                Columns("W:" & XEnde(Target.Value)).EntireColumn.Hidden = True
            End If
        End Select
    End If
Gruß Gerd


Anzeige
AW: Springen in Zelle mit bestimmten Wert
05.06.2023 14:11:59
UweB
Hallo Gerd,

die Variante funktioniert bei mir jetzt komischerweise nicht.

Gruß Uwe


AW: Springen in Zelle mit bestimmten Wert
05.06.2023 15:01:29
GerdL
Hallo Uwe,

kannst du bitte "funktioniert nicht" noch genauer beschreiben.
Codezeile, Fehlermeldungstext etc.

Gruß Gerd


AW: Springen in Zelle mit bestimmten Wert
05.06.2023 15:25:55
UweB
Hallo Gerd,

es passiert einfach nichts. Weder kommt eine Fehlermeldung, noch springt der Cursor in die entsprechende Zelle.
Ich habe deinen "alten" Code ja nur ersetzt durch Deinen neuen.
Gruß
Uwe


AW: Springen in Zelle mit bestimmten Wert
05.06.2023 15:36:07
GerdL
Hallo Ulf,

das kann ich ohne deine Datei mit dem enthaltenen Code u.
eine Mitteilung was du in in welche Zelle eingegeben hast,
leider nicht nachvollziehen.
Der Teilcode sollte im Doubleclick laufen bzw. Spalten ein/- ausblenden.

Gruß Gerd


AW: Springen in Zelle mit bestimmten Wert
05.06.2023 15:42:22
UweB
Hallo Gerd,

entschuldige. Hier kommt der Gesamte Code. Wie gesagt mit Deinem alten Code an der gleichen Stelle läuft es.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Dim lloCol As Long, liCount As Integer, liStop As Integer If Target.Column = 18 Or _ Target.Column = 19 Or _ Target.Column = 20 Or _ Target.Column = 21 Then Select Case Target.Column Case 18 liStop = 1 Case 19 liStop = 2 Case 20 liStop = 3 Case 21 liStop = 4 End Select For lloCol = 23 To Cells(Target.Row, Columns.Count).End(xlToLeft).Column 'beginnt ab Spalte W zu suchen, Suche endet in letzter, benutzer Spalte in aktueller Zeile If Cells(Target.Row, lloCol).Value = "s" Then liCount = liCount + 1 If liStop = liCount Then Cells(Target.Row, lloCol).Select Cancel = True Exit Sub End If End If Next End If Dim XEnde As Variant If Target.Address = "$E$6" Then Cancel = True Select Case Int(Target.Value) Case 1 To 12 XEnde = Array("", "", "BA", "CC", "DH", "EL", "FQ", "GU", "HZ", "JE", "KI", "LN", "MR") Columns("W:NY").EntireColumn.Hidden = False If Target.Value > 1 Then Columns("W:" & XEnde(Target.Value)).EntireColumn.Hidden = True End If End Select End If End Sub

AW: Springen in Zelle mit bestimmten Wert
05.06.2023 16:45:55
GerdL
Hallo Ulf,

Ich kann da nichts weiter feststellen.
Bei meinen eigenen Dateien steht in der Kopfzeile der Prozedur nicht Target As Excel.Range sondern Target As Range.
Das sollte es aber nicht gewesen sein.
Wenn ich die letzte Datei von Thorsten nehme u. deinen Code einfüge, wird ein- u. ausgeblendet,
wenn ich in E6 die Zahlen von 1 bis 12 eingebe u.doppelklicke.

Gruß Gerd

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige