Herbers Excel-Forum - das Archiv

Makro aktivieren über Add In!?

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
Excel-Beispiele zum Thema "Makro aktivieren über Add In!?"
Beim Aktivieren einer CheckBox Häkchen in Zelle eintragen Menüpunkt SPEICHERN deaktivieren
10 UserForm-CheckBoxes als Serie aktivieren Beim Öffnen PowerPoint starten und danach Mappe aktivieren
Aktivieren mehrerer CheckBoxes unterbinden Deaktivieren und Aktivieren von Drag&Drop
Menüpunkt bei Aktivieren einer Mappe erstellen Menüpunkt "Zellen einfügen..." im Kontextmenü deaktivieren
Das Extras-Menü aktivieren/deaktivieren Bei Aktivieren eines Arbeitsblattes ComboBox neu einlesen