Folgendes:
ich hab dieses kleine Sub geschrieben, um in einer Tabelle die letzte Ausgewählte Zeile erkennt, und anschließend prüft in welcher Spalte die G3E_FID & die G3E_FNO in meiner Tabelle vorkommen. Danach soll es an die stellen ("Zeile";"FID_Spalte") und ("Zeile","FNO_Spalte") springen, und die Values der Zellen in einer String-Variablen speichern, um damit einen Batchaufruf zu starten.
das Problem ist Folgendes:
1. Bin ich mir nicht sicher ob wirklich die letzte angeklickte Zeile ausgewählt wird (SEHR WICHTIG)
2. Schaffe ich es nicht an die besagten Stellen zu springen und die .Values von ("Zeile";"FID_Spalte") & ("Zeile";"FNO_Spalte") in einem String zu speichern
Anbei findet ihr meinen Aktuellen Stand was den Code angeht.
Ich hoffe ihr könnt mir helfen und ich möchte mich schon im voraus bedanken, ihr seit echt eine riesen Hilfe :)
Public Ende As Long
Public batch
Option Explicit
Private Sub CommandButton1_Click()
Dim zeile As Long ' row ist ein Excel-Schlüsselwort
'Batchaufruf
Dim batch
'Ausgabestrings für die Parameter
Dim FNO_Text As String
Dim FID_Text As String
'Rangevariable zum Auslesen
Dim z As Range
'Suchbegriff definieren
FNO_Text = "G3E_FNO"
FID_Text = "G3E_FID"
'Spaltenzwischenspeicher
Dim FID_Spalte As Long
Dim FNO_Spalte As Long
'Ausgabeobjekte
Dim FNO_Ob As String
Dim FID_Ob As String
'Letzte ausgewählte zeile auswählen
zeile = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
'FNO SUCHEN
With ActiveSheet.Range("a1:z" & zeile)
'FNO Wird in der obersten Spalte gesucht um festzustellen wo in zeile fno und wo fid
Set z = .Find(FNO_Text, LookIn:=xlValues, lookat:=xlPart)
If Not z Is Nothing Then
'Probehalber habe ich den wert überkopiert
FNO_Text = z.Value
'Hier wird die Spalte zwischengespeichert
FNO_Spalte = z.Column
'Kontrollausgabe
MsgBox "FNO IN SPALTE " & FNO_Spalte
Else
'Errorausgabe
MsgBox FNO_Text & "nicht gefunden"
Exit Sub
End If
End With
'FID SUCHEN
With ActiveSheet.Range("a1:c" & zeile)
'FID Wird in der obersten Spalte gesucht um festzustellen wo in zeile fno und wo fid
Set z = .Find(FID_Text, LookIn:=xlValues, lookat:=xlPart)
If Not z Is Nothing Then
'Probehalber habe ich den wert überkopiert
FID_Text = z.Value
'Hier wird die Spalte zwischengespeichert
FID_Spalte = z.Column
'Kontrollausgabe
MsgBox "FID IN SPALTE " & FID_Spalte
Else
MsgBox FID_Text & "nicht gefunden"
Exit Sub
End If
End With
'Hier möchte ich die values der zellen mit dieser id wiedergeben
FNO_Ob = zeile & " ," & FNO_Spalte
FID_Ob = zeile & " ," & FID_Spalte
'Batchaufruf mit string parametern
batch = Shell("C:\Users\Benjamin\Desktop\Beispiel.bat " & FID_Ob & " " & FNO_Ob, 1)
'Fenster Schließen
Unload Me
End Sub