Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Liste eines Kombinationsfeldes mit Inhalten füllen
zurück: Word DropDown und Kontrollkästchen weiter: Kleines Problem mit Schleife Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
:Maggi
Im Profil kannst Du frei den Rang ändern


Verfasst am:
04. März 2010, 03:47
Rufname:
Wohnort: Köln

Liste eines Kombinationsfeldes mit Inhalten füllen - Liste eines Kombinationsfeldes mit Inhalten füllen

Nach oben
       Version: Office XP (2002)

Hallo zusammen,
bin am Ende mit meinem Latein. In einem Formular fülle ich die Liste einer ComboBox mit Inhalten. Wie bringe ich Word bei, dass das Dokument dadurch noch nicht als verändert gilt.
Wenn das Formular signiert ist, keine Änderungen vorgenommen wurden und nur die ComboBox aufgeklappt wurde, soll beim Schließen des Formulars Word nicht fragen, ob die Änderungen gespeichert werden sollen (es gibt schließlich keine).
Mit ThisDocument.Saved=True komme ich da nicht weiter. Es ist anscheinend auch völlig unerheblich an welcher Stelle ich die Variablen in die Liste einlese.
Crying or Very sad Hilfe!
Code:

Private Sub CB1_DropButtonClick()
    Dim liste() As String
    ReDim liste(2)
            liste(0) = ("text1")
            liste(1) = ("text2")
            liste(2) = ("text3")

        CB1.List() = liste()
    ReDim liste(0)
End Sub

Private Sub Document_Close()
    ThisDocument.Saved = True
End Sub
[/quote]
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
04. März 2010, 13:21
Rufname:
Wohnort: Leipzig


AW: Liste eines Kombinationsfeldes mit Inhalten füllen - AW: Liste eines Kombinationsfeldes mit Inhalten füllen

Nach oben
       Version: Office XP (2002)

Hallo Maggi,

das AutoClose wird nicht reichen. Probier doch mal, direkt im Clickereignis CB1_DropButtonClick nach dem Füllen der Liste ThisDocument.Saved = True als letzte Zeile unterzubringen.

Falls das ein AddIn ist und nicht nur als Vorlage verwendet wird, sollte die Zeile auch im AutoExit stehen.

Gruß
Lisa
:Maggi
Im Profil kannst Du frei den Rang ändern


Verfasst am:
05. März 2010, 01:37
Rufname:
Wohnort: Köln

AW: Liste eines Kombinationsfeldes mit Inhalten füllen - AW: Liste eines Kombinationsfeldes mit Inhalten füllen

Nach oben
       Version: Office XP (2002)

Hallo Lisa,

danke für die schnelle Reaktion.

Habe ich schon versucht, auch an vielen anderen Stellen im Programm. Das Problem ist: ThisDocument.Saved hat schon den Wert True, auch nach dem Füllen der Liste, bzw. dem KlickEreignis (wenn nichts geändert wurde). Trotzdem fragt Word den Anwender beim Schließen des Formulars, ob Änderungen gespeichert werden sollen. Ist für mich absolut widersinnig. Hast du irgendeine andere Idee, wie ich das Problem lösen könnte.

Es handelt sich hier um ein Workflow-Formular, das ausgefüllt und dann fertig zur Genehmigung mittels jeweiliger Signatur an mehrere Personen rundgeschickt wird.

Und genau hier, beim User entsteht dann ein Problem. Wenn der nämlich das eventuell schon vom Vorgänger signierte Formular ebenfalls signiert hat (Signatur wird automatisch gespeichert), denkt er:"Na, klar will ich meine Signatur speichern!" und speichert trotz Warnung, das dann alle Signaturen gelöscht werden.

Gruß
Maggi
Gast



Verfasst am:
05. März 2010, 13:40
Rufname:

AW: Liste eines Kombinationsfeldes mit Inhalten füllen - AW: Liste eines Kombinationsfeldes mit Inhalten füllen

Nach oben
       Version: Office XP (2002)

Hallo Maggi,

wo genau wird denn die Veränderung der Combobox vorgenommen? Gibt es eine Trennung in Vorlage (Template) und Dokument? Falls ja, solltest du auch probieren:

Code:
ActiveDocument.Saved=True
ActiveDocument.AttachedTemplate.Saved = True


alternativ besteht die Möglichkeit, das Dokument händisch zu schließen

Code:
ThisDocument.Close SaveChanges:=wdDoNotSaveChanges
ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
:Maggi
Im Profil kannst Du frei den Rang ändern


Verfasst am:
05. März 2010, 16:57
Rufname:
Wohnort: Köln

AW: Liste eines Kombinationsfeldes mit Inhalten füllen - AW: Liste eines Kombinationsfeldes mit Inhalten füllen

Nach oben
       Version: Office XP (2002)

Hallo Gast,

alle Makros sind im Dokument (Formular) gespeichert, AttachedTemplate ist also die Normal.dot in der aber keine hier benutzten Makros stehen. Muß so sein, weil das Dokument an mehrere Personen zum überarbeiten, bzw. signieren verschickt wird und es keine Vorgaben für den Namen des Vorlagenverzeichnisses und den Namen der Vorlage geben soll (sonst Tote und Verletzte).
Die ComboBox, davon gibt es mehrere, befindet sich als Steuerelement im Dokument, so dass der user hier aus einer Liste auswählen kann (geht nicht über Formularfeld, da z.B. zu viele Einträge). Die Liste wird in ThisDocument beim DropButtonClick()- Ereignis der Box gefüllt.
Habe deinen Vorschlag
Zitat:
ThisDocument.Close SaveChanges:=wdDoNotSaveChanges

dankbar ausprobiert. Aber das Dokument soll natürlich nur ohne zu speichern geschlossen werden, wenn tatsächlich inhaltlich nichts geändert wurde. Womit ich wieder bei ThisDocument.Saved wäre.
Oder hast du eine andere Idee, wie ich sonst feststellen könnte, ob Änderungen im Dokument vorgenommen wurden?

Grüsse
Maggi
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
09. März 2010, 18:47
Rufname:
Wohnort: Leipzig

AW: Liste eines Kombinationsfeldes mit Inhalten füllen - AW: Liste eines Kombinationsfeldes mit Inhalten füllen

Nach oben
       Version: Office XP (2002)

Hallo Maggi,

wenn Du in einem Dokument arbeitest, das keiner Vorlage speziell zugewiesen wurde, also nur einen Verweis auf die Normal.dot trägt, liegt hier die Ursache:

Wenn ich in Code in einem Dokument habe:
  1. verweist ActiveDocument auf das Dokument selbst
  2. verweist ThisDocument auf die anhängende Dokumentvorlage (!) [Wenn keine geöffnet ist, also auf die Normal.dot!!]


Wenn ich hingegen Code in einer Vorlage habe:
  1. verweist ActiveDocument auf das Dokument selbst
  2. verweist ThisDocument auf die Vorlage selbst, also den Code enthaltenden Container.


Wenn also Deine Makros im Dokument gespeichert sind, nützt Dir ThisDocument.Saved nichts, probier mal stattdessen überall
Code:
ActiveDocument.Saved = True

Damit wird Word "vorgegaukelt", das Dokument sei gespeichert, während ThisDocument.Saved = True simuliert, die Vorlage sei gespeichert.

Um das Dokument zu schließen, ohne zu speichern:
Code:
ActiveDocument.Close wdDoNotSaveChanges

_________________
Sei doch so nett und gib eine Rückmeldung, ob es klappt!
Gruß, Lisa

Guter Rat ist teuer!
:Maggi
Im Profil kannst Du frei den Rang ändern


Verfasst am:
10. März 2010, 19:57
Rufname:
Wohnort: Köln

AW: Liste eines Kombinationsfeldes mit Inhalten füllen - AW: Liste eines Kombinationsfeldes mit Inhalten füllen

Nach oben
       Version: Office XP (2002)

Hallo Lisa,

funktioniert weder mit ActiveDocument noch mit ThisDocument (eine ComboBox = "CBox" im Dokument).
Code:

Sub AutoOpen()
        Dim test As Boolean

        Call FillList       
        ActiveDocument.Saved = True

        test = ActiveDocument.Saved
        MsgBox Str(test)
       
        Err.Clear
End Sub

Sub AutoClose()
     Dim test As Boolean
 
     test = ActiveDocument.Saved
     MsgBox Str(test)

    If ActiveDocument.Saved = True Then
        ActiveDocument.Close savechanges:=wdDoNotSaveChanges
    End If
End Sub

Sub FillList()
    Dim liste() As String
    ReDim liste(2)
            liste(0) = ("Text1")
            liste(1) = ("Text2")
            liste(2) = ("Text3")
    ActiveDocument.CBox.List() = liste()
End Sub

Hab' mal 'ne MsgBox eingefügt, zum verdeutlichen. Obwohl ich nach dem Öffnen nichts anderes tue, als wieder zu schließen, läßt sich Word nicht vorgaukeln, dass das Dokument nicht verändert wurde.

Hoffe auf weitere Vorschläge, weiß echt nicht weiter.
Danke, Maggi
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
11. März 2010, 11:19
Rufname:
Wohnort: Leipzig


AW: Liste eines Kombinationsfeldes mit Inhalten füllen - AW: Liste eines Kombinationsfeldes mit Inhalten füllen

Nach oben
       Version: Office XP (2002)

Hallo Maggi,

ich habe es jetzt nachgebaut, Du hast Recht. Solange keine Combobox im Dokument ist, kann man mit dem AutoClose und ActiveDocument.Saved = True überlisten. Sobald eine Combobox im Dokument ist und befüllt wird, geht das nicht mehr. Selbst wenn man den Word-Befehl Speichern übersteuert, geht das zwar. Der User kann nicht mehr selbst speichern!! Wenn er jedoch auf Beenden oder auf das Schließen-Kreuz klickt, wird zwar das AutoClose ausgeführt. Danach wird jedoch das Document-Close-Ereignis der Normal.dot des jeweiligen Users (!) ausgeführt, auf das Du keinen Einfluss hast. Das fragt dann nochmal nach Twisted Evil

