Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Inhalt von L2 automatisch (!) beim Ändern oder vorm Drucken in CenterFooter schreiben

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Inhalt von L2 automatisch (!) beim Ändern oder vorm Drucken in CenterFooter schreiben (1642 mal gelesen)
ArCADe-Spieler
Mitglied
Metallbautechniker


Sehen Sie sich das Profil von ArCADe-Spieler an!   Senden Sie eine Private Message an ArCADe-Spieler  Schreiben Sie einen Gästebucheintrag für ArCADe-Spieler

Beiträge: 251
Registriert: 05.12.2012

Win 10 64bit
Office 365 aber Excel 2013

erstellt am: 12. Okt. 2017 12:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Gemeinde,

wie üblich der Spruch am Anfang: ja, ich habe hier im Forum die mir über die Suche nach "Fußzeile" angezeigten Threads gelesen, aber nichts Passendes gefunden.

Und ja, auch Google habe ich bemüht ... daher stammen meine unten beschriebenen Ansätze.

Mein Problem: eine Arbeitsmappe mit ca. 25 Tabellen/Arbeitsblättern/Worksheets, eins heißt "Beschichtung" und dort soll der Benutzer in die Zelle L2 als Text die Auftragsnummer und die ProjektID eintragen (Format: 1.23456.17 PID2345601 oder so ähnlich).

Nun soll automatisch (! ... also möglichst ohne Knöpfchen-Drücken) entweder sofort beim Ändern des Zell-Inhalts der Inhalt mit vorangestelltem "Auftrags-Nr.: " in den mittleren Bereich der Fußzeile geschrieben werden oder aber spätestens, wenn per Strg+P die Druckvorschau aufgerufen wird.

Für die Variante beim Ändern schlägt Google vor, im VBA-Editor unter dem aktuellen VBAProject "Diese Arbeitsmappe" doppelt anzuklicken und folgenden Code einzufügen:

Code:
Private Sub Workbook_Change(ByVal Target As Excel.Range)
    Sheets("Beschichtung").PageSetup.CenterFooter = "Auftrags-Nr.: " & Sheets("Beschichtung").Range("L2").Text
End Sub

bzw.

Code:
Private Sub Workbook_Change(ByVal Target As Excel.Range)
    With ActiveSheet.PageSetup
        .CenterFooter = "Auftrags-Nr.: " & Sheets("Beschichtung").Range("L2").Text
    End With
End Sub

Für die Variante vorm Drucken liefert Google solche Sachen wie:

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Dim a As String
    a = Sheets("Beschichtung").Cells(2, 12)
        With ActiveSheet.PageSetup
            .CenterFooter = "&""Arial,Fett""&14" & a
        End With
End Sub

Funktioniert aber alles - auch nach Arbeitsmappe speichern, schließen und neu öffnen - leider nicht      

Das Einzige, was bisher funktioniert, ist die Einbindung in ein bereits vorher geschriebenes Sub ... aber da leider nur mit Klicken auf die zugehörige Schaltfläche und NICHT automatisch         :

Code:
' Druckbereich definieren

Sub Sub99_Druckbereich_definieren_Klicken()
   
    Dim Ziel As Integer 'Variable Ziel als Ganzzahl -32768 bis 32767 definieren
    Ziel = Sheets("Beschichtung").Cells(6, 12) 'gespeicherte oder eingetragene aktuelle Einfügezeile von "Beschichtung" holen
    If Ziel > 12 Then 'sicherstellen, dass es schon eine Tabelle zum Drucken gibt
        Sheets("Beschichtung").PageSetup.PrintArea = Sheets("Beschichtung").Range("A12:G" & Ziel - 1).Address 'Druckbereich A12 bis G vor der neuen Einfügezeile definieren
        Sheets("Beschichtung").PageSetup.CenterFooter = "Auftrags-Nr.: " & Sheets("Beschichtung").Range("L2").Text
    End If

End Sub


Da diese händische Druckbereichs-Definition aber normalerweise gar nicht notwendig ist (wird in den anderen Subs nebenbei erledigt), ist diese Lösung doof.

Hat einer der VBA-Gurus hier eine Idee, warum das automatische Übertragen nicht funktioniert ?

Danke für Euer Gehirnschmalz schon mal im Voraus      

Gernot

PS: was mir gerade noch einfällt: diese Eintragung in der Fußzeile ist nur für Ausdrucke aus dem Tabellenblatt "Beschichtung" notwendig ... bei den anderen kann, muss sie aber nicht erfolgen

und
PPS: hm, theoretisch könnte ich die entsprechende Zeile auch in jedes der anderen Subs im Bereich der dortigen Druckbereichs-Definition einfitzeln, aber eleganter wäre halt die Variante mit der automatischen Übertragung    

[Diese Nachricht wurde von ArCADe-Spieler am 12. Okt. 2017 editiert.]

[Diese Nachricht wurde von ArCADe-Spieler am 13. Okt. 2017 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bernd P
Ehrenmitglied V.I.P. h.c.
cook-general



Sehen Sie sich das Profil von Bernd P an!   Senden Sie eine Private Message an Bernd P  Schreiben Sie einen Gästebucheintrag für Bernd P

Beiträge: 3358
Registriert: 07.06.2001

erstellt am: 12. Okt. 2017 13:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ArCADe-Spieler 10 Unities + Antwort hilfreich

Servus,
Google:excel fußzeile aus zelle Ergebnis

Stimmt rennt bei mir auch nicht richtig, wobei es in einem Modul funktioniert.

------------------
<----- Bitte Systeminfo eintragen, warum siehst du hier. Schöne Grüsse aus der Steiermark  Bernd P.

[Diese Nachricht wurde von Bernd P am 12. Okt. 2017 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ArCADe-Spieler
Mitglied
Metallbautechniker


Sehen Sie sich das Profil von ArCADe-Spieler an!   Senden Sie eine Private Message an ArCADe-Spieler  Schreiben Sie einen Gästebucheintrag für ArCADe-Spieler

Beiträge: 251
Registriert: 05.12.2012

Win 10 64bit
Office 365 aber Excel 2013

erstellt am: 12. Okt. 2017 14:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd,

wie geschrieben: Google habe ich bemüht und unter anderem auch genau diese Seite gefunden und in meinen kläglich gescheiterten Versuchen mit ActiveSheet<->Sheets("Beschichtung"), .Value<->.Text, "Auftrags-Nr.: " & Sheets("Beschichtung").Range("L2")<->"Auftrags-Nr.: " & Range("L2")"<->Range("L2") ausprobiert.

Als Bestandteil eines per Mausklick auf die verknüpfte Schaltfläche aufgerufenen Subs in einem Modul klappt es, aber automatisch als Private Sub in "Diese Arbeitsmappe" wird's nichts  

Gernot

hm, unfair  einfach während ich meine Antwort schreibe Deinen Post zu editieren

[Diese Nachricht wurde von ArCADe-Spieler am 12. Okt. 2017 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 12. Okt. 2017 16:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ArCADe-Spieler 10 Unities + Antwort hilfreich

Das hier in Dein sheet "Beschichtung":
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
For i = 1 To Worksheets.Count
    Worksheets(i).Activate
    With ActiveSheet.PageSetup
      .CenterFooter = "Auftrags-Nr.: " & Sheets("Beschichtung").Range("L2").Text
    End With
Next i
End Sub

HTH

PS: Bitte noch die Nachteile des Worksheet.change-Ereignis ergoogeln, haben wir auch im Forum Lösungen für, es bremst die Mappe aus, der auf Änderung zu überwachende Bereich kann (und sollte) eingeschränkt werden. Überlasse ich heute ausnahmsweise aber aus Zeitgründen Dir 

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ArCADe-Spieler
Mitglied
Metallbautechniker


Sehen Sie sich das Profil von ArCADe-Spieler an!   Senden Sie eine Private Message an ArCADe-Spieler  Schreiben Sie einen Gästebucheintrag für ArCADe-Spieler

Beiträge: 251
Registriert: 05.12.2012

Win 10 64bit
Office 365 aber Excel 2013

erstellt am: 12. Okt. 2017 17:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Ritter Runkelrübe,

im Stress ohne den Code vorher im Kopf nachzuvollziehen in Beschichtung kopiert und Strg+P gedrückt und nach etlichen Sekunden etwas ratlos auf die Druckvorschau des letzten Tabellenblattes (nicht "Beschichtung") mit korrektem CenterFooter geschaut    

Dann händisch - weil Makro - alles wieder zurückgeändert    

Code angeschaut und letztendlich - vorerst - dies draus geschnitzt und in "Beschichtung" abgelegt:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Beschichtung").PageSetup.CenterFooter = "Auftrags-Nr.: " & Sheets("Beschichtung").Range("L2").Text
End Sub

Funktioniert - daher trotzdem die 10 Unities an Dich.

Wichtigste Unterschiede zu den obigen Versuchen:

- Ablage in dem Tabellenblatt, wo's tatsächlich die zu überwachende Zelle gibt und wo ich die Änderung der Fußzeile brauche
- Worksheet_Change anstelle von Workbook_Change
- Range anstelle von Excel.Range

Leider bin ich - was Excel-VBA betrifft - nach wie vor ein ziemlicher Laie und verstehe viele Sachen, die ich mir da so zusammenstoppele selbst dann nicht vollständig, wenn sie funktionieren    

Daher dann - auch eingedenk der für mich kryptischen Warnung über Nachteile von Worksheet_Change-Ereignissen (und heute keine Zeit mehr zum googeln) - ein Versuch mit BeforePrint, der erwartungsgemäß nicht funktionierte    

Code:
Private Sub Worksheet_BeforePrint(Cancel As Boolean)
Sheets("Beschichtung").PageSetup.CenterFooter = "Auftrags-Nr.: " & Sheets("Beschichtung").Range("L2").Value
End Sub

Vielleicht kann mir da ja morgen noch jemand einen Tip geben.

Bis dahin

Gernot

PS: tut mir Leid, die Unities-Felder führen ALLE bei mir nur zu einer Fehlermeldung ... fühle Dich also erstmal nur symbolisch bedankt.

[Diese Nachricht wurde von ArCADe-Spieler am 12. Okt. 2017 editiert.]

[Diese Nachricht wurde von ArCADe-Spieler am 13. Okt. 2017 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 12. Okt. 2017 18:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ArCADe-Spieler 10 Unities + Antwort hilfreich

o_O ist google real? 

Zitat:
Nun soll automatisch (! ... also möglichst ohne Knöpfchen-Drücken) entweder sofort beim Ändern des Zell-Inhalts der Inhalt mit vorangestelltem "Auftrags-Nr.: " in den mittleren Bereich der Fußzeile geschrieben werden oder aber spätestens, wenn per Strg+P die Druckvorschau aufgerufen wird.

Aufgabe:
<wenn L2 then>

und falls untenstehendes die Lösung ist, muss ich anmerken, das war jetzt abartig viel Text für eine Problembeschreibung :-)

Code:
Sub Worksheet_Change(ByVal Target As Excel.Range)

If Target.Address = "$L$2" Then
Sheets("Beschichtung").PageSetup.CenterFooter = "Auftrags-Nr.: " & Sheets("Beschichtung").Range("L2").Text
End If

End Sub



Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ArCADe-Spieler
Mitglied
Metallbautechniker


Sehen Sie sich das Profil von ArCADe-Spieler an!   Senden Sie eine Private Message an ArCADe-Spieler  Schreiben Sie einen Gästebucheintrag für ArCADe-Spieler

Beiträge: 251
Registriert: 05.12.2012

Win 10 64bit
Office 365 aber Excel 2013

erstellt am: 13. Okt. 2017 09:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Guten Morgen zusammen,

Zitat:
Original erstellt von Thomas Harmening:
und falls untenstehendes die Lösung ist, muss ich anmerken, das war jetzt abartig viel Text für eine Problembeschreibung :-)

ich versuchte nur, die sonst allzu häufig aufkommende Klage über zu wenig Information über die Problemstellung und die bisher vorgenommenen Lösungsversuche zu vermeiden und außerdem schreibe ich gern detailiert und versuche sehr korrekt zu formulieren  :)

Zitat:

Code:
Sub Worksheet_Change(ByVal Target As Excel.Range)

If Target.Address = "$L$2" Then
Sheets("Beschichtung").PageSetup.CenterFooter = "Auftrags-Nr.: " & Sheets("Beschichtung").Range("L2").Text
End If

End Sub




hm, der Vorschlag von Runkelrübe hatte mich ja schon auf einen funktionierenden Lösungsansatz gebracht, den ich in meinem Post über dem Deinen auch ... gepostet hatte, wozu jetzt also die If-Abfrage ? ... Ah, ist dies die von Runkelrübe angesprochene Eingrenzung des zu überwachenden Bereichs ?!

Manchmal ist ein bisschen mehr Text ... in diesem Fall eine kleine Erläuterung zu Deinem Code ... eben doch besser - wie gesagt, ich bin VBA-Laie.

BTW ... durch meine (von mir selten angewendete) Antwort mit Zitat weiß ich nun, wie diese nützliche Code-Darstellung entsteht und bin zugleich über über das "Code"-Link-Symbol links und das dort fehlende unterstreichen gestolpert.

Da ich verstehe, dass die permanente Ereignis-Überwachung  die Tabelle langsamer macht (selbst wenn der Bereich eingegrenzt ist), würde ich ja durchaus gern eine Lösung für "vorm Drucken", also beim Drücken von Strg+P, realisieren. Mein Versuch von gestern funktioniert leider nicht - warum ? Hat jemand einen Tip für mich ?

Unities funktionieren leider immer noch nicht.

Grüße

Gernot

[Diese Nachricht wurde von ArCADe-Spieler am 13. Okt. 2017 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 13. Okt. 2017 14:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ArCADe-Spieler 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von ArCADe-Spieler:
würde ich ja durchaus gern eine Lösung für "vorm Drucken", also beim Drücken von Strg+P, realisieren.

ich bin ja nicht so der Erklärbär :-) Wenn L2 then wäre aus meiner Sicht eine ausreichende Erklärung des Codes :-)

