Microsoft Excel

Herbers Excel/VBA-Archiv

Zellinhalt in Spalte finden und zur Zeile springen


Betrifft: Zellinhalt in Spalte finden und zur Zeile springen
von: Jan
Geschrieben am: 12.08.2017 12:31:26

Moin Leute,

ich weiß nicht wie lange ich hier nichts gepostet habe,
daher noch einmal kurz: Ich heisse Jan und würde mich über Hilfe freuen,
meine Excel Kenntnisse basieren mehr auf Try and Error, Codes googeln,
herumprobieren etc. als auf gelerntem, Daher bitte ich um Nachsicht, ich kann Codes aber recht gut verstehen mittlerweile.

Zur Aufgabe:
In meiner Tabelle ermittle ich über eine (nicht VBA) WENN Funktion
in den Zellen L3 bis L96 eine Bedingung wenn Gewissen Vorgaben in selber Zeile
erfüllt. Mittels Button und Verknüpften Modul mit Sub möchte ich per Klick
in die erste Zelle von oben angefangen springen, in der die Bedingung erfüllt ist.
Ich habe über Makro Aufzeichnung und Excel Suchfunktion herumprobiert, mein Problem
ist jedoch das Excel jede Zelle anspringt da ja in jeder Zelle in der WENN Funktion
gesuchter Text vorhanden ist. Ebenfalls versucht habe ich es über Bedingte Formatierung, leider auch ohne Erfolg.
Wie muss der Code also lauten, kann man nach erfüllten WENN Bedingungen in
der betroffenen Spalte suchen?
ALternativ habe ich versucht in der Spalte M3:M96 Wert 0 / Wert 1 auszugeben
wenn Bedingung erfüllt und diese anzuspringen, auch ohne Erfolg.

Sollte ich spezieller erklären bitte ich um Info.

Hier noch zur Hilfe die Wenn Funktion:

WENN(M3=1;"< Fehleingabe, bitte Zeile prüfen!")
LG Jan

  

Betrifft: AW: mit HYPERLINK() und ...
von: ... neopa C
Geschrieben am: 12.08.2017 13:20:46

Hallo Jan,

... und z.B. VERGLEICH() je nachdem wie Deine Bedingung definiert ist.

so: =HYPERLINK("#L"&VERGLEICH([Dein zu suchender Wert];L3:L96;0);"hier klicken, dann landest Du beim gesuchten")

Worin Du "[Dein zu suchender Wert]" auch wiederum bei Bedarf erst mit einer Formel ermitteln kannst.

Gruß Werner
.. , - ...


  

Betrifft: AW: Zellinhalt in Spalte finden und zur Zeile springen
von: Jan
Geschrieben am: 13.08.2017 09:13:49

Moin und danke für die Anregung,

ich habe es auch zum laufen bekommen,
jedoch würde ich gerne über einen Button mit Makro gehen,
ich bräuchte also eine Lösung in VBA.


  

Betrifft: AW: Zellinhalt in Spalte finden und zur Zeile springen
von: Sepp
Geschrieben am: 13.08.2017 09:44:55

Hallo Jan,

in das Modul der Tabelle.

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private rng As Range

Sub getNext()
If rng Is Nothing Then
  Set rng = Range("L3:L96").Find(What:="Fehleingabe", After:=Range("L3"), LookIn:=xlValues, LookAt:=xlPart, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
  If Not rng Is Nothing Then Application.Goto rng
Else
  Set rng = Range("L3:L96").FindNext(rng)
  If Not rng Is Nothing Then Application.Goto rng
End If
End Sub

Sub getPrevious()
If rng Is Nothing Then
  Set rng = Range("L3:L96").Find(What:="Fehleingabe", After:=Range("L96"), LookIn:=xlValues, LookAt:=xlPart, SearchDirection:=xlPrevious, MatchCase:=False, SearchFormat:=False)
  If Not rng Is Nothing Then Application.Goto rng
Else
  Set rng = Range("L3:L96").FindPrevious(rng)
  If Not rng Is Nothing Then Application.Goto rng
End If
End Sub


Am einfachsten bedienst du die Makros, wenn du ihnen jeweils eine Tastenkombination zuweist.

Gruß Sepp



  

Betrifft: andere Version
von: Sepp
Geschrieben am: 13.08.2017 12:42:30

Hallo Jan,

hier eine andere Version.

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Sub getNext()
Call getFind(Range("L3:L96"), "Fehleingabe", xlNext)
End Sub

Sub getPrevious()
Call getFind(Range("L3:L96"), "Fehleingabe", xlPrevious)
End Sub

Private Sub getFind(ByRef Target As Range, ByVal FindWhat As Variant, ByVal Direction As XlSearchDirection)
Dim firstCell As Range
Static rng As Range

With Target
  If rng Is Nothing Then
    Set firstCell = IIf(Direction = xlNext, .Cells(1, 1), .Cells(.Rows.Count, .Columns.Count))
    Set rng = .Find(What:=FindWhat, After:=firstCell, LookIn:=xlValues, LookAt:=xlPart, _
      SearchDirection:=Direction, MatchCase:=False, SearchFormat:=False)
  Else
    Set rng = IIf(Direction = xlNext, .FindNext(rng), .FindPrevious(rng))
  End If
End With

If Not rng Is Nothing Then Application.Goto rng
End Sub


Gruß Sepp



  

Betrifft: AW: Zellinhalt in Spalte finden und zur Zeile springen
von: Jan
Geschrieben am: 13.08.2017 19:02:50

Danke Sepp,

läuft perfekt :-)!