Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Suche Lösung in VBA
#51
Hi,

(25.06.2016, 08:52)schauan schrieb: Man könnte beim Ausdruck eventuell das letzte Blatt mit eigener Fußzeile ausgeben und dort die Unterscriftsangaben rein packen.

ok, so habe ich es jetzt mal gemacht, mal sehen, was sein Chef dazu meint.

.xlsb   Arbeitspaket - V2-5.xlsb (Größe: 27,54 KB / Downloads: 2)

Das Problem ist nun, daß es auf der ersten Seite fehlt, wenn es nur eine Seite ist.
Vielleicht könnte per VBA geprüft werden, ob alles auf eine Seite passt und dann den Unterschriftenbereich unten anhängen.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • ToXiC
Antworten Top
#52
Hallo Ralf,
Bin nur am Smartphone und kann mir den Code nicht anschauen bzw auch nichts großartig entwickeln Sad Bin daher dieser Tage keine große Hilfe...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#53
(25.06.2016, 08:41)Rabe schrieb:erster Satz:
Unterschriften-Zeile am Ende der zweiten Seite ist noch nicht gelöst.
Du meintest die Kopfzeile der Arbeitsschritte am oberen Ende der zweiten und den folgenden Seiten. Stimmt, das ist gelöst. Siehe ganz unten hier in dem Beitrag die Wiederholungszeilen.

Ja richtig, ich konnte das nicht mehr bearbeiten, da hatte schon jemand geantwortet.

Ich sehe mir das nochmal in Ruhe an, bin noch ein wenig im Stress.

Gestern gab es eine Leistungsbeurteilung und mir kam es zugute, dass ich dank Euch und meinem Einsatz Zuhause, auch privat weiterhin nach Lösungen suche.
Vielleicht wird mein Einsatz verlängert, das hoffe ich natürlch.

Edit: Das mit der Fußzeile habe ich auch schon probiert. Die Überschrift "Arbeitspaket abgeschlossen" muss ja auch noch da rein. Dann aber hat mir Excel gesagt, es sind zu viele Zeichen. Außerdem rutscht dann die Tabelle in die Fußnote, was auch nicht gewünscht ist. Es ist jetzt auch nicht schlimm, wenn man dafür keine Lösung bekommt. Notfalls lasse ich die Unterschriften-Zeile einfach immer "mitrutschen".
Antworten Top
#54
Hi,
(25.06.2016, 14:16)ToXiC schrieb: Edit: Das mit der Fußzeile habe ich auch schon probiert. Die Überschrift "Arbeitspaket abgeschlossen" muss ja auch noch da rein. Dann aber hat mir Excel gesagt, es sind zu viele Zeichen. Außerdem rutscht dann die Tabelle in die Fußnote, was auch nicht gewünscht ist. Es ist jetzt auch nicht schlimm, wenn man dafür keine Lösung bekommt. Notfalls lasse ich die Unterschriften-Zeile einfach immer "mitrutschen".

ich habe ja die xlsb angehängt, da ist das funktionierend drin.

Es reicht, wenn Du in der Fußzeile zwischen "Arbeitspaket abgeschlossen" und der Unterschriftenlinie eine einzelne leere Zeile entfernst.
Antworten Top
#55
Hm,

ich glaube nicht, dass mein Chef das so durchgehen lassen wird. Die Unterschrift kann ja entweder auf der ersten Seite stehen oder auf der zweiten.
Das "Arbeitspaket abgeschlossen" soll ja über den Unterschriften stehen, wobei Platz für die Unterschriften sein soll.

Ich sehe das ingesamt aber nur als ein optisches Manko. Ich werde noch ein wenig versuchen und eventuelle einfach erklären, dass es eben so nicht mal eben gemacht ist.
Solange dann die Unterschriften-Zeile immer am Ende steht, wird er auch hoffentlich zufrieden genug sein.
Antworten Top
#56
Edit geht leider nach kurzer Zeit nicht mehr, also muss ich mir mal wieder selbst antworten.