zur Vorschau

mit dem Wechsel auf die Ribbons gibt es die klassische Seitenansicht nimmer, nur noch per VBA

Code:
Sheets("Beschichtung").PrintPreview

Strg&P = Druckvorschau ab Xl 2010
mit dem Klick auf Drucken, erst jetzt Sub Workbook_BeforePrint(Cancel As Boolean)...

wenn man STRG&P umbiegen könnte aka

Code:
Private Sub Workbook_Open()
Application.OnKey "^p", "Test" 'ummappen des Shortcuts STRG&P Das Makro Test mit [Strg] + [p] starten
End Sub

Code:
Sub Test()
Sheets("Beschichtung").PageSetup.CenterFooter = "Auftrags-Nr.: " & Sheets("Beschichtung").Range("A1").Text
Sheets("Beschichtung").PrintPreview '-alte Vorschau
MsgBox "Ich werde Gedruckt!"
ActiveSheet.PrintOut 'hier wird gedruckt... (ohne vorschau:-))
End Sub

Aber ich befürchte das MS-seitige Shortcuts nicht ohne weiteres umgemappt werden können.
es geht - bezogen auf "aber spätestens, wenn per Strg+P die Druckvorschau aufgerufen wird." Aber halt nur mit der guten alten Druckvorschau :-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ArCADe-Spieler
Mitglied
Metallbautechniker


