Zellen mit Long werten auswählen und inhalt lesen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Zellen mit Long werten auswählen und inhalt lesen
von: Benjamin
Geschrieben am: 22.06.2015 11:14:40

Guten Tag liebe Forumgemeinde :)
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

Bild

Betrifft: warum neuer thread,
von: Michael
Geschrieben am: 22.06.2015 13:44:10
Ben?
Der alte ist hier: https://www.herber.de/forum/archiv/1432to1436/t1432155.htm#1432155
Sag, warum willst Du eigentlich die *Spalten* ermitteln? Das ist doch gerade das, was sich in einer Tabelle so gut wie *nie* ändert: zähle die Nr. doch einfach aus, 1=A, 2=B usw.
Wenn Du die Zeile der gerade angeklickten Zelle (wenn's denn nur eine ist) ermitteln willst, nimmst Du schlicht ...
zeile = ActiveCell.Row
... und anstelle der Zuweisung FID_Text = c.Value aus dem anderen Thread kannst Du Deine Werte so zuweisen:
FID_Text = Cells(zeile, spalte).Value
*ODER* wenn Du die Spaltenbuchstaben hast (vielleicht weißt Du ja nur nicht, wie Du die in eine Formel einsetzen mußt), dann schreibt sich das z.B. für Spalte "G" so:
FID_Text = Range("G" & zeile).Value
Weiteres nur mit Beispieldatei.
Gruß,
Michael

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zellen mit Long werten auswählen und inhalt lesen"