Trident

Off Topic => Off Topic => Thema gestartet von: Zidahya am 07. August 2008, 21:41:34

Titel: Word Programmierung
Beitrag 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?
Titel: Re: Word Programmierung
Beitrag von: Itchy am 07. August 2008, 22:20:11
Kannst Du dieses Formblatt nicht einfach nachbauen und entsprechend die Autofelder einsetzen?
Titel: Re: Word Programmierung
Beitrag von: Zidahya am 07. August 2008, 22:27:02
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.
Titel: Re: Word Programmierung
Beitrag von: Itchy am 07. August 2008, 23:04:37
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 :(
Titel: Re: Word Programmierung
Beitrag von: Hurz am 08. August 2008, 00:15:18
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?
Titel: Re: Word Programmierung
Beitrag von: Kent Brockman am 08. August 2008, 13:03:36
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.
Titel: Re: Word Programmierung
Beitrag von: Zidahya am 08. August 2008, 13:05:22
Mhm... das hilft mir ja schon mal weiter da setz ich mich mal dran. Danke Kent.
Titel: Re: Word Programmierung
Beitrag von: Itchy am 08. August 2008, 13:42:45
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

Titel: Re: Word Programmierung
Beitrag von: Zidahya am 08. August 2008, 13:54:27
Und wo soll diese Funktion hin?
Titel: Re: Word Programmierung
Beitrag von: Itchy am 08. August 2008, 13:57:28
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
Titel: Re: Word Programmierung
Beitrag von: Kent Brockman am 08. August 2008, 15:29:18
geraffel...pfft...hab mich eben an hurz's vorschlag orientiert  :wink1:
aber stimmt schon, getNextFriday() ist eleganter.
Titel: Re: Word Programmierung
Beitrag von: Hurz am 08. August 2008, 15:34:12
hab mich eben an hurz's vorschlag orientiert  :wink1:

epic fail ...
Titel: Re: Word Programmierung
Beitrag von: Baumstumpf am 09. August 2008, 05:12:41
jup. sich an hurz zu orientieren, ist wie dem lemming hinterher in den abgrund zu springen....
Titel: Re: Word Programmierung
Beitrag von: Rom am 09. August 2008, 12:27:34
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.
Titel: Re: Word Programmierung
Beitrag von: Zidahya am 09. August 2008, 18:02:07
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.
Titel: Re: Word Programmierung
Beitrag von: Rom am 12. August 2008, 10:12:10
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.
Titel: Re: Word Programmierung
Beitrag von: Kent Brockman am 12. August 2008, 10:43:41
das geht immer noch nicht?  :o
was ist denn genau das problem?
Titel: Re: Word Programmierung
Beitrag von: Rom am 12. August 2008, 11:09:35
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
Titel: Re: Word Programmierung
Beitrag von: Zidahya am 12. August 2008, 17:45:55
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. :)
Titel: Re: Word Programmierung
Beitrag von: Itchy am 12. August 2008, 18:00:12
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...