Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1960to1964
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Button mehrere Makros, wenn T.blatt eingeblendet ist

Button mehrere Makros, wenn T.blatt eingeblendet ist
29.01.2024 11:13:01
Feli
Hallo liebe Community,

ich habe folgendes Problem und würde gerne wissen, ob man folgendes per VBA Code lösen kann:

Ich habe 3 Tabellenblätter (Tabellenblatt1, Tabellenblatt2, Tabellenblatt3) mit den gleichen Makros Sub PDF_Hoch().
Ich möchte nun ein Button einbauen, der alle 3 Makros nacheinander ausführt, allerdings nur dann wenn die Tabellenblätter unten an der Leiste eingeblendet sind. Wenn ein Blatt ausgeblendet ist, soll das Makro nicht ausgeführt werden.

Ich hoffe Ihr könnt mir weiterhelfen!

Grüße Feli

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Button mehrere Makros, wenn T.blatt eingeblendet ist
29.01.2024 11:51:59
AlterDresdner
Hallo Feli,
mit Sheets("Tabelle1").visible kann man den Ausblendestatus feststellen. Mit einer AND-Konstruktion kann man nach allen 3 Blättern schauen. Und dann ggfls. das Makro beenden.
Gruß der AlteDresdner
AW: Button mehrere Makros, wenn T.blatt eingeblendet ist
29.01.2024 21:01:37
Piet
Hallo

ich verstehe wirklich nicht warum an der leichten Frage so herumgedocktert wird??
Die Lösung ist doch mit einer erweiterten IF Then Anweisung mehr als simpel!!

mfg Piet

Sub nn()

If Sheets("Tabelle1").Visible = vbSheetVisible And _
Sheets("Tabelle2").Visible = vbSheetVisible And _
Sheets("Tabelle3").Visible = vbSheetVisible Then
Call Sheets("Tabelle1").PDF_Quer
Call Sheets("Tabelle2").PDF_Quer
Call Sheets("Tabelle3").PDF_Quer
End If
End Sub
Anzeige
AW: Button mehrere Makros, wenn T.blatt eingeblendet ist
29.01.2024 21:47:04
Piet
Hallo

Entschuldigung an alle Kollegen für meinen vereiligen dummen Spruch. Da hatte ich noch nicht alle AW gelesen.

Nach einigem Tüffteln mit dem Beispiel, funktioniert bei mir jetzt diese Lösung. Es fehlt aber Sheet2 in der Datei!!
Ich habe aber nicht geprüft ob die Range Einstellungen im Makro PDF_Quer okay sind. Nur das der Aufruf klappt!

mfg Piet

Sub nn()

If Sheets("Tabelle1").Visible = -1 Then _
Call Sheets("Tabelle1").PDF_Quer
If Sheets("Tabelle2").Visible = -1 Then _
Call Sheets("Tabelle2").PDF_Quer
If Sheets("Tabelle3").Visible = -1 Then _
Call Sheets("Tabelle3").PDF_Quer
End Sub
Anzeige
AW: Herzlichen Dank
30.01.2024 09:03:21
Feli
Vielen herzlichen Dank daniel und Piet.
Ihr habt mich gerettet!!!

Grüße Feli
AW: Button mehrere Makros, wenn T.blatt eingeblendet ist
29.01.2024 12:00:17
Feli
Hallo AlteDresdner,

danke für die Unterstützung.
Ich möchte betonen, dass ich überhaupt/fast keine Ahnung von programmieren habe.

Wie würde das als Code aussehen? - natürlich nur wenn du die Zeit und Lust dazu hast.

Danke.

Grüße Feli
AW: Button mehrere Makros, wenn T.blatt eingeblendet ist
29.01.2024 12:22:33
AlterDresdner
Hallo Feli,
der Code des Makros, das mit dem Button aufgerufen wird, wäre:
Sub nn()

Dim a As Boolean
a = Sheets("Tabelle1").Visible And Sheets("Tabelle2").Visible And Sheets("Tabelle3").Visible
'Makro nicht ausführen, wenn eines der Blätter ausgeblendet
If Not a Then Exit Sub
Run "Makro1"
Run "Makro2"
Run "Makro3"

End Sub


Die Subs Makro1... sollten in einem Modul stehen.
Gruß der ALteDresdner
Anzeige
AW: Button mehrere Makros, wenn T.blatt eingeblendet ist
29.01.2024 13:12:05
Feli
Hallo AlterDresdner,

Makro1 (aus Tabellenblatt1) hat den gleichen Namen wie Makro2 (Tabellenblatt2) und Makro3 (Tabellenblatt3) --> Sub PDF_Hoch.

Ist das dann trotzdem noch möglich? - bei mir spielen die Makros nicht ab.

Sub nn()
Dim a As Boolean
a = Sheets("Tabelle1").Visible And Sheets("Tabelle2").Visible And Sheets("Tabelle3").Visible
'Makro nicht ausführen, wenn eines der Blätter ausgeblendet
If Not a Then Exit Sub
Run "PDF_Hoch"
Run "PDF_Hoch"
Run "PDF_Hoch"

End Sub

Vielen Dank!!

Grüße Feli

Anzeige
AW: Button mehrere Makros, wenn T.blatt eingeblendet ist
29.01.2024 13:31:04
daniel
Hi
wenn die Makros in den Tabellenblattmodulen stehen und nicht in einem allgemeinen Modul, dann musst du beim Aufruf auch den Tabellennamen mit angeben.
du kannst entweder den Codenamen des Tabellenblatts verwenden (das ist der, der im Projektbaum vor der Klammer steht)
Call Tabelle1!PDF_Hoch

Call Tabelle2!PDF_Hoch
Call Tabelle3!PDF_Hoch

oder du nimmst den Indexnamen, das ist der Name, der im Projektexplorer in der Klammer steht und welchen du auch auf den Reitern siehst (dieser kann allerdings vom Anwender geändert werden)
Call Sheets("Tabelle1").PDF_Hoch

Call Sheets("Tabelle2").PDF_Hoch
Call Sheets("Tabelle3").PDF_Hoch


Gruß Daniel
Anzeige
AW: Button mehrere Makros, wenn T.blatt eingeblendet ist
29.01.2024 14:57:48
Feli
Hi daniel,

leider wird der Befehl nicht ausgeführt sondern ich bekomme den Fehler 400. Allerdings konnte ich auch unter help nicht herausfinden, wo der Fehler liegt:

Sub nn()
Dim a As Boolean
a = Sheets("Tabelle1").Visible And Sheets("Tabelle2").Visible And Sheets("Tabelle3").Visible
'Makro nicht ausführen, wenn eines der Blätter ausgeblendet
If Not a Then Exit Sub
Call Sheets("Tabelle1").PDF_Hoch
Call Sheets("Tabelle2").PDF_Hoch
Call Sheets("Tabelle3").PDF_Hoch
End Sub

Außerdem habe ich leider erst jetzt festgestellt, dass die die Blätter unabhängig von einander nacheinander abgespielt werden sollen.

D.h. Wenn Tabelle1 eingeblendet soll der Code PDF_Hoch (Tabelle1) ausgfeührt werden. Danach soll geprüft werden ob Tabelle2 eingeblendet ist, wenn ja soll der Code PDF_Hoch (Tabelle2) ausgfeührt werden. Wenn Tabelle2 ausgeblendet ist soll mit Tabelle3 fortgeführt werden.

Vielen herzlichen Dank im Voraus!!

Grüße Feli
Anzeige
AW: Button mehrere Makros, wenn T.blatt eingeblendet ist
29.01.2024 15:24:32
daniel
HI
wo der Fehler 400 herkommt, kann ich dir nicht sagen, dazu müsste ich deine Datei kennen.
Wenn ich mir selber die Datei nach deinen Vorgaben aufbaue, funktioniert der Code ohne Fehler.

wenn das so laufen soll wie du beschreibst, musst du jedes Blatt einzeln prüfen:

if Sheets("Tabelle1").Visible = vbSheetVisible then Call Sheets("Tabelle1").PDF_Hoch
if Sheets("Tabelle2").Visible = vbSheetVisible then Call Sheets("Tabelle2").PDF_Hoch
usw für alle Tabellenblätter

Gruß Daniel
AW: Button mehrere Makros, wenn T.blatt eingeblendet ist
29.01.2024 15:48:42
Feli
Hii,

anbei findest mal eine Datei, die sehr stark eingeschränkt ist
Ich hoffe das hilft.

https://www.herber.de/bbs/user/166609.xlsm

Grüße Feli
Anzeige
AW: Button mehrere Makros, wenn T.blatt eingeblendet ist
29.01.2024 16:32:25
daniel
Hi
ersetz mal das vbSheetVisible durch -1 oder xlSheetVisible (sorry, mein Fehler)

wenn du mit .Select einen bestimmten Zellbereich wechseln willst, dann geht das nur im selben Tabellenblatt, du kannst damit nicht auf ein anderes Blatt springen.
hierzu musst du entweder zuerst das neue Blatt selektieren oder den Sprung mit Application.Goto RNG ausführen.
Am besten ist, du verzichtest auf das SELECT+SELCTION und gibst stattdessen gleich den Zellbereich an:
RNG.ExportAsFixedFormat....

kleiner Tipp: wenn sich der Code in einem Tabellenblattmodul befindet, dann kann man dieses Blatt immer mit ME ansprechen (dann muss man nicht auf den Namen achten) bzw. man gibt dann bei Range und Cells gar kein Tabellenblatt an, denn bei Code im Tabellenblattmodul wird dann immer das Tabellenblatt es Moduls verwendet.
im Prinzip sollte sich dein Code dann so vereinfachen lassen:

Sub PDF_Quer()

Dim RNG As Range, QuerHoch As Variant, Datei As String

With Sheets("Tabelle0")
Datei = ThisWorkbook.Path & "_Risikobewertung_" & ".pdf"
End With


Set RNG = Me.Range("A3:C35")

QuerHoch = Me.PageSetup.Orientation

' ggf Orientierung umstellen
If QuerHoch = xlPortrait Then Me.PageSetup.Orientation = xlLandscape

'Markierung als PRF ausgeben
RNG.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Datei, _
IgnorePrintAreas:=False, OpenAfterPublish:=True

'Orientierng zurückstellen
If QuerHoch = xlPortrait Then Me.PageSetup.Orientation = QuerHoch

End Sub


Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige