Tabellen (formatiert) über VBA auswählen
17.05.2024 10:40:53
FelixS.
Ich arbeite in einem Ingenieurbüro und bin vor kurzen in Excel und VBA Programmierung eingestiegen. Hierbei stoße ich immer wieder auf eine bestimmte Problematik.
Für Rechnungen muss ich immer wieder auf verschiedenen Tabellen zugreifen. Dafür habe ich Bereich als Tabelle Formatiert (mit Namen) umso auf deren Bereiche wie z.B. Kopfzeile zuzugreifen. Allerdings klappt es nicht mit VBA auf diese Bereiche zuzugreifen. Besonders wenn der Tabellenname über eine Eingabe Zelle eingeben wird.
Hier vielleicht ein Beispiel:
Diese Funktion habe ich geschrieben und sie funktioniert auch
Guten Tag,
Ich arbeite in einen Ingeneurbüro und bin vor kurzen in Excel und VBA Programierung eingestiegen. Hierbei Stoße ich immer wieder auf eine bestimmte Proplematik.
Für rechnungen muss ich immer wieder auf verschidenen Tabellen zugreifen. Dafür habe ich bereich als Tabelle Formatiert (mit Namen) um so auf deren Bereiche wie z.B. Kopfzeile zuzugreifen. Allerdings klappt es nicht mit VBA auf diese Bereiche zuzugreifen. Besonders wenn der Tabellenname über eine eingabe Zelle eingeben wird.
Hier vieleicht ein Beispiel:
Diese Funktion habe ich geschrieben und sie funktioniert auch
Public Function TabellenSuche(Suchkriterium_Vertikal, Suchkriterium_Horizontal As String, Tabelle As Range)
'sucht aus einer Tabelle einen Wert heraus'
'Spaltensuche'
Dim Spalte1, wert
Dim myTable As ListObject
Dim myTableName As String
Set myTable = Tabelle.ListObject
myTableName = myTable.Name
wert = Range(myTableName & "[#Headers]")
Spalte1 = WorksheetFunction.Match(Suchkriterium_Horizontal, wert, 0)
'Wertsuche'
TabellenSuche = WorksheetFunction.VLookup(Suchkriterium_Vertikal, Tabelle, Spalte1, False)
End Function
Jetzt möchte ich das der Name der Tabelle und das Suchkriterium Vertikal aus einer Zelle ausgelesen wird und ich nur noch das Suchkriterium Vertikal als Variable eingeben muss.
Hier mal mein Versuch der leider nicht Funktioniert
Public Function Profil(Suchkriterium_Horizontal)
'sucht aus einer Tabelle einen Wert heraus'
'Spaltensuche'
Dim Spalte1, wert, Tabelle As Range, Tabelle1 As String, Suchkriterium_Vertikal
Dim myTable As ListObject
Dim myTableName As String
Tabelle1 = Range("A2")
Suchkriterium_Vertikal = Range("A5")
Tabelle = Range("HEA")
Set myTable = Tabelle.ListObject
myTableName = myTable.Name
wert = Range(myTableName & "[#Headers]")
Spalte1 = WorksheetFunction.Match(Suchkriterium_Horizontal, wert, 0)
End Function
'Wertsuche'
Profil = WorksheetFunction.VLookup(Suchkriterium_Vertikal, Tabelle, Spalte1, False)
End Function
Ich wäre sehr dankbar, wenn ihr ein paar Tipps habt. Speziell für diese Funktion aber auch wie ich generell Tabellen besser auslesen kann?
Vielen dank
Anzeige