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

Springe zu Zelle in einem anderen Blatt

Springe zu Zelle in einem anderen Blatt
27.01.2021 19:54:32
Karsten
Hallo,
ausgehend von einem Tabellenblatt Namens 'Applications' doppelklicke ich in diesem Tabellenblatt in Spalte G in irgendeine Zeile mit einem Servernamen. In Spalte A dieser Zeile steht ein App-Name.
Der Inhalt der Zelle aus Spalte G wird an die Variable Tabellenblatt übergeben
Der Inhalt der Zelle aus Spalte A wird an die Variable Anwendung übergeben.
Nun gibt es ein Arbeitsblatt mit dem Namen der Variablen Tabellenblatt.
In diesem gibt es in irgendeiner Zeile der Spalte A den APP-Namen.
Durch den Doppelklick soll nun eine Prozedur starten, die dann zu dem Arbeitsblatt der Variablen Tabellenbatt wechselt und nach der Zeile in Spalte A sucht, die den Namen der Variablen Anwendung enthält. Anschließend soll die Zeile direkt unterhalb der fixierten Zeile angezeigt werden.
Als Wert für die Variable Zeile_suchen erhalte ich immer 'nothing' .
Hier der Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Tabellenblatt, Anwendung, Server As String
Dim aktuelleZeile, AnzahlZeilen As Integer
Dim Zeile_suchen As Range
'Anzahl der Zeilen ermitteln
AnzahlZeilen = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
' Den Servernamen aus Spalte G der aktuellen Zeile an die Variable Tabellenblatt übergeben,
' um in das Tabellenblatt mit dem Namen aus Spalte G zu wechseln
Tabellenblatt = ActiveCell.Value
'Name der Anwendung aus der aktuellen Zeile der Spalte A holen
' Dazu den Wert der aktuellen Zeile der Spalte B auslesen
aktuelleZeile = ActiveCell.Row
Anwendung = Cells(aktuelleZeile, 2)
Debug.Print "Tabellenblatt: "; Tabellenblatt, "AktuelleZeile: "; aktuelleZeile, "Anwendung:  _
_
_
_
_
_
_
_
_
"; Anwendung
'Doppelklick darf nur in Spalte sieben (G) ab Zeile 2 bis zur letzten Zeile der Tabelle  _
ausgeführt werden
If Target.Column  7 Or Target.Row  AnzahlZeilen Then Exit Sub
' ------------------------------------------------------------------------------------------ _
_
'Gehe zum Tabellenblatt
Worksheets(Tabellenblatt).Select
ActiveSheet.Cells(2, 1).Select
' Suche in Spalte 1 nach dem Namen der Anwendung, gehe dorthin und setze diese Zeile  _
unterhalb der Zeile 1
If Trim(Anwendung)  "" Then
'With ThisWorkbook.Worksheets(Tabellenblatt).Range("A:A")
With Sheets(Tabellenblatt).Range("A:A")
Set Zeile_suchen = .Find(What:=Anwendung, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Zeile_suchen Is Nothing Then
Application.Goto Zeile_suchen, True
Else
MsgBox Anwendung & " not found"
End If
End With
End If
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Springe zu Zelle in einem anderen Blatt
27.01.2021 22:24:52
Rudi
Hallo,
After:=.Cells(.Cells.Count),
kommt mir komisch vor. Sucht ja nach der letzten Zelle die nächste.
Lass es mal weg.
Gruß
Rudi
AW: Springe zu Zelle in einem anderen Blatt
28.01.2021 09:13:08
Karsten
Hallo Rudi,
leider führt das zum gleichen Ergebnis.
Gruß Karsten
AW: Springe zu Zelle in einem anderen Blatt
28.01.2021 10:11:15
ralf_b
Hallo Karsten,
naja das After:= ... dürfte egal sein, da find immer wieder von vorne anfängt.
kann es sein das in der Suchzeile die Appnamen auch ein Leerzeichen enthalten könnten? Das trim ist doch nicht umsonst da?
die find Routine sieht für mich gut aus. Also würde ich bei den Daten suchen.
gruß
rb
AW: Springe zu Zelle in einem anderen Blatt
28.01.2021 10:33:14
Karsten
Hallo Ralf,
Der Hinweis war gut, Trim habe ich rausgeschmissen, wird in diesem Fall nicht benötigt.
Die Variablen beinhalten die richtigen Daten: Tabellenblatt: fral4398 Anwendung: Augsburger Puppenkiste
Set Zeile_suchen ..... funktioniert nicht, bzw. findet die Zeile mit dem Inhalt der Variablen Anwendung nicht. Ergebnis:Not found
Hier nochmal der aktualisierte Code
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Tabellenblatt, Anwendung, Server As String
Dim aktuelleZeile, AnzahlZeilen As Integer
Dim Zeile_suchen As Range
'Anzahl der Zeilen ermitteln
AnzahlZeilen = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
' Den Servernamen aus Spalte G der aktuellen Zeile an die Variable Tabellenblatt übergeben,
' um in das Tabellenblatt mit dem Namen aus Spalte G zu wechseln
Tabellenblatt = ActiveCell.Value
'Name der Anwendung aus der aktuellen Zeile der Spalte A holen
' Dazu den Wert der aktuellen Zeile der Spalte B auslesen
aktuelleZeile = ActiveCell.Row
Anwendung = Cells(aktuelleZeile, 2)
Debug.Print "Tabellenblatt: "; Tabellenblatt, "AktuelleZeile: "; aktuelleZeile, "Anwendung:  _
"; Anwendung
'Doppelklick darf nur in Spalte sieben (G) ab Zeile 2 bis zur letzten Zeile der Tabelle  _
ausgeführt werden
If Target.Column  7 Or Target.Row  AnzahlZeilen Then Exit Sub
'Gehe zum Tabellenblatt
Worksheets(Tabellenblatt).Select
ActiveSheet.Cells(2, 1).Select
' Suche in Spalte 1 nach dem Namen der Anwendung, gehe dorthin und setze diese Zeile  _
unterhalb der Zeile 1
With Sheets(Tabellenblatt).Range("A:A")
Set Zeile_suchen = .Find(What:=Anwendung, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Zeile_suchen Is Nothing Then
Application.Goto Zeile_suchen, True
Else
MsgBox Anwendung & " not found"
End If
End With
End Sub

Gruß Karsten
Anzeige
AW: Springe zu Zelle in einem anderen Blatt
28.01.2021 11:11:30
Karsten
Sorry, hatte das Kontrollkästchen nich aktiviert, dass der Thread weiter bei den offenen Fragen angezeigt werden soll.
AW: Springe zu Zelle in einem anderen Blatt
28.01.2021 11:54:49
Werner
Hallo,
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim strBlattname As String, strAnwendung As String, raFund As Range
If Target.Column = 7 And Target.Row > 1 Then
If Target  "" Then
Cancel = True
strBlattname = Target
strAnwendung = Target.Offset(, -6)
With Worksheets(strBlattname)
Set raFund = .Columns("A").Find(what:=strAnwendung, LookIn:=xlValues, _
lookat:=xlWhole)
If Not raFund Is Nothing Then
Application.Goto raFund, True
Else
MsgBox "Fehler: Die App " & strAnwendung & " ist im Blatt " _
& strBlattname & " nicht vorhanden."
End If
End With
End If
End If
Set raFund = Nothing
End Sub
Gruß Werner
Anzeige
AW: Springe zu Zelle in einem anderen Blatt
28.01.2021 13:21:08
Karsten
Hallo Werner,
vielen Dank für deine Bemühungen, der Code ist super optimiert.
Leider ist das Problem immer noch vorhanden.
Ich füge mal eine Testdatei hinzu.
https://www.herber.de/bbs/user/143377.xlsm
Gruß Karsten
AW: Springe zu Zelle in einem anderen Blatt
28.01.2021 13:55:22
ralf_b
Ursache: verbundene Zelle!!!
Lösung: Zelleverbund lösen oder Suchrange auf beide Spalten erweitern
AW: Springe zu Zelle in einem anderen Blatt
28.01.2021 14:31:52
Karsten
Hallo Ralf,
Die verbundenen Zellen waren tatsächlich das Problem.
Habe die verbundenen Zellen 'gelöst' und schon klappte es.
Wie kommt man darauf, dass es an den verbundenen Zellen gelegen hat?
Ich danke dir und allen anderen Beteiligten für eure Zeit und die Lösung dieses Problems.
Vielen herzlichen Dank.
Anzeige
AW: Springe zu Zelle in einem anderen Blatt
28.01.2021 20:22:20
Werner
Hallo,
die Frage sollte nicht sein, wie man auf die verbundenen Zellen kommt, sondern wie man das Rätselraten verkürzen könnte.
Von Anfang an eine Beispielmappe, auf das wirst du ja vom Forum sogar noch hingewiesen, hätte das Ganze erheblich verkürzt.
Gruß Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige