Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
596to600
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
596to600
596to600
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

makro zuweisen

makro zuweisen
11.04.2005 10:38:04
niki
hallo forum,
mir wurde heute schon gut geholfen, (s.u), ich erhielt ein makro für pfad in kopfzeile, mein problem ist nun, wie kann ich dieses makro immer verfügbar machen...hab es bereits in der persönlichen mappe gespeichert, aber bei makro zuweisen (einem symbol in der menü leiste) finde ich kein makro ? Was mach ich denn falsch?

Private Sub Workbook_BeforePrint(Cancel As Boolean)
ActiveSheet.PageSetup.CenterFooter = ThisWorkbook.FullName & "\" & ActiveSheet.Name
End Sub

Dieses makro möchte ich also in der symbolleiste unterbringen, sodass es bei jedem öffnen einer neuen mappe oder alten, bereits gespeicherten, verfügbar und anwendbar ist..bitte um hilfe, schaffs nicht...danke

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: makro zuweisen
11.04.2005 10:44:27
Tobias
Servus niki,
Was du vorhast, ist nicht so trivial, wie es aussieht. Die erste Zeile deines Codes besagt naemlich: Fuehre das Makro aus, wenn drucken gedrueckt wurde, aber noch bevor der Druck-Dialog erscheint. Das Problem ist, dass dies kein allgemein verfuegbares Makro ist, da es sich auf eine bestimmte Workbook-Prozedur bezieht. Dir bleibt also nichts anderes uebrig, als den Code in jede Arbeitsmappe zu kopieren... leider :-(

Gruss

Tobias
AW: makro zuweisen
11.04.2005 11:02:12
niki
hallo und danke...also nicht so einfach...habs auch schon mit add in versucht, aber wenn ich die mappe wo das makro drinnen ist als xla datei speicher, und mit add in assistent einrichte, ist diese funktion immer noch nicht verfügbar...vielen dank für deine antwort, kann man wohl nix machen...
Anzeige
AW: makro zuweisen
11.04.2005 11:28:18
Heiko
Hallo niki,
was möchtest du denn haben.
Ein Makro das in der aktiven Arbeitsmappe den Kopftext anpaßt. Dann muss du doch nur die Codezeile in eine eigene Prozedur packen.

Sub KopfzeileAnpassen()
ActiveSheet.PageSetup.CenterFooter = ThisWorkbook.FullName & "\" & ActiveSheet.Name
End Sub

Diese Makro kannst du dann einem Button in der Symbolleiste zuweisen.
Oder Möchtest du vor jedem drucken eines beliebigen Arbeitsblattes die Kopftext anpassen (oder anpassen können, z.B. über Abfrage mit einer MSGbox). Dann mußt du mit Klassenmodulen arbeiten und Das Application WorkbookBeforePrint nutzen, siehe dazu diese Diskussion.
https://www.herber.de/forum/messages/596433.html

Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: makro zuweisen
11.04.2005 11:33:22
niki
hallo und danke für die antwort,
ich möchte jede arbeitsmappe und jedes tabellenblatt alter und neuer mappen mit nem makro ausstatten, das mir, wenn gedruckt wird, den vollständigen pfad dieser datei ausgibt (kopf oder fusszeile)
Wie muss ich deinen code unterbringen? modul klassenmodul kenn ich, aber wo füge ich als prozedur ein? entschuldige meiné geringen kenntnisse.
AW: makro zuweisen
11.04.2005 11:55:24
Heiko
Hallo niki,
hier mal als Ansatz.
https://www.herber.de/bbs/user/20968.xls
Den Code in deine Personl.xls und noch ein wenig erweitern, dann tut´s das was du möchtest.
Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: makro zuweisen
11.04.2005 12:38:46
niki
danke heiko für deinen geduld...muss wieder ganz allgemein werden, kenn ich selbst schon nicht mehr aus...mein wunsch ist nach dem drucken eines tabellenblatts rechts oben am papier das verzeichnis, den arbeitsmappennamen und name des tabellenblattes zu sehen...
optimal natürlich wenn mich eine msgbox noch fragt obs so sein soll (eh nicht immer)...
deinen code fürs klassenmodul hab ich in der personal.xls gespeichert, (in einem eingefügten klassenmodul), da tut sich nix...
wenn ich in einer neuen mappe auf drucken geh ist nichts am papier, hab wohl was falsch gemacht...meine vba kenntnisse sind gleich null...
Anzeige
AW: makro zuweisen
11.04.2005 12:46:27
Heiko
Hallo niki,
1. EXCEL neu starten, sonst wird diese Aktion nicht initialisiert.
2. Wenn das nicht hilft, gucken ob du Tippfehler drin hast. Z.B. wenn du in EXCEL ein neues Klassenmodul erzeugst nennt EXCEL das Klasse1, das mußt du umbennen in Class1 für meinen Code.
3. Probieren, probieren probieren ...
Wie sind denn nun deine Kenntnisse ? Du behauptest Klassenmodule kennst du, aber als Level gibst du kaum EXCEL/VBA Kenntnisse an.
Gruß Heiko

PS: Rückmeldung wäre nett !
...bin schon still..
11.04.2005 12:50:33
niki
hallo wieder, du ich hab kein "können", war ein mißverständnis, wenn ich gesagt hab ich kenn etwas...weiß nur wo man fertige sachen reinschreibt...aber du hast ganz recht, werd mich mehr auf lernen konzentrieren und dann bessere fragen stellen...probiern und üben und lesen...schönen tag...
Anzeige
AW: ...bin schon still..
11.04.2005 12:56:30
Heiko
Hallo niki,
hast du auch den Code aus "DieseArbeitsmappe" in die Personl.xls übertragen ?
Gruß Heiko

PS: Rückmeldung wäre nett !
ja hab ich...m.t
11.04.2005 13:08:30
niki
ja hab alles glaub ich soweit gemacht...
in personal.xl klassenmodul (umbenannt auf class1):
Option Explicit
Public WithEvents Appli As Application

Private Sub Appli_WorkbookBeforePrint(ByVal Wb As Workbook, Cancel As Boolean)
If MsgBox("Wollen Sie den Kopftext anpassen ?", vbYesNo, " Kopftextabfrage") = 6 Then
Wb.ActiveSheet.PageSetup.CenterFooter = ThisWorkbook.FullName & "\" & ActiveSheet.Name
End If
End Sub

in personal xl. diese arbeitsmappe:
Sub KopfzeileAnpassen()
ActiveSheet.PageSetup.CenterFooter = ThisWorkbook.FullName & "\" & ActiveSheet.Name
End Sub
aber es kommt vor dem drucken keine msgbox...hey echt vielen dank für deine zeit
Anzeige
AW: ja hab ich...m.t
11.04.2005 13:20:13
Heiko
Hallo
jetzt bringst du gerade meine 2 Vorschläge durcheinander.
Bitte dies in "DieseArbeitsmappe" der Personl.xls und das andere raus.
Dim claX As New Class1
' Die Funktion Appli (Application Ereignisse) initialisieren.

Private Sub Workbook_Open()
Set claX.Appli = Application
End Sub

Gruß Heiko

PS: Rückmeldung wäre nett !
AW: ja hab ich...m.t
11.04.2005 13:37:32
niki
hallo heiko,
also das wars...sorry, jetzt kommt die msgbox und es wird gefragt vor seitenansicht und drucken...allerallerletzte frage: der pfad verweist nun auf den xlstart ordner, da er ja von dieser mappe den code nimmt...wenn ich aber jetzt irgendeine mappe öffne, warum schreibt er mir dann nicht den entsprechenden speicherort rein, sondern stets xlstart ?
Anzeige
AW: ja hab ich...m.t
11.04.2005 13:44:33
Heiko
Hallo
mach aus dieser Zeile
Wb.ActiveSheet.PageSetup.CenterFooter = ThisWorkbook.FullName & "\" & ActiveSheet.Name
diese Zeile
Wb.ActiveSheet.PageSetup.CenterFooter = Wb.FullName & "\" & wb.ActiveSheet.Name
ungetestet.
Gruß Heiko

PS: Rückmeldung wäre nett !

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige