Trident
Off Topic => Off Topic => Thema gestartet von: Zidahya am 07. August 2008, 21:41:34
-
Kennt sich einer mit Word aus? Ich hab da ein kleines... na ja sagen wir es ist eine bürokratische Herausforderung.
Es geht um folgendes. Wie ihr vielleicht wisst bin ich in der Speditionsbranche und unsere geliebte Regierung möchte von mir das ich für jeden unserer Fahrer wöchentliche eine Bescheinigung ausstelle das sie am Wochenende nicht gearbeitet haben.
Das ganze muss mit dem Formblatt passieren das ich unten angegeben habe und maschinell erfolgen.
Im Moment muss ich das ganze nur für 15 Mitarbeiter fertig stellen, aber das immerhin jede Woche. Das ich da keine große Lust drauf habe, könnt ihr euch vorstellen.
Ich weiss das es bei Word Möglichkeiten für Autotext gibt, so das ich z.B. wenigstens die Felder für Datum nicht jedes ausfüllen muss. Leider ist das Formblatt schon vorgeschrieben und ich kann die grauen Felder nicht löschen oder austauschen.
Kann mir da einer ein paar Tips geben?
-
Kannst Du dieses Formblatt nicht einfach nachbauen und entsprechend die Autofelder einsetzen?
-
Ja mittlerweile hab ich den Dokumentenschutz aufgehoben und zumindest die beiden Datum- Felder unten schon auf auto aktualisierung geschaltet.
Aber ich weiss immer noch nicht wie ich die beiden Felder oben "von" "bis" hinbekomme. In das erste muss immer der kommende Freitag und in das zweite dann der kommende Sonntag. Die Uhrzeit ist konstant.
-
Ich würde Dir gern helfen und könnte das auch, wenn, ja wenn ich hier noch eine Word-Installation hätte. Bin aber komplett auf OpenOffice umgestiegen und kann deswegen keine VBA-Makros schreiben :(
-
Kannst du das nicht in Excel machen und dort dann in dem Feld einfach "aktuelles Datum -X Tage machen? Müsstest es halt immer am Mo laufen lassen, damit Mo -2 Tage = Sa bis Mo -1 Tag = So drin steht. Oder geht das auch in Word?
-
wegen security / compliance blablubb darf ich keine dateien verschicken/hochladen etc aber probier mal folgendes.
1) dokument unprotecten
tools -> options dann auf dem security reiter mittig auf unprotect klicken
2) bookmark setzen, da wo du dein datum haben möchtest
also: klick in das feld rein (ich würde in das erste grauefeld die uhrzeit manuell eintragen (bleibt ja konstant wie du sagst), und dann in das 2. graue feld reinklicken (das ganze feld ist markiert) dann pfeil links, damit du den cursor hast) und nun mit insert - > bookmark ein bookmark setzen, zb "datum_von" als bezeichnung und dann auf "add" klicken
3) code
unter tool -> macro -> visual basic editor auf "this document" links klicken und rechts folgenden code einfügen
Private Sub Document_open()
With Selection
.GoTo What:=wdGoToBookmark, Name:="datum_von"
.TypeText Text:=Format$(Date - 2, "DD.MM.YY")
End With
End Sub
statt datum_von natürlich den namen von deinem bookmark, falls von meinem vorschlag abweichend.
date - 2 ist in dem fall das aktuelle datum - 2 tage (geht auch mit +) kannst du nach belieben ändern.
4) dokument speichern, beim öffen müsste dann das datum entsprechend drinstehen.
-
Mhm... das hilft mir ja schon mal weiter da setz ich mich mal dran. Danke Kent.
-
Diese beiden Funktionen sollten Dir den nächsten Freitag bzw. nächsten Sonntag zurückgeben. Kanns nur mangels Office halt nicht testen...
Public Function getNextFriday()
getNextFriday = Date
While Format(getNextFriday, "w") <> 6
getNextFriday = getNextFriday + 1
Wend
End Function
Public Function getNextSunday()
getNextSunday = Date
While Format(getNextSunday, "w") <> 1
getNextSunday = getNextSunday + 1
Wend
End Function
-
Und wo soll diese Funktion hin?
-
Auch da, wo Kents Geraffel steht... Kannst Du dann dort entsprechend benutzen, also:
Private Sub Document_open()
With Selection
.GoTo What:=wdGoToBookmark, Name:="datum_von"
.TypeText Text:=Format$(getNextFriday(), "DD.MM.YY")
End With
End Sub
-
geraffel...pfft...hab mich eben an hurz's vorschlag orientiert :wink1:
aber stimmt schon, getNextFriday() ist eleganter.
-
hab mich eben an hurz's vorschlag orientiert :wink1:
epic fail ...
-
jup. sich an hurz zu orientieren, ist wie dem lemming hinterher in den abgrund zu springen....
-
ka ob die pm mit der E-Mail adresse raus ist, wie gesagt, könnte das sicher "verarbeitungsfähig" machen, bräuchte nur das Original.
-
Hab dir ne Mail geschickt, aber ne andere Datei als die, die hier im Forum steht gibt es nicht. Gibt halt noch die von mir aufbereiteten, aber ihr wisst ja. Datenschutz, Personalakten... bla.. die darf ich nicht posten.
-
check mal dein Postfach
=WENN(WOCHENTAG(HEUTE())=6;HEUTE();WENN(WOCHENTAG(HEUTE()+1)=6;HEUTE()+1;WENN(WOCHENTAG(HEUTE()+2)=6;HEUTE()+2;WENN(WOCHENTAG(HEUTE()+3)=6;HEUTE()+3;WENN(WOCHENTAG(HEUTE()+4)=6;HEUTE()+4;WENN(WOCHENTAG(HEUTE()+5)=6;HEUTE()+5))))))
Das ist die Excelformel die den Freitag ermittelt... ein kleines Problem gibts noch, der Wordserienbrief öffnet die Excel"datenbank" nicht wirklcih sondern liest die Daten aus ohne das zu berechnen. Wenn jmd eine Idee hat wie man aus Word heraus eine Berechnung der Datenquelle erzwingen kann - nur zu. Ich fürchte jedoch das soweit bei MS keiner gedacht hat, das Seriendruck Inhalte auch variabel sein könnten... naja. So muss Zid halt vorher immer einemal in die Exceltabelle reingucken und die speichern.
-
das geht immer noch nicht? :o
was ist denn genau das problem?
-
naja, er brauchte eh eine Serienbriefquelle und da ich mit VB nicht so firm bin hab ich das halt so gelöst. Das ist ja auch nicht so starr wie bei dir wo man nur an einen bestimmten Tag das aufrufen kann ansonsten hat man den Mond. In VB gibts ne ähnliche Funktion mit der man Freitag abchecken kann - hab ich aber syntaktisch nicht hinbekommen :D
-
Uff danke für die Mühe Romi werde ich am Donnerstag dann das erste Mal unter Livebedinungen testen. Das mit dem Öffnen und schließen find ich nicht so schlimm. Ich pack mir ne .txt Datei mit nem Hinweis als Name in den Ordner. :)
-
naja, er brauchte eh eine Serienbriefquelle und da ich mit VB nicht so firm bin hab ich das halt so gelöst. Das ist ja auch nicht so starr wie bei dir wo man nur an einen bestimmten Tag das aufrufen kann ansonsten hat man den Mond. In VB gibts ne ähnliche Funktion mit der man Freitag abchecken kann - hab ich aber syntaktisch nicht hinbekommen :D
Ist doch in meinem Code drin...