Makro aktivieren über Add In!?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Makro aktivieren über Add In!?
von: Andre
Geschrieben am: 24.03.2005 08:35:07
Hallo alle zusammen,
Ich habe folgendes Makro, dass eine Kopie auf Tabellenblatt "Kopie" erstellt.


Private Sub Workbook_BeforeClose(Cancel As Boolean)
 
    Sheets("Kopie").Select
    Rows("4:5").Select
    ActiveSheet.Unprotect
    Selection.Insert Shift:=xlDown
    Range("A4").Select
    Sheets("Schichtbericht").Select
    Range("A19:D20").Select
    Selection.Copy
    Sheets("Kopie").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    
    If Range("A60000") <> "" Then
    Range("A10000:D60000").Delete Shift:=xlUp
    End If
    
    Range("A1").Select
    Application.CutCopyMode = False
    ActiveSheet.Protect
    Sheets("Schichtbericht").Select
    Range("P19:S19").Select
 
End Sub

Nun ist es sehr oft vorgekommen, dass die Makros nicht aktiviert wurden. Ist es möglich, ein Add In zuerstellen, wo die Abfrage kommt: Beginnt die zu offnende Exel Datei mit Schichtbericht o.ä., dann aktiviere die Makros ohne zu bestätigen. Beginn Abfrage deshalb, weil die Datei immer mit laufendem Datum versehen und gespeichert wird.
Bild

Betrifft: AW: Makro aktivieren über Add In!?
von: Harald E
Geschrieben am: 24.03.2005 09:49:37
Hallo Andre
das Add-In muss ja auf jedem PC aktiviert werden. Die Abfrage, ob es sich um die Datei Schichtbericht xy handelt würde ich folgendermaßen in die PrivateSub einbinden.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Dim n As String
n = ActiveWorkbook.Name
On Error GoTo ende
If n Like "Schichtbericht*.xls" Then
    Sheets("Kopie").Select
    Rows("4:5").Select
    ActiveSheet.Unprotect
etc.
'ggf. noch ein else: exit sub
End If
ende:
End Sub

Gruß
Harald
Bild

Betrifft: AW: funktioniert nicht
von: Andre
Geschrieben am: 24.03.2005 10:33:18
Hallo Harald,
ich habe den Code in "DieseArbeitsmappe" und in Exel Start als Add In gespeichert. Leider funktioniert es nicht. Vielleicht liegt es an der else: exit sub, aber wie müste es geschrieben werden. Kannst du mir bitte weiter helfen.
Danke im vorraus!
Bild

Betrifft: AW: funktioniert nicht
von: Harald E
Geschrieben am: 24.03.2005 11:03:31
Andre,
zuerst mal. Welche Fehlermeldung kommt denn ?
Für die else exit sub end if - Geschichte auszuschliessen. Lösch diesen Teil aus dem Code und schreib in händisch (als Dreizeiler ohne Doppelpunkt) wieder hinein.
else
exit sub
end if
oder lass ihn ganz weg ;-))
Gruß
Harald
Bild

Betrifft: AW: keine Fehlermeldung Mokro wird nicht gestartet
von: Andre
Geschrieben am: 24.03.2005 11:36:18
Hallo Harald,
eine Fehlermeldung wird nicht angezeigt, so habe ich den Code unter Add In gespeichert.
Schreibe mir doch bitte wie du es anders machen würdest.
Danke!

Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Dim n As String
n = ActiveWorkbook.Name
On Error GoTo ende
If n Like "Schichtbericht.xls" Then
    Sheets("Kopie").Select
    Rows("4:5").Select
    ActiveSheet.Unprotect
    Selection.Insert Shift:=xlDown
    Range("A4").Select
    Sheets("Schichtbericht").Select
    Range("A19:D20").Select
    Selection.Copy
    Sheets("Kopie").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    
    If Range("A60000") <> "" Then
    Range("A10000:D60000").Delete Shift:=xlUp
    End If
    
    Range("A1").Select
    Application.CutCopyMode = False
    ActiveSheet.Protect
    Sheets("Schichtbericht").Select
    Range("P19:S19").Select
'ggf. noch ein else: exit sub
'End If
'ende:
End Sub

Bild

Betrifft: AW: keine Fehlermeldung Mokro wird nicht gestartet
von: Harald E
Geschrieben am: 24.03.2005 12:31:11
OK...ich glaub es hing am Sternchen und am auskommentierten End If
Habs mal korrigiert. Das Sternchen hinter Schichtbericht besagt, dass hinter Schichtbericht noch irgendwas stehen kann. Ohne Sternchen sucht er streng nach Schichtbericht.xls. Klar das er da direkt aufgehört hat.
Hochkomma vor End If kommentiert die Zeile aus. Das wäre die nächste Fehlermeldung geworden (If-Block ohne End If)

Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Dim n As String
n = ActiveWorkbook.Name
On Error GoTo ende
If n Like "Schichtbericht*.xls" Then
    Sheets("Kopie").Select
    Rows("4:5").Select
    ActiveSheet.Unprotect
    Selection.Insert Shift:=xlDown
    Range("A4").Select
    Sheets("Schichtbericht").Select
    Range("A19:D20").Select
    Selection.Copy
    Sheets("Kopie").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    
    If Range("A60000") <> "" Then
    Range("A10000:D60000").Delete Shift:=xlUp
    End If
    
    Range("A1").Select
    Application.CutCopyMode = False
    ActiveSheet.Protect
    Sheets("Schichtbericht").Select
    Range("P19:S19").Select
'ggf. noch ein else: exit sub
End If
ende:
End Sub

Das kriegen wir schon hin ;-))
Harald
Bild

Betrifft: AW: geht nicht
von: Andre
Geschrieben am: 24.03.2005 13:47:04
Hallo Harald, genau wie du hatte ich es in Exel Start unter Add In gespeichert. Funktioniert leider nicht. Ich vermute, dass noch ein Befehl kommen muss, damit die Prozetur läuft, blos welcher!?
Bild

Betrifft: AW: geht nicht
von: Harald E
Geschrieben am: 24.03.2005 14:02:20
Momentmal....ich versteh nur XLstart und AddIn.
Solltest Du das Ding als Addin speichern (leere Mappe mit Modul unter *.xla),steckt Excel die sofern Du nichts änderst in diesen Ordner
Anwendungsdaten/Office/AddIns
XLStart, ist lediglich eine zusätzliche Startdatei, die beim Excelstart mit geöffnet wird. Das ist nicht das Gleiche wie ein Add-In.
Add-Ins bindest Du über den Addins-Manager ein und nicht über zusätzliche Startordner.

Sub test()
 Dim n As String
n = ActiveWorkbook.Name
On Error GoTo ende
If n Like "Schichtbericht*.xls" Then
msgbox "Treffer"
else
msgbox "Das wars noch nicht"
end if
End Sub

Das da ist mal kurz aus dem Handgelenk, damit Du testen kannst, ob er überhaupt den Dateinamen akzeptiert.
Also entweder du speicherst das Modul im zusätzlichen Startordner als xls, oder als AddIn (*.xla) und bindest per Manager ein.
Mach hin...ich hab um 14.30 Feierabend ;-)))
Harald
Bild

Betrifft: AW: evtl. bis Dienstag
von: Andre
Geschrieben am: 24.03.2005 14:28:52
Hallo Harald, werde es probieren, falls es nicht klappt werde ich Dienstag ab 9:00 nochmals ins Forum gehen.
Tausend Dank für deine Mühe!!!
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Makro aktivieren über Add In!?"