Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

wenn arbeitsblatt vorhanden makro ausführen

Betrifft: wenn arbeitsblatt vorhanden makro ausführen von: daniel
Geschrieben am: 24.04.2008 18:12:43

Hallo an alle,

zu guter letzt für heute bräuchte ich noch ein makro das überprüft ob ein bestimmtes arbeitsblatt vorhanden ist und wenn ja ein makro ausführt. die Bedingung muss für mehrere arbeitsblätter funktionieren.

danke schonmal an alle hilfebietenden

gruß daniel

  

Betrifft: AW: wenn arbeitsblatt vorhanden makro ausführen von: Stefan
Geschrieben am: 24.04.2008 18:23:08

Hi Daniel,

Versuchs mal mit

For wks = 1 To Worksheets.Count
If Worksheets(wks).Name = "dein Name" Then Call makro
Next wks


Gruß
Stefan

[www.excelsolutions.de]


  

Betrifft: AW: wenn arbeitsblatt vorhanden makro ausführen von: daniel
Geschrieben am: 24.04.2008 18:47:22

Vielen dank für deine antowrt aber der befehl funktioniert nicht da ich nacheinander verschiedene Namen abfragen muss und immer das entsprechende makro aufrufen will. gibt es dafür nicht eine andere lösung.


  

Betrifft: AW: wenn arbeitsblatt vorhanden makro ausführen von: Stefan
Geschrieben am: 24.04.2008 18:54:41

Hi Daniel,


hat also jedes Tabellenblatt sein eigenes Makro?


Gruß
Stefan

[www.excelsolutions.de]


  

Betrifft: AW: wenn arbeitsblatt vorhanden makro ausführen von: Beate Schmitz
Geschrieben am: 24.04.2008 18:51:35

Hallo Daniel,

Public Sub ResumeCheck()
    'http://www.online-excel.de/excel/singsel_vba.php?f=147
    'Achtung es wird auf Sheets geprüft, nicht auf Worksheets
    Dim sTest As String
    On Error Resume Next
    sTest = ThisWorkbook.Sheets("Tabelle2").Name 'Tabellenname anpassen
    If Err = 0 Then
        Call dein_Makro 'Makroname anpassen
    Else
        MsgBox "Kein Blatt mit diesem Namen existiert"
    End If
End Sub



Gruß,
Beate


  

Betrifft: AW: wenn arbeitsblatt vorhanden makro ausführen von: Beate Schmitz
Geschrieben am: 24.04.2008 18:55:25

Hallo Daniel,

nach diesem Muster kannst du mit meinem Makro auf verschiedene Blätter prüfen und die entsprechenden Makros aufrufen, wenn es das jeweilige Blatt gibt:

Public Sub ResumeCheck()
    'http://www.online-excel.de/excel/singsel_vba.php?f=147
    'Achtung es wird auf Sheets geprüft, nicht auf Worksheets
    Dim sTest As String
    On Error Resume Next
    sTest = ThisWorkbook.Sheets("Tabelle2").Name 'Tabellenname anpassen - 1. Test
    If Err = 0 Then
        Call dein_Makro 'Makroname anpassen - 1. Makro
    End If
    sTest = ThisWorkbook.Sheets("Tabelle3").Name 'Tabellenname anpassen - 2. Test
    If Err = 0 Then
        Call dein_Makro2 'Makroname anpassen - 2. Makro
    End If
End Sub



Gruß,
Beate


  

Betrifft: AW: wenn arbeitsblatt vorhanden makro ausführen von: Uwe (:o)
Geschrieben am: 24.04.2008 19:04:02

Hi,
ich hätte da eine Erweiterung von Stefans Code zu bieten:

Sub Blattabfrage(Blattname As String)
   Dim wks As Integer
   For wks = 1 To Worksheets.Count
         If Worksheets(wks).Name = Blattname Then
               Call makro
               Exit Sub
         End If
   Next wks
End Sub


Diese Makro kanns Du aufrufen mit z.B.:

