Hi an Alle
Nun, ich wurde mit der Suchenfunktion nicht fündig oder habe einfach nur die falschen Beiträge angesehen.
Ich habe eine Datei. Diese enthält eine Masterliste, eine Settings Tabelle. Beim öffnen wird abgefragt wird der Dateiname auf "enthält" überprüft. Trifft die Namensabfrage zu sollen verschiedene Spalten ausgebelendet werden. Doch leider funktioniert dies nur wenn in der Settingstabelle entweder "A:A" oder "A:C" eingestellt ist. Sobald "A:A,C:E" eingetragen wirde entsteht der Laufzeitfehler 13 Typen unverträglich. Sobald die Spaltentrennung mit einem Koma geschrieben wird kommt die Fehlermeldung.
Wo mache ich den Denkfehler.
Hier mein Code
Private Sub Workbook_Open()
' @Name: Workbook_Open
' @Eigentümer: gaw
' @Ersteller: Roger Glanzmann
' @Version: dev
' @Erstelldatum: 10.01.2022
' @Änderungsdatum:
'
' @Ablauf: - Screenupdating ausschalten
' - liest den Namen der Datei aus
' - erstellt ein Mehrdimensionalesarray der Namen
' und auszublendenden Spalten aus dem Settingsblatt
' - erstellt ein Array der auszublendenden Spalten
' - vergleicht Dateiname mit Namen aus Array auf "enthält"
' - wenn Vergleich gleich true Spalten ausblenden
' - Screenupdating einschalten
'
' @Rückgabe: keine Rückgabe
'
'
' Konstante deklarieren
Const cTBLSETTINGS = "tblSettings" ' Tabellenname
Const cWSSETTINGS = "Settings" ' Worksheetname
Const cWSMASTER = "Master" ' Worksheetname
'
' Variablen deklarieren
Dim wb As Workbook ' Objekt von diesem Workbook
Dim wsSettings As Worksheet ' Objekt von Blatt Settings
Dim wsMaster As Worksheet ' Objekt von Blatt Jahrestabelle
Dim wbName As String ' Dateiname
Dim arrDateiNamen As Variant ' Dateinamen aus tblSettings
Dim i As Integer ' Zähler für Schleifen
Dim iDateiNamen As Integer ' Anzahl der Dateinamen
'
' Objekte iniitieren
Set wb = ThisWorkbook ' Objekt von diesem Workbook initiiert
Set wsSettings = wb.Worksheets(cWSSETTINGS) ' Objekt von Worksheet Settings initiiert
Set wsMaster = wb.Worksheets(cWSMASTER) ' Objekt von Worksheet Jahrestabelle initiiert
'
' Variablen iniitieren
wbName = wb.Name
arrDateiNamen = wsSettings.ListObjects(cTBLSETTINGS).DataBodyRange
iDateiNamen = wsSettings.ListObjects(cTBLSETTINGS).ListRows.Count
'
' Alle Spalten einblenden
wsMaster.Cells.EntireColumn.Hidden = False
'
' Durchsuchen der Dateinamen auf "enthält"
For i = 1 To iDateiNamen
'
' Alle Spalten einblenden
wsMaster.Cells.EntireColumn.Hidden = False
If InStr(wbName, arrDateiNamen(i, 1)) > 0 Then
If IsEmpty(arrDateiNamen(i, 2)) = True And wbName = cWSMASTER Then
Exit For
End If
Else
End If
Debug.Print VarType("L:M") & " " & "L:M" & ";" & "A"
wsMaster.Columns("L:M" & ";" & "A").EntireColumn.Hidden = True
Next
End Sub
Ich hoffe ihr könnt mir weiterhelfen und wünsche einen guten Appetit
|