Hallo,
ich habe ein bißchen VBA Code, um in Excel Tabellenblätter bedingt einzublenden. Wenn ich den Code über die VBA-Benutzeroberfläche ausführe, funktioniert alles. Wenn ich das Makro einem Textfeld in der Exceldatei zuordne und auf das Textfeld klicke, werden andere Tabellenblätter eingeblendet .
Mein erster Gedanke war, dass ich das falsche Makro zugeordnet habe (nein, passt alles). Ich habe das Makro auch schon umbenannt / neu zugeordnet, ebenfalls ohne Erfolg. Irgendwie hat das Makro vom Textfeld ein Eigenleben.
Der Code soll folgendes durchführen (was auf der VBA-Programmieroberfläche auch funktioniert):
Bin ich einfach nur doof oder veräppelt mich hier Excel?
Gruß
ich habe ein bißchen VBA Code, um in Excel Tabellenblätter bedingt einzublenden. Wenn ich den Code über die VBA-Benutzeroberfläche ausführe, funktioniert alles. Wenn ich das Makro einem Textfeld in der Exceldatei zuordne und auf das Textfeld klicke, werden andere Tabellenblätter eingeblendet .
Mein erster Gedanke war, dass ich das falsche Makro zugeordnet habe (nein, passt alles). Ich habe das Makro auch schon umbenannt / neu zugeordnet, ebenfalls ohne Erfolg. Irgendwie hat das Makro vom Textfeld ein Eigenleben.
Der Code soll folgendes durchführen (was auf der VBA-Programmieroberfläche auch funktioniert):
- "Wenn eine Zeile eingeblendet ist und in der neunten Spalte ein "x" eingetragen ist, soll das Tabellenblatt eingeblendet werden, das als nächstes nach dem gefundenen Tabellenblatt folgt, dessen Tabellenblattbezeichnung in Spalte 1 steht" (Beispiel: in Spalte 1 steht "sheet_1" und in gleicher Zeile in Spalte 9 ist ein "x", dann soll "sheet_2" eingeblendet werden)
- "Wenn Zeile eingeblendet ist und kein "x" in Spalte 9 steht, dann soll das Tabellenblatt eingeblendet werden, dessen Name in Spalte 1 steht"
- In der ersten eingeblendeten Zeile prüft er noch regulär, ob ein "x" in Spalte 9 steht; falls ja, sheet_2 eingeblendet; falls er kein "x" findet, wird sheet_1 eingeblendet -> so solls sein
- Ab der nächsten eingeblendeten Zeile blendet er nur noch Tabellenblätter ein, deren Name er in Spalte 1 findet; unabhängig davon, ob in Spalte 9 ein "x" steht.
Code:
Sub einblenden()
Dim i as Long
For i = 5 To 18 'Range A5:A18
If Cells(i, 1).EntireRow.Hidden = False Then
If Cells(i, 9).Value = "x" Then 'Range I5:I18
ThisWorkbook.Sheets(ThisWorkbook.Sheets(ThisWorkbook.Sheets("Fortschritt").Cells(i, 1).Value).Next.Name).Visible = xlSheetVisible
Else
ThisWorkbook.Sheets(ThisWorkbook.Sheets(ThisWorkbook.Sheets("Fortschritt").Cells(i, 1).Value).Name).Visible = xlSheetVisible
End If
End If
Next i
End Sub
Bin ich einfach nur doof oder veräppelt mich hier Excel?
Gruß