Einen Ausdruck im Makro durch Wert aus Zellbezug ersetzen
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 =[b][u] False 'ActiveSheet.Cells(intRow, 2)[/u][/b]
End If
Next intSheets
Next intRow
End Sub
mfg
Schönen Abend
Wolfgang
Antwort schreiben
Antwort 1 von woher vom 30.09.2022, 19:53 Options
Hallo,
fett und unterstrichen? war wohl nix.
False 'ActiveSheet.Cells(intRow, 2) dies ist gemeint.
mfg
Wolfgang
Antwort 2 von Hajo_Zi vom 30.09.2022, 19:54 Options
Hallo Wolfgang,
versuchs so
Sheets(intSheets).Visible =cells(IntRow, 2)
Gruß Hajo
Antwort 3 von woher vom 30.09.2022, 20:12 Options
Hallo Hajo,
das hatte ich schon, ich habs auskommentiert, weil es Laufzeitfehler 1004 Anwendungs- oder Objektdefinierter Fehler hervorruft.
mfg
Wolfgang
Antwort 4 von Hajo_Zi vom 30.09.2022, 20:43 Options
Hallo Wolfgang,
was steht in der Zelle (Wahr/falsch)
Gru0 Hajo
Antwort 5 von woher vom 30.09.2022, 20:56 Options
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
Antwort 6 von woher vom 30.09.2022, 21:08 Options
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
Antwort 7 von woher vom 01.10.2022, 10:35 Options
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