1.8k Aufrufe
Gefragt in Tabellenkalkulation von Mitglied (926 Punkte)
Hallo,
im fetten unterstrichenen Teil des Makro kann nur "True" oder "False".
Diesen Wert soll das Makro hier aber aus einer Zelle auslesen. Die Zelladresse ist "IntRow, 2), Aktuelle Zeile, Spalte B.
Wie muss der Code korrigiert werden?

Sub Tabellen_aus_ein_blenden()
Dim intRow As Integer
Dim intSheets As Integer
For intRow = 2 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For intSheets = 2 To Sheets.Count
If Sheets(intSheets).Name = ActiveSheet.Cells(intRow, 1) Then
Sheets(intSheets).Visible = False 'ActiveSheet.Cells(intRow, 2)
End If
Next intSheets
Next intRow
End Sub


mfg
Schönen Abend
Wolfgang

7 Antworten

0 Punkte
Beantwortet von Mitglied (926 Punkte)
Hallo,
fett und unterstrichen? war wohl nix.
False 'ActiveSheet.Cells(intRow, 2) dies ist gemeint.
mfg
Wolfgang
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Wolfgang,

versuchs so
Sheets(intSheets).Visible =cells(IntRow, 2)

Gruß Hajo
0 Punkte
Beantwortet von Mitglied (926 Punkte)
Hallo Hajo,
das hatte ich schon, ich habs auskommentiert, weil es Laufzeitfehler 1004 Anwendungs- oder Objektdefinierter Fehler hervorruft.
mfg
Wolfgang
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Wolfgang,

was steht in der Zelle (Wahr/falsch)

Gru0 Hajo
0 Punkte
Beantwortet von Mitglied (926 Punkte)
Hallo,
bis eben standen da Formeln drin die:
True / False
erzeugten, die habe ich eben durch die Werte ersetzt, das hat aber keine Wirkung
mfg
Wolfgang

Falls es irgend wie hilft, dies ist das Makro, das die Liste der Tabellennamen erzeugt:

Option Explicit
Sub Tabellennamen()
For i = 1 To Sheets.Count
Range("A" & i).Value = Worksheets(i).Name
Next i
End Sub
0 Punkte
Beantwortet von Mitglied (926 Punkte)
Hallo,
wenn ich ein Makro per Checkbox auslöse, kann dieses Makro dann zunächst die Nummer der Checkbox auslesen? Dann ändere ich das obige Makro noch mal völlig.
Dann: intRow = Checkboxnummer,
Das Makro würde dann immer nur mit der Zeile = Ceckboxnummer ausführen.
Dies hier funktioniert nämlich:
Sheets(intSheets).Visible = ActiveSheet.CheckBox1.Value

mfg
Wolfgang
0 Punkte
Beantwortet von Mitglied (926 Punkte)
Hallo Hajo und alle die es interessiert,
das Makro funktioniert jetzt!
Hier eine kurze Erläuterung:
Das obige Makro "Tabellennamen" listet in Spalte A, die Namen der in der Datei enthaltenen Tabellenblätter auf.
Per Kontrollkästchen werden in Spalte C, die Einträge "WAHR" / "FALSCH" erzeugt, in Spalte B werden diese mit 1 multipliziert, das ergibt 1 / 0.
Die Variable i liest das aus und wird bei .Visible = i verwendet.
Warum das nun funktioniert ist mir (noch) ein Rätsel!

Sub Tabellen_aus_ein_blenden()
Dim intRow As Integer
Dim intSheets As Integer
Dim i As Byte
For intRow = 2 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For intSheets = 2 To Sheets.Count
i = ActiveSheet.Cells(intRow, 2)
If Sheets(intSheets).Name = ActiveSheet.Cells(intRow, 1) Then
Sheets(intSheets).Visible = i
End If
Next intSheets
Next intRow
End Sub

Für sehr umfanreiche Dateien ergibt sich hiermit, eine komfortable Möglichkeit schnell nur gerade (nicht) / benötigten Tabellen anzuzeigen / auszublenden.

mfg

Wolfgang
...