Ich möchte das nun anders machen. Die Idee, es über Fußzeile zu realisieren fand ich erstmal gut.
Also habe ich Google benutzt und folgenden VBA Code gefunden. Zunächst will ich ja realisieren, dass nur die jeweils letzte Seite eine Fußzeile enthält. Das kann die erste Seite sein, aber auch eine zweite Seite:


Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
       Dim lngZeile As Long
       Dim rng As Range
       Dim rngDruckbereich As Range
       Dim MultiPage As Boolean

       'Schleife verhindern
       Application.EnableEvents = False
       'Fehler abfangen --> EnableEvents wieder aktivieren
       On Error GoTo ErrorHandler
       'Druck abbrechen
       Cancel = True
       MultiPage = False
   With Worksheets("Tabelle1")
       'evtl vorhandenen Druckbereich entfernen
       .PageSetup.PrintArea = False
       'Untersten Seitenumbruch im genutzten Bereich des
       'Tabellenblattes ermitteln. Dazu alle Zeilen von unten nach oben prüfen
   For lngZeile = .UsedRange.Rows.Count To 1 Step -1
       'Wenn die Zeile einen Seitenumbruch enthält ...
   If .Rows(lngZeile).PageBreak <> xlPageBreakNone Then
       '... Zelle der Spalte A dieser Zeile in Variable schreiben. Dies ist die oberste Zeile der letzen Druckseite
       Set rng = .Cells(lngZeile, 1)
       MultiPage = True
   Exit For
   End If
   Next lngZeile

   If MultiPage = True Then
       'Mehrere Seiten
     
       'Druckbereich auf alle Druckseiten, bis auf die unterste einstellen
       .PageSetup.PrintArea = .Range(.Cells(1, 1), .Cells(rng.Row - 1, 8)).Address
       MsgBox ("rng.row-1: " & rng.Row - 1)
       'Fußzeile entfernen
       .PageSetup.LeftFooter = ""
       'Druckbereich ausdrucken
       .PrintOut
       'Fußzeile einfügen
       .PageSetup.LeftFooter = "Fußzeile!!"
       'Druckbereich auf die letzte Druckseite einstellen
       .PageSetup.PrintArea = .Range(Cells(rng.Row, 1), .Cells(.UsedRange.Rows.Count + 1, 8)).Address
       MsgBox ("rng.row: " & rng.Row & Chr(10) & ".UsedRange.Rows.Count+1: " & .UsedRange.Rows.Count + 1)
       'Druckbereich ausdrucken (letzte Druckseite mit Fußnote)
       .PrintOut
       'Druckbereich aufheben
       .PageSetup.PrintArea = False
     
   Else
       'Eine Seite
       'Druckbereich auf verwendeten Bereich einstellen
       .PageSetup.PrintArea = .Range(Cells(1, 1), .Cells(.UsedRange.Rows.Count + 1, 8)).Address
       'Fußzeile einfügen
       .PageSetup.LeftFooter = "Fußzeile!!"
       'Normaler Ausdruck
       .PrintOut
       'Druckbereich aufheben
       .PageSetup.PrintArea = False
     
   End If
   End With
       Application.EnableEvents = True
   Exit Sub
 
ErrorHandler:
       'Bei Fehler EnableEvents wieder aktivieren
       Application.EnableEvents = True
       MsgBox ("Fehler beim Drucken")
   Exit Sub
End Sub

Habe den Code dann in "DieseArbeitsmappe" kopiert und versucht zu drucken. Dieser Code funktioniert so noch nicht, springt direkt in den Error-Handler und öffnet die Message-Box "Fehler beim Drucken".
Wo der Fehler liegt, kann ich natürlich nicht sagen, aber vielleicht ist die Idee, die Fußnote über VBA zu realisieren an sich schonmal eine gute.

Im nächsten Schritt würde ich dann Inhalte für die Fußzeile definieren wollen und die Höhe der Fußzeile anpassen. Soweit ich gelesen habe, der Inhalt passend in die Fußzeile gesetzt wurde, kann dann auch nicht mehr passieren, dass Zeilen in den Fußbereich rutschen, da die Fußzeile das Seitenende andeutet....?
Antworten Top
#57
Hallöchen,
bei mir läuft der Code durch. Setze mal vor On Error... ein Hochkomma. Dann wird die Codezeile grün und nicht ausgeführt. Der Code bleibtdann in der Fehlerzeile mit einer Meldung hängen. Poste bitte beides.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • ToXiC
Antworten Top
#58
Hi,

das habe ich gestern schonmal gemacht. Der Fehler wird mir hier angezeigt:
Code:
With Worksheets("Tabelle1")


Verstehe ich nicht, da es nur ein Tabellenblatt gibt, das auch Tabelle1 ist.
Habe auch versucht, es in "Deckblatt" umzubenennen, so habe ich das Blatt benannt. Läuft dann durch, setzt aber den Fußzeilen-Text nicht ein bzw. druckt diesen nicht mit.

Kann man den Code nicht auch testweise direkt ins Worksheet einbinden? "Activesheet... " z.B.
Antworten Top
#59
Hallöchen,
Mangels Meldungsinhalt vermute ich trotzdem ein Problem mit dem Blattnamen. Du kannst natürlich auch statt Worksheet(...) dann ActiveSheet schreiben.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#60
Hallo,

(26.06.2016, 10:42)ToXiC schrieb: das habe ich gestern schonmal gemacht. Der Fehler wird mir hier angezeigt:
Code:
With Worksheets("Tabelle1")


Verstehe ich nicht, da es nur ein Tabellenblatt gibt, das auch Tabelle1 ist.

Du mußt hier im Projektexplorer unterscheiden zwischen den Codenamen und den Tabellennamen siehe hier. In Klammern ist der Tabellenname ohne Klammer handelt es sich um den Codenamen. Bei deiner Version mit Worksheets("...") verwendest Du den Tabellennamen wie Du ihn in Excel siehst.
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • ToXiC
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste