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!?"