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