Auf dem Weg geht's nicht weiter. Das lässt sich nämlich nur umgehen, wenn das Dokument auf einer eigenen *.dot beruht, dann würde deren Document-Close abgearbeitet, dort könnte man dann das Speichern verbieten. Du schreibst ja, dass das nicht geht.

Mach es so. Ordne im Dokument einen CommandButton aus der Symbolleiste Steuerelement-Toolbox an. Dieser CommandButton sollte eine Beschriftung "Beenden" oder "Schließen" kriegen, Du kannst ihn auch richtig groß und auffällig machen. Im Modul ThisDocument kriegt er diesen Code:
Code:
Private Sub CommandButton1_Click()

    ActiveDocument.Saved = True
    ActiveDocument.Close = wdDoNotSaveChanges

End Sub

Vorsichtshalber würde ich im normalen Modul noch unterbringen:
Code:
Sub FileClose()
ActiveDocument.Saved = True
End Sub

und:
Code:
Sub FileSave()
ActiveDocument.Saved = True
End Sub

Diese letzte Prozedur übersteuert den Word-Befehl. Du kannst das Dokument danach nicht mehr auf normalem Weg speichern, sodnern nur noch im VBA-Editor über Strg S (oder eben, indem das Schließen-Kreuz benutzt wird, um die (oben genannte) Abfrage aus der Normal.dot zu provozieren. Also aufpassen, damit Dein Code auch gesichert wrid!!

Dann mit gezielten Anweisungen die User dazu bringen, dass sie das Dokument IMMER über diesen Beenden-Button verlassen und nicht über das Schließen-Kreuz.

Wenn das tatsächlich gar nicht geht, solltest Du ganz auf die Steuerelemnete im Dokument verzichten. Wenn sowieso VBA verwendet wird, bau eine normale Userform mit Dropdown und Button OK. Dort hast Du den VBA-Code viel besser im Griff und brauchst Dich nicht mit den Word-Abfragen herumzuplagen.

_________________
Sei doch so nett und gib eine Rückmeldung, ob es klappt!
Gruß, Lisa

Guter Rat ist teuer!
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Word Serienbriefe: Worddokument mit Daten aus Excel füllen 3 Gast 458 12. Dez 2012, 20:53
CaBe Worddokument mit Daten aus Excel füllen
Keine neuen Beiträge Word Formate: Problem mit Inhaltsverzeichnis bzw. nummerierte Liste 1 jabra 311 11. Aug 2012, 16:20
EPsi1 Problem mit Inhaltsverzeichnis bzw. nummerierte Liste
Keine neuen Beiträge Word Serienbriefe: Wordvorlage automatisch aus CSV füllen 0 GeneralB 539 02. Jul 2012, 11:18
GeneralB Wordvorlage automatisch aus CSV füllen
Keine neuen Beiträge Word Formate: Nummerierung in einer Liste unterschiedlich formatieren? 1 Gast 403 16. Apr 2012, 16:26
x33o Nummerierung in einer Liste unterschiedlich formatieren?
Keine neuen Beiträge Word Formate: Vorlage für nummerierte Liste: Automatisch neu beginnen 1 schneeland 1126 18. Mai 2011, 22:33
G.O.Tuhls Vorlage für nummerierte Liste: Automatisch neu beginnen
Keine neuen Beiträge Word Serienbriefe: Verschiedene Namen automatisch in Liste 3 mitro 1648 07. Jan 2011, 11:15
charlybrown Verschiedene Namen automatisch in Liste
Keine neuen Beiträge Word Serienbriefe: Exceltabelle in Serienbrief mit Seriendruckfeldern füllen 11 tberner 3894 16. Mai 2010, 18:08
charlybrown Exceltabelle in Serienbrief mit Seriendruckfeldern füllen
Keine neuen Beiträge Word VBA Programmierung (Makros): VB / Word Combox Liste automatisch laden / entladen 1 Kati80 2320 18. Jul 2007, 12:53
nitro_storm VB / Word Combox Liste automatisch laden / entladen
Keine neuen Beiträge Word VBA Programmierung (Makros): Combobox füllen und enthaltenen Wert an Textbox übergeben 1 nyra23 2126 21. März 2007, 22:25
Bytelight Combobox füllen und enthaltenen Wert an Textbox übergeben
Keine neuen Beiträge Word Serienbriefe: Access-Daten (Liste) in eine Word-Tabelle in einem Textfeld 0 hausl78 1617 16. März 2007, 22:48
hausl78 Access-Daten (Liste) in eine Word-Tabelle in einem Textfeld
Keine neuen Beiträge Word VBA Programmierung (Makros): WordListbox aus Excel füllen 1 Marsi79 1404 10. Okt 2006, 23:14
Nepumuk WordListbox aus Excel füllen
Keine neuen Beiträge Word VBA Programmierung (Makros): Vorlagen mit ACCESS-Daten füllen 3 Kerbi 1511 19. Sep 2006, 12:44
Kerbi Vorlagen mit ACCESS-Daten füllen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Excel Tipps