1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. imebro

Beiträge von imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 24. September 2015 um 13:02

    Hallo und danke...

    Ich habe jetzt einfach mal die entsprechenden Buttons per VBA programmiert.
    Damit funktioniert es auch und daher denke ich, dass der zusätzliche Aufwand sich nicht lohnen würde, es jetzt auch über Autoit zu programmieren.

    Wir testen das so jetzt mal und schauen mal :)

    Das Autoit-Script kann ich dennoch sicher für andere Anwendungen nutzen als Grundlage.

    Danke Dir bis dahin für Deine super Hilfe!!

    LG
    imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 24. September 2015 um 08:59

    OK... gute Idee.

    Ich habe schon eine Vorlage "Vorlage_Memo.doc" in Word erstellt.
    Diese sollte dann vom Script aufgerufen werden. Diese enthält dann schon die in fett formatierten Aufzählungen.
    Dann können die Sachbearbeiter sofort loslegen.

    Könnte man denn dann die Buttons "Memo speichern / Memo suchen / Memo drucken" des Scriptes nutzen oder müßte ich dazu VBA-Makros in Word erstellen?

    Wenn man die Buttons des Scriptes weiter nutzen kann... brauche ich dann nur einen Aufruf für Word --> "Vorlage_Memo.doc" ins Script einbauen?

    Danke und Gruss,
    imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 23. September 2015 um 09:00

    Hallo "water"...

    Das ist ja der Wahnsinn.
    Hab nicht gedacht, dass es so möglich ist :)

    Habe jetzt auch die Pfade zu den Dokumenten und zu Winword angepaßt und es funktioniert bestens.

    Den vorbelegten Text im Memofeld müßte ich nun ändern in eine Aufzählung, die insgesamt 13 Punkte enthält mit jeweils 2 Leerzeilen dazwischen.
    Und jeder dieser Punkte (aber NICHT die Leerzeilen) müßten in FETT formatiert sein.

    Muss ich nun all diese Punkte in die Code-Zeile 9 hintereinander schreiben... mit jeweils mehreren "@CRLF" als Zeilenschaltung?
    Oder gibt es da ne andere Möglichkeit?

    Ich habe im Forum recherchiert und einen Hinweis darauf gefunden, dass man in einer TextBox nur unformatierten Text verwenden kann.
    Formatierten Text kann man offenbar nur in einer RichTextBox darstellen. Aber vielleicht gilt das auch nur für VBA-Code. Vielleicht gibt es sowas ja auch für Autoit... (vielleicht "RichEdit"?).
    Wäre das ggf. eine Lösung?
    Habe jedoch bisher noch nichts gefunden bei meiner Recherche.

    Danke und Gruss,
    imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 22. September 2015 um 11:48

    Habe schon mal so angefangen:

    1) Den Button "Memo öffnen" erstellt

    AutoIt
    Global $idOpen = GUICtrlCreateButton("Memo öffnen", 290, 30, 100, 25)  ; Abstand von li, oben, Breite, Höhe

    Der erscheint auch...


    2) Diesem Button zugewiesen, dass er die Nummer aus dem Nummernfeld ausliest und dieses Dokument dann öffnet

    AutoIt
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
        Case $idOpen
    			$sNumber = StringStripWS(GUICtrlRead($idNumber), BitOR($STR_STRIPLEADING, $STR_STRIPTRAILING, $STR_STRIPSPACES)) ; Liest Nummer aus Inputfeld $idNumber und entfernt alle unnötigen Leerzeichen
    			If $sNumber = "" Then
    				_Write_ErrorMsg("Antragsnummer + Name darf nicht leer sein!", $COLOR_RED) ; Fehlermeldung rot markieren
    			Else
    				ShellExecute ($sTempPath) ; bereits erstelltes Dokument öffnen
    				GUICtrlSetData($idNumber, "") ; Antragsnummer/Name leeren
    			 EndIf
    	EndSwitch
    Alles anzeigen


    Allerdings ist der Code offenbar falsch... aber den habe ich auch aus dem jetzigen und Teilen aus anderen Threads zusammen gefrickelt :(

    LG
    imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 22. September 2015 um 09:40

    Hallo wieder mal...

    Die Kollegen sind mit dem kleinen Progrämmchen sehr zufrieden :)

    --> Aber folgende Dinge sollten noch möglich sein:

    1) Nummer ins bestehende Nummernfeld eintragen und dann auf Button "Memo öffnen" klicken, um ein bestehendes Word-Dokument zu öffnen
    Zum eigentlichen öffnen habe ich schon folgenden Code gefunden: ShellExecute ("C:\pfadzurdatei\datei.doc") ; Word-Dokument öffnen
    Aber wie mache ich das über einen Button... z.B. "Memo öffnen"? Das müßte ja dann einfach über "$sTempPath" möglich sein...

    2) Auf einen Button "Memo drucken" klicken, um das geschriebene Memo zu drucken

    3) Wenn das Script geöffnet wird, soll im Memo-Feld immer ein bestimmter Text stehen

    4) Es sollte auch möglich sein, den geschriebenen Text im Momo-Feld zu formatieren (Fett, kursiv, Aufzählungen)

    --> Meine Vermutung:

    Ggf. könnte es einfacher sein, anstatt das Memo-Feld (das große Textfeld) zu nutzen, einfach ein bestimmtes Word-Dokument zu öffnen (Vorlage.doc), welches schon den Text enthält, der ja immer erscheinen soll.
    Dann könnte man auch formatieren und ggf. über ein VBA-Script das Memo speichern und drucken.

    Das könnte so aussehen:

    Man hätte oben ein Programmfenster mit der Möglichkeit, Nummer + Name einzugeben --> zum neu anlegen und öffnen eines Word-Dokumentes.
    Daneben müßte ein Button "Memo erstellen" (wodurch dann die Word-Vorlage geöffnet wird) und ein Button zum öffnen eines erstellten Dokumentes (über Eingabe der Nummer ins obere Feld).

    Darunter dann nur noch die beiden Buttons zum speichern und drucken des neu erstellten Word-Dokumentes.

    Wie wäre Dein/Euer Vorschlag?

    Danke und Gruss,
    imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 21. September 2015 um 16:05

    ...manchmal kann das Leben so einfach sein :)

    Das war´s

    Danke und Gruss,
    imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 21. September 2015 um 14:41

    ...wie befürchtet, wird jetzt auch der Text aus dem Memo komplett in FETT formatiert.

    LG
    imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 21. September 2015 um 14:12

    ...ok und danke.
    Aber wird dann nicht alles (auch der Memo-Text) komplett in Fettschrift formatiert?
    Wohin müßte denn dieser Zusatz ($oRange.Bold = True) im Code?

    Habe ihn jetzt einfach über die Zeile "$oRange.InsertAfter($sNumber)" gesetzt, aber in einem anschließenden Text blieb die Nummer und der Name normal (also nicht fett)

    LG
    imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 21. September 2015 um 13:47

    ...habe eben mal in Zeile 43 folgenden Code eingefügt:

    AutoIt
    $oRange = _Word_DocRangeSet($oDoc.Bold = True, -2)


    ...also nur den Zusatz ".Bold = True". Aber dann erhalte ich eine Fehlermeldung.

    LG
    imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 21. September 2015 um 12:39

    ...nochmal eine Frage:

    Wie mache ich denn die ins Dokument übernommene Antragsnummer und den Namen fett?

    Also der Inhalt dieser Code-Zeilen hier:

    AutoIt
    GUICtrlCreateLabel("Bitte Antragsnummer + Namen eingeben:", 25, 10, 220, 25) ; Abstand von li, oben, Breite, Höhe
    Global $idNumber = GUICtrlCreateInput("", 20, 30, 250, 25)


    Ich habe zwar die Funktion für "font" gefunden... aber direkt fett machen eines übernommenen Textes (z.B. bold) habe ich nicht gefunden.

    Danke und Gruss,
    imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 21. September 2015 um 11:56

    Ja, das sehe ich auch so :)

    LG
    imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 21. September 2015 um 09:00

    Hallo "water",

    danke nochmal für Deine Hilfe.
    War leider am Freitag schon weg, bevor ich Deine Nachricht lesen konnte.

    Es ist seltsam, aber jetzt funktioniert das Script auch auf dem Terminalserver.
    Offenbar dauerte es einfach eine Zeit, bis die Änderungen an den Verzeichnissen (Vollzugriff) auf dem Laufwerk "S" vom System übernommen wurden.

    Von daher hat alles gut geklappt und ich danke Dir für Deine Mühe.

    Falls andere User auch an diesem Script interessiert sind, mit dem man ein Word-Dokument gleich mit einem Namen versehen und unter einem bestimmten Verzeichnis abspeichern kann, dann stelle ich den gesamten Code hier mal ein (allerdings ohne meine Verzeichnisangabe):

    AutoIt: Dokument erstellen mit Namen und Text
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <Word.au3>
    #include <ColorConstants.au3>
    #NoTrayIcon
    Global $sNumber, $sMemo, $oWord, $oDoc
    Global $sSavePath = "C:\Pfad-zur-Datei\" ; Pfad zum Speicher der Dokumente
    $oWord = _Word_Create(False)
    Global $hGUI = GUICreate("   Neues MEMO schreiben", 500, 750) ; Größe des gesamten Programmfensters - Breite, Höhe
    GUICtrlCreateLabel("Bitte Antragsnummer + Namen eingeben:", 25, 10, 220, 25) ; Abstand von li, oben, Breite, Höhe
    Global $idNumber = GUICtrlCreateInput("", 20, 30, 250, 25)
    Global $idErrorText = GUICtrlCreateLabel("", 275, 30, 200, 40)
    GUICtrlCreateLabel("Bitte Memo-Text eingeben:", 25, 65, 200, 25) ; Abstand von li, oben, Breite, Höhe
    Global $idMemo = GUICtrlCreateEdit("", 20, 85, 450, 600)
    Global $idSave = GUICtrlCreateButton("Memo speichern", 25, 700, 100, 25)
    GUISetState(@SW_SHOW)
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			_Word_Quit($oWord)
    			Exit
    		Case $idSave
    			$sNumber = StringStripWS(GUICtrlRead($idNumber), BitOR($STR_STRIPLEADING, $STR_STRIPTRAILING, $STR_STRIPSPACES)) ; Liest Nummer aus Inputfeld $idNumber und entfernt alle unnötigen Leerzeichen
    			$sMemo = GUICtrlRead($idMemo) ; Liest Memo
    			If $sNumber = "" Then
    				_Write_ErrorMsg("Antragsnummer darf nicht leer sein!", $COLOR_RED) ; Fehlermeldung rot markieren
    			ElseIf $sMemo = "" Then
    				_Write_ErrorMsg("Memo darf nicht leer sein!", $COLOR_RED) ; Fehlermeldung rot markieren
    			Else
    				_Save_to_Word()
    				GUICtrlSetData($idNumber, "") ; Auftragsnummer/Name leeren
    				; GUICtrlSetData($idMemo, "") ; Memo leeren
    			EndIf
    	EndSwitch
    WEnd
    Func _Save_to_Word()
    	$oDoc = _Word_DocAdd($oWord)
    	Consolewrite(@error & " - " & @extended & @CRLF)
    	Local $oRange = _Word_DocRangeSet($oDoc, -2)
    	$oRange.InsertAfter($sNumber) ; Auftragsnummer und Name einfügen
    	$oRange = _Word_DocRangeSet($oDoc, -2)
    	$oRange.InsertBreak($wdLineBreak) ; Zeilenschaltung einfügen
    	$oRange = _Word_DocRangeSet($oDoc, -2)
    	$oRange.InsertAfter($sMemo) ; Zeilenschaltung einfügen
    	Local $sTempPath = $sSavePath & $sNumber & ".doc"
    	If FileExists($sTempPath) Then
    		If MsgBox(BitOR($MB_YESNO, $MB_ICONQUESTION), "Datei existiert bereits", "Die Datei '" & $sTempPath & " existiert bereits!" & @CRLF & "Soll sie überschrieben werden?") = $IDYES Then
    			FileDelete($sTempPath)
    			_Save_Doc($sTempPath)
    		Else
    			_Write_ErrorMsg("Memo wurde nicht gespeichert!", $COLOR_RED) ; Fehlermeldung rot markieren
    		EndIf
    	Else
    		_Save_Doc($sTempPath)
    	EndIf
    EndFunc   ;==>_Save_to_Word
    Func _Save_Doc($sPathParm)
    	_Word_DocSaveAs($oDoc, $sPathParm)
    	_Word_DocClose($oDoc)
    	_Write_ErrorMsg("Memo wurde erfolgreich als '" & $sPathParm & "' gespeichert!", $COLOR_BLUE)
    EndFunc   ;==>_Save_Doc
    Func _Clear_ErrorMsg()
    	GUICtrlSetData($idErrorText, "")
    	GUICtrlSetColor($idErrorText, $Color_BLACK)
    	AdlibUnRegister("_Clear_ErrorMsg")
    EndFunc   ;==>_Clear_ErrorMsg
    Func _Write_ErrorMsg($sTextparam, $iColorparam)
    	GUICtrlSetData($idErrorText, $sTextparam)
    	GUICtrlSetColor($idErrorText, $iColorparam) ; Farbe setzen
    	AdlibRegister("_Clear_ErrorMsg", 5000)
    EndFunc   ;==>_Write_ErrorMsg
    Alles anzeigen

    Schöne Grüße,
    imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 18. September 2015 um 14:51

    ...mir fiel gerade ein verrückter Umweg ein.

    Die Dateien vielleicht lokal speichern und am Ende dann in das gewünschte Verzeichnis kopieren.

    Vielleicht geht das ja...

    LG
    imebro

    P.S.:
    geht auch nicht. Habe gerade ein lokales Verz. erstellt und das im Code eingetragen.
    Fehlermeldung ist die gleiche

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 18. September 2015 um 14:47

    ja, das geht problemlos.
    Bisher haben wir diese Dokumente ja auch dort von Hand gespeichert...

    LG
    imebro

    P.S.:
    Habe die Rechte alle nochmal auf "Jeder - Vollzugriff" geändert, aber es funktioniert dennoch nicht.

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 18. September 2015 um 14:35

    ...noch ein Test:

    Habe die Datei gerade mal lokal getestet - und da funktioniert alles einwandfrei.

    Ich arbeite auf einem Terminalserver. Kann da das Problem liegen?

    LG
    imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 18. September 2015 um 14:33

    hmmm... es kommt immer die gleiche Fehlermeldung.

    Sehr merkwürdig.
    Seltsamer Weise hat es ja mit dem ersten Code wenigstens soweit funktioniert, dass ein Dokument erstellt wurde.
    Es wurde halt nur im falschen Verzeichnis abgelegt (Script-Verz.).
    Aber wenn ich jetzt den Versuch mit diesem Code mache, erhalte ich auch die Fehlermeldung...

    LG
    imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 18. September 2015 um 14:09

    OK...

    - es ist kein Word-Dokument geöffnet und auch das Programm Word ist nicht geöffnet
    - jetzt starte ich die Datei "memo_schreiben2.au3"
    - in die erscheinende Maske geben ich oben eine Nummer und einen Namen ein: "12345 Müller"
    - im großen Textfeld gebe ich irgend einen Text ein
    - dann klicke ich unten auf den Button "Memo speichern"
    - dann erscheint sofort diese Fehlermeldung

    Das sind die genauen Schritte & Zustände.
    Genau das gleiche passiert aber auch, wenn ich vorher Word geöffnet habe (also ein leeres Dokument)

    LG
    imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 18. September 2015 um 13:35

    Danke Dir nochmals...

    Die Dateinamen sollen am Ende so aussehen:

    "801234 Müller Franz.doc"

    Werde jetzt mal Deinen neuen Code testen.

    LG
    imebro

    P.S.:
    Sofort kommt wieder die gleiche Fehlermeldung, wie bereits oben einkopiert, obwohl ich die Änderungen in den Zeilen 8 + 9 durchgeführt habe:

    ---------------------------
    AutoIt Error
    ---------------------------
    Line 42 (File "C:\Users\imebro\Desktop\ADMIN\AutoIT - Scripts\Memotext schreiben und speichern\memo_schreiben2.au3"):

    $oRange.InsertAfter($sNumber)
    $oRange^ ERROR

    Error: Variable must be of type "Object".
    ---------------------------
    OK
    ---------------------------

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 18. September 2015 um 12:34

    Danke für Deine Mühe...

    Funktioniert grundsätzlich schon gut.
    Allerdings wurde das Dokument im Script-Verzeichnis abgespeichert. Also dort, wo jetzt mein Autoit-Script liegt.
    Weiterhin wird das Dokument ohne Leerzeichen zwischen Nummer und Name gespeichert. Z.B. so: "80123Müller". Besser wäre "80123 Müller".
    Ebenso sollte auch im Dokument selbst dieses Leerzeichen stehen - also so, wie man es auch im ersten Feld eingibt.

    Wäre schön, wenn Du mir da nochmal helfen könntest.

    Danke und schöne Grüße,
    imebro

    P.S.:
    beim zweiten Versuch mit dem gleichen Code erscheint seltsamer Weise eine Fehlermeldung:

    ---------------------------
    AutoIt Error
    ---------------------------
    Line 42 (File "C:\Users\imebro\Desktop\ADMIN\AutoIT - Scripts\Memotext schreiben und speichern\memo_schreiben2.au3"):

    $oRange.InsertAfter($sNumber)
    $oRange^ ERROR

    Error: Variable must be of type "Object".
    ---------------------------
    OK
    ---------------------------

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 18. September 2015 um 10:49

    Danke Dir "Water"...

    Den Prozess haben wir schon überlegt und so wäre es für uns ideal :)

    Kannst Du denn ein wenig helfen beim Überarbeiten des von mir eingestellten Codes?
    Mit dem jetzigen Code kann ich ja nur das erste Textfeld (Nummer + Name) auslesen, aber nicht das, was im zweiten Textfeld geschrieben wurde.

    Im Moment wird aber z.B. auch nicht der Inhalt aus dem ersten Textfeld übernommen, sondern das, was man gerade im Zwischenspeicher hat.
    Sicher wird der Code für dieses Script sogar einfacher... denn ich muss ja nichts mehr aus einem Textfenster eines anderen Programms auslesen, sondern nur Inhalte aus 2 Textfenstern im selben Programm (also im aufgerufenen Autoit-Script).

    Danke und Gruss,
    imebro

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™