Sub Aufruf()
Blattabfrage ("Tabelle3")
End Sub


und so verschiedene Blätter abfragen.
OK?

Gruß
Uwe
(:o)


  

Betrifft: Ergänzend zu erwähnen von: Beate Schmitz
Geschrieben am: 24.04.2008 19:07:41

ist, das:

"Wir hauen einfach ein On Error Resume Next davor, weisen einer String Variablen den gewünschten Namen zu.
Wenn es diesen in unserem Workbook nicht gibt, wird ein Fehler produziert.
Diesen werten wir mir Err = 0 aus.
Denn wenn kein Fehler aufgetreten ist, ist das Err = 0 sonst eine Fehlernummer.
Simple und elegant.

Was erschwerend bei dieser Variante hinzukommt:
Sie ist - jedenfalls in meinen Tests - um vieles schneller, als eine Schleife über alle Blätter! "

Siehe ganz unten unter: http://www.online-excel.de/excel/singsel_vba.php?f=147

Gruß,
Beate


  

Betrifft: AW: Ergänzend zu erwähnen von: daniel
Geschrieben am: 24.04.2008 19:55:07

Danke für die vielen antworten die Varinate von beate find ich am elegantesten das problem sie funktioniert nicht die sub die ich aufrufen will werden nicht gestartet. Woran kann das liegen?


Dim sTest As String
On Error Resume Next
sTest = ThisWorkbook.Sheets("VP-BIB").Name
If Err = 0 Then
Call BIB
End If


  

Betrifft: Bei mir geht's von: Beate Schmitz
Geschrieben am: 24.04.2008 20:03:51

Hallo Daniel,

ich habe es getestet und bei mir funktioniert es. Hier die beiden Makros:

Public Sub Daniel()
    Dim sTest As String
    On Error Resume Next
    sTest = ThisWorkbook.Sheets("VP-BIB").Name
    If Err = 0 Then
        Call BIB
    End If
End Sub

Sub BIB()
    MsgBox "Hallo"
End Sub



Beide musst du in ein Modul einfügen und das Makro Daniel aufrufen.
Die MsgBox mit "Hallo" kannst du nur sehen, wenn die Datei ein Blatt mit dem Namen VP-BIB existiert.

Gruß,
Beate


  

Betrifft: AW: Bei mir geht's von: Gerd L
Geschrieben am: 24.04.2008 21:06:01

Hallo zusammen,

so ist es etwas flexibler einsetzbar.

Sub test()

If SheetExists("Tabelle3") then Call MyMakro

End Sub



Public Function SheetExists(strName As String) As Boolean
	On Error Resume Next
	SheetExists = Not Sheets(strName) Is Nothing
End Function



Gruß Gerd


  

Betrifft: AW: Bei mir geht's von: daniel
Geschrieben am: 25.04.2008 10:26:31

Ok bei mir geht es auch allerdings nur wenn ich den code direkt in das entsprechende excelsheet einfüge. Ich will es allerdings als addin für verschiedene Excelsheets verfügbar machen - ein entsprechendes addin habe ich auch schon geschrieben aber aus dem addin führt er das makro mit der schleife nicht mehr aus??????? woran kann das denn liegen

Ich hänge noch mal den code an wie er bei mir aussieht


Public Sub Löschen()
Dim sTest As String
On Error Resume Next
sTest = ThisWorkbook.Sheets("VP-BIB").Name
If Err = 0 Then
Call BIB
End If
sTest = ThisWorkbook.Sheets("VP-BIC").Name
If Err = 0 Then
Call BIC
End If


und so weiter

Der Aufruf wird aber jetzt nicht mehr ausgeführt?????


  

Betrifft: AW: Bei mir geht's von: daniel
Geschrieben am: 25.04.2008 10:43:32

habs problem gelöst vielen dank für eure hilfe.

gruß daniel


 

Beiträge aus den Excel-Beispielen zum Thema "wenn arbeitsblatt vorhanden makro ausführen"