Sehen Sie sich das Profil von ArCADe-Spieler an!   Senden Sie eine Private Message an ArCADe-Spieler  Schreiben Sie einen Gästebucheintrag für ArCADe-Spieler

Beiträge: 251
Registriert: 05.12.2012

Win 10 64bit
Office 365 aber Excel 2013

erstellt am: 13. Okt. 2017 14:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

grrrrr, irgendwie scheint meint Ziel nicht klar rüberzukommen : ich will den Inhalt der Zelle L2 (Text) vom Tabellenblatt "Beschichtung" mit vorangestelltem "Auftrags-Nr.: " im mittleren Bereich der Fußzeile stehen haben ... auf dem Ausdruck vom Tabellenblatt "Beschichtung" ... wann und wie der dahinkommt, ist mir ziemlich egal.

Runkelrübes Hinweis hat für mich die automatische Übergabe zum Zeitpunkt des Druckens attraktiver gemacht als die permanente Überwachung (für die hier ja schon ein auch bei mir funktionierendes Code-Schnipselchen erarbeitet wurde).

Wenn ich (mit Excel 2013 und Sch***-Ribbon-Leisten) Strg+P drücke, kommt automatisch ein, das Excel-Fenster überdeckendes Fenster mit Druckerauswahl und Druckereinstellungen auf der linken Seite und einer Druckvorschau auf der rechten Seite ... ist also NICHT mein Thema  

So langsam komme ich mir vor wie Werner mit dem Lichtschalter im Krankenhaus  

Schöntz WE

Gernot

PS: hm, o.k. nachdem ich das Druck-Icon in die Schnellstart-Leiste gefitzelt hatte, da ich das klassische Drucken in den Ribbon-Leisten (geschlagen sei ihre Erfinderin) nicht gefunden habe, stellte ich nun fest, das beim Drucken über dieses Icon mein BeforePrint-Sub zumindest aufgerufen wird (nun wiederum aber wegen anderer inzwischen testweise eingefügter Zeilen nicht mehr läuft) was beim Drucken über Strg+P gar nicht passierte ... für den Moment mache ich erstmal Wochenende und gehe klettern  ...ach so, hier noch der aktuelle Code (der wegen irgendwelchen Problemen bei Orientation abbricht):

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    With ActiveSheet.PageSetup
        .Orientation = xlPortait
        .PaperSize = xlPaperA4
    End With
   
    If ActiveSheet.Name = "Beschichtung" Then
        ActiveSheet.PageSetup.CenterFooter = ("Auftrags-Nr.: " & Range("L2"))
    End If
End Sub

und wo ich gerade so darüber nachdenke ... vielleicht wäre ja dann doch irgendwie mein Thema, auch wenn ich noch nicht so ganz durchschaue wie 

Mittlerweile liebäugele ich tatsächlich mit der Einfügung der einen Zeile in alle anderen Subs, um die Ereignis-Überwachung zu vermeiden ... es sei den, es findet sich noch eine Lösung für Strg+P.

Nochmals: Schöntz WE

Gernot

[Diese Nachricht wurde von ArCADe-Spieler am 13. Okt. 2017 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 13. Okt. 2017 14:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ArCADe-Spieler 10 Unities + Antwort hilfreich

Moin,

>> Dann händisch - weil Makro - alles wieder zurückgeändert   

Beim nächsten Mal: Vor Makro speichern, nach Makro schließen ohne speichern ;-)
Aber Strafe für's unbesehen kopieren und ausführen muß sein       

Hatte mich auf Deine Ursprungsfrage bezogen: ALLES sheets sollen diese Fußzeile bekommen.

Viel Beschreibung ist OK!

Die If-Schleife dient dem Verlassen der Sub, wenn die Änderung nicht in L2 stattfand, ja.
Bei mehr als einer Zelle verwenden viele die INTERSECT-Methode.
https://msdn.microsoft.com/de-de/VBA/Excel-VBA/articles/application-intersect-method-excel

Code:
If [Not] Intersect(Target, Range("A1:C1")) Is Nothing Then [Exit Sub]


BeforePrint ist ein Ereignis des WorkBOOKS        Das gehört also in "Diese Arbeitsmappe"

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Sheets("Beschichtung").PageSetup.CenterFooter = "Auftrags-Nr.: " & Sheets("Beschichtung").Range("L2").Text
End Sub

Du kannst nicht einfach Ereignisse kopieren und selbst benennen. Achte auf die Dropdownfelder oderhalb des Codebereichs, die bieten die möglichen vorgefertigten Ereignisse des jeweiligen Bereichs an. Selber welche erfinden, ich denke, soweit sind wir noch nicht^^


Zum OT:

Das fehlende Unterstreichen in den ubb-codes ist kein bug        Das wurde auf vielfachen Wunsch alternder Menschen wieder entfernt, da wir mit dem Grundsatz "Unterstrichenes im internet sind links" groß wurden und dort immer ebenso zwanghaft wie unerfolgreich draufklickten.        Bitte daher auch nicht benutzen, danke.

Unities: scriptblocker, der HTTP-Referer verhindert? CAD.de muß wissen, dass Du wirklich aus dem thread heraus auf die Unitiebuttons geklickt hast und benötigt daher die Informationen. Es wäre sowieso wünschenswert, ihr würdet CAD.de zu den Ausnahmen in euren jeweiligen Was-auch-immer-Blockern hinzuzufügen       
HTH und schönes Wochenende       

[rredit] Oh, Zwischenantworten...
Das Ereignis wird noch nicht durch die Vorschau ausgelöst, sondern wirklich erst BeforePrint, das hast Du aber berücksichtigt, ja? Ein BeforeAnguck ist mir nicht bekannt.

Pro-Tipp: Nimm nen PDF-Drucker zum Testen^^

Thomas hat oben noch was ergänzt. Für meinen Geschmack eine recht große Kanone für diesen Spatz, aber ich geb's an dieser Stelle auf und gucke vielleicht morgen nochmal, was dann da bei allen Beteiligten steht. 
------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ArCADe-Spieler
Mitglied
Metallbautechniker


Sehen Sie sich das Profil von ArCADe-Spieler an!   Senden Sie eine Private Message an ArCADe-Spieler  Schreiben Sie einen Gästebucheintrag für ArCADe-Spieler

Beiträge: 251
Registriert: 05.12.2012

Win 10 64bit
Office 365 aber Excel 2013

erstellt am: 13. Okt. 2017 15:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Doch nochmal hallo (Mensch, meine kleine Schwester wartet schon bei der Kletterhalle   ),

Zitat:
Original erstellt von runkelruebe:
Moin,

>> Dann händisch - weil Makro - alles wieder zurückgeändert    

Beim nächsten Mal: Vor Makro speichern, nach Makro schließen ohne speichern ;-)
Aber Strafe für's unbesehen kopieren und ausführen muß sein     



jaja, hab's ja eingesehen   :)
Zitat:
Hatte mich auf Deine Ursprungsfrage bezogen: ALLES sheets sollen diese Fußzeile bekommen.

KÖNNEN ... wirklich brauchen tue (iikse, was für ein schlechtes Deutsch) ich sie nur bei Ausdrucken vom Tabellenblatt "Beschichtung"
Zitat:
Viel Beschreibung ist OK!

oh danke, ich dachte schon ich hätte da irgendwas übersehen ... ist dann wohl eher (nur) eine Befindlichkeit von Thomas   ;)
Zitat:
Die If-Schleife dient dem Verlassen der Sub, wenn die Änderung nicht in L2 stattfand, ja.
Bei mehr als einer Zelle verwenden viele die INTERSECT-Methode.
https://msdn.microsoft.com/de-de/VBA/Excel-VBA/articles/application-intersect-method-excel
Code:
If [Not] Intersect(Target, Range("A1:C1")) Is Nothing Then [Exit Sub]


begriffen, danke
Zitat:
BeforePrint ist ein Ereignis des WorkBOOKS      Das gehört also in "Diese Arbeitsmappe"

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Sheets("Beschichtung").PageSetup.CenterFooter = "Auftrags-Nr.: " & Sheets("Beschichtung").Range("L2").Text
End Sub

Du kannst nicht einfach Ereignisse kopieren und selbst benennen. Achte auf die Dropdownfelder oderhalb des Codebereichs, die bieten die möglichen vorgefertigten Ereignisse des jeweiligen Bereichs an. Selber welche erfinden, ich denke, soweit sind wir noch nicht^^



der Witz ist, dass man auch zu Worksheet_BeforePrint Sachen ergoogeln kann und dort keinerlei Fehleransage erhält ... einzig den Umzug vom Tabellenblatt in "DieseArbeitsmappe" hatte ich wegen der Workbook-Eigenschchaft schon entdeckt und vollzogen
Zitat:
Zum OT:

Das fehlende Unterstreichen in den ubb-codes ist kein bug      Das wurde auf vielfachen Wunsch alternder Menschen wieder entfernt, da wir mit dem Grundsatz "Unterstrichenes im internet sind links" groß wurden und dort immer ebenso zwanghaft wie unerfolgreich draufklickten.      Bitte daher auch nicht benutzen, danke.



verstehe ich, und kann es nachvollziehen   :D    ... und werde mich dran halten
Zitat:
Unities: scriptblocker, der HTTP-Referer verhindert? CAD.de muß wissen, dass Du wirklich aus dem thread heraus auf die Unitiebuttons geklickt hast und benötigt daher die Informationen. Es wäre sowieso wünschenswert, ihr würdet CAD.de zu den Ausnahmen in euren jeweiligen Was-auch-immer-Blockern hinzuzufügen     

hab "nur" ABP am Start und cad.de als Domain in den Ausnahmen ... na macht nichts, ich probiere es später mal von zuhause aus ... da kann ich am Rechner soviel rum-verstellen wie ich will  
Zitat:

HTH und schönes Wochenende     

[rredit] Oh, Zwischenantworten...
Das Ereignis wird noch nicht durch die Vorschau ausgelöst, sondern wirklich erst BeforePrint, das hast Du aber berücksichtigt, ja? Ein BeforeAnguck ist mir nicht bekannt.

Pro-Tipp: Nimm nen PDF-Drucker zum Testen^^



  ... "natürlich" bin ich zum Papier-sparen immer nur bis zur Voransicht gegangen und habe dann frustriert mit Escape abgebrochen ... mit diesem -->entscheidenden<-- Hinweis habe ich jetzt auch wirklich mal gedruckt und siehe da :D ... ist aber doof, da viele Nutzer hier eben diese Voransicht akribisch prüfen und dann eben nicht Drucken ... scheint mehr und mehr auf die Verteilung der Zeile
Code:
Sheets("Beschichtung").PageSetup.CenterFooter = "Auftrags-Nr.: " & Sheets("Beschichtung").Range("L2") 'mittleren Bereich der Fußzeile befüllen
in allen Subs hinauszulaufen

und wech  

so, neue Woche - neues Glück ... hab's nun in die letztendlich überraschender Weise (auch für mich selbst, obwohl ich das Ganze selbst geschrieben habe) nur 4 relevanten Subs eingefügt ... all die anderen sind "nur" Steuerungs- und Verteilungs-Subs

Und damit sage ich mal - auch wenn es nicht ganz so endet, wie ich es mir erhofft hatte - fertig !

[Diese Nachricht wurde von ArCADe-Spieler am 16. Okt. 2017 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz