PDA

Vollständige Version anzeigen : save as button vorkonfiguriert...


e-mo
06.07.2009, 15:27
Hallo Alle,

ich habe eine Frage, und hofft, dass ihr mir helfen koennt.
meine Absicht ist, eine vereinheitlichung von gespeicherte dokumente, denn oftmals wird in unsere gruppe, dokumente mit namen, titel etc abgespeichert, das keinen sinn macht. ich moechte also eine SAVE AS BUTTON neben der HILFE TAB anbringen, wo der User bereits vorgefertigte optionen zur auswahl hat. wenn man darauf klickt, dann kann der user
z.b.: PRAEFIX_TITEL_VERSION_DATUM

aufbau:
I-------------I-----------------I----------------I-------------I
I PRAEFIX I TITEL I VERSION I DATUM I ---> SAVE
I-------------I-----------------I----------------I-------------I

Praefix: ist vordefiniert, user muss eine auswahl per dropdown menue treffen
Titel: User hat die moeglichkeit einen text einzugeben
Version: User kann entweder per dropdown version waehlen, oder selber eingeben, z.b. v0.1 ... v0.11 ...final
Datum: wir automatisch bezogen

am besten kann der user noch definieren, wo er die datei speichern moechte.

ich hoffe ihr koennt mir weiterhelfen.

mit bestem dank im voraus,
e-mo

ps: uebrigends...so aehnlich wie in diesem forum, wenn man einen thread startet :)

Hotte
08.07.2009, 11:27
Hi,

Wenn Du solche Funktionen haben möchtest, musst Du Dir eine eigene Userform mit dne Funktionen erstellen.

Den Wordbefehl selbst kan nman "übersteuern" - also durch eigenen Code ersetzen.

Dazu muss man einfach nur eine Prozedur mit dem Namen "DateiSpeichernUnter" erstellen:

Sub DateiSpeichernUnter()


MsgBox "Datei speichern unter..."

End Sub

Das muss aber in dem Dokuemnt / Vorlage gespeichert werden. Sonst wird es generell für Word abgefangen!

Das fängt auch nur den Menübefehl "Speichern unter..." ab! Den Button in der Symbolleiste nicht!

e-mo
09.07.2009, 14:10
Hallo Hotte,

danke fuer deine Antwort. Ich suche ja eigentlich hilfe...und habe gehofft, dass einer mir mit den codes weiterhelfen kann.

ich habe bereits auf der microsoft seite die codes gesehen. diese muessen aber noch so abgeaendert werden, so dass es diese funtionen hat und ich das als ADD-IN in ms office einbinden kann.

hier ist der link: http://msdn.microsoft.com/de-de/library/microsoft.office.tools.word.document.saveas(VS.80).aspx
:)

e-mo

Hotte
09.07.2009, 22:48
Hi,

... und was hat der Link mit der Aufgabenstellung zu tun? Willst Du mit Visual Studio was machen oder mit VBA?

Das, was Du oben beschrieben hast geht nur mit einer eigenen Userform, da dies in dem wordeigenen Dialog nicht vorgesehen ist.

Und ob Du nun als Prozedurname "DateiSpeichernUnter" oder "FileSaveAs" benutzt ist egal. Word versteht beides - zumindest in der deutschen Version. Die englische Version wird aber den deutschen Befehl nicht verstehen...

Also in meinem Code wird dann eifach die Userform aufgerugen:

Userform1.Show

Dort wird dann die Eingabe vorgenommen - und es gibt da dann einen Button "Speichern" - der kann dann ggf. noch den vorgefertigten Worddialog aufrufen - damit der User den Pfad ändern kann. Der Dateiname kan nvorgegeben werden - ist ja in der Userform zusammengerstellt worden.

So wäre jetzt der Ablauf....

Wenn Du ein wenig warten kannst - dann lade ich mal ein Besipiel hoch...kann aber Samstag werden.
Kanst aber schon mal selbst probieren...

e-mo
10.07.2009, 09:20
ahh ok...vielleicht habe ich dich nicht richtig verstanden, aber anhand deines beispiels wird mir eventuell einiges schluessiger. kein problem...ich kann warten :) ich habe am wochenende nicht viel zu tun...freue mich auf dein beispiel..

danke,
e-mo

e-mo
17.07.2009, 09:19
ahh...

es sieht so aus, alsob du mich vergessen hast :) ich hoffe du kommst noch auf mich zurueck :)

e-mo

Hotte
17.07.2009, 09:31
Hi,

nein - nicht vergessen. Bin nur ein wenig im Stress im Moment. Wenn Du noch ein wenig warten kannst....

BTW: wenn ich etwas hier anhänge müsstest Du Dich anmelden, um es runterladen zu können...:)

e-mo
21.07.2009, 11:08
Kein problem...ich habe noch Zeit :) habe mich auch registiert....finde das forum toll....hier wird man wenigstens noch geholfen :)

Danke,

e-mo

Hotte
26.07.2009, 00:12
Hi,

sorry, dass es etwas länger gedauert hat. Aber hier mal mein Vorschlag.

Ich habe auch das "Übersteuern" der wordeigenen Befehle mit eingebaut. Es gibt aber auch eine eigene Menüleiste mit einem Button. Das kannst Du machen, wie Du willst.

Die Userform kann natürlich nach belieben gestaltet werden.

Die Vorgaben musst Du dann noch anpassen - also Präfix und Versionsnummer...

Teste es mal ...

e-mo
27.07.2009, 14:07
WOW.....das ist GENAU was ich meinte...und ehrlichgesagt, das sieht sogar besser aus als ich mir das vorgestellt habe. sehr professionell.
Aber eine Frage habe ich. wie kann ich das fuer alle Office Produkte anwenden? im moment ist das ja nur fuer Word gedacht, aber was ich wenn ich das auch fuer Excel Powerpoint haben moechte? kann ich das nicht einfach in Office programme einbinden, so dass man beim starten des programms, das SAVE AS icon bereits sichtbar ist?

Oh man...du bist in Hannover und ich in FFM...wenn du mal in FFM sein solltest...sage mir bescheid...lade dich aufn Bier ein :)

e-mo

C-J
27.07.2009, 14:14
Boar Hotte!

Saubere Arbeit .. ich habs mir mal gemopst :D

LG,
CJ

Hotte
27.07.2009, 14:17
Hi,

nein - leider lässt sich das nicht so einfach auf alle Officeprodukte übertragen. Den ndas Startverhalten ist überall anders.

Man kann ggf. noch was in Excel auf dieser Basis basteln. Bei Powerpoint müsste ich jetzt ersdtmal passen und schauen, wei man dort weas machen kann. So mit Sicherheit nicht.

In FFM ?... kann schon mal vorkommen.... :D

e-mo
27.07.2009, 15:05
Hi Hotte,

ich habe das jetzt schon angepasst, wie ich das gerne haette, aber ich kann an einem bereich was nicht aendern. undzwar wenn das FENSTER TITEL: "DOKUMENT SPEICHERN UNTER ..."
wo kann ich das veraendern, so dass ich was anderes dort eintragen kann? (das ist das popup fenster, oben links blau mit weisser aufschrift).


ja, sage mir einfach, wenn du hier bist..bzw. auch in berlin. Ich bin am wochenende oefter in berlin :)

e-mo

Hotte
27.07.2009, 15:12
Hi,

Die Eigenschaft der Userform - Caption - legt den Titel fest. Wenn Du die "MsgBox" meinst - die nimmt diesen Titel. Den nkann man natürlich auch selbst ändern...

Oder welches Fenster meinst Du?!

e-mo
27.07.2009, 15:31
hm...du hast recht..das sind sogar 2 verschiedene bereiche mit der namens-/titelsaenderung. das vom fenster habe ich veraendert, was ich meinte ist der name neben dem icon (diskettenicon).

e-mo

Hotte
27.07.2009, 15:42
Hi,

ach so .. in der Symbolleiste...

Einfach auf Anpassen | Symbolleisten | Anpassen ... gehen - und dann kannst Du auf diersen Eintrag einen Rechtsklick machen. Dort siehst Du dann im oberen Bereich das Feld zum Ändern der Bezeichnung.

Nach dem Schließen des angezeigten Dialogfensters ist der Eintrag geändert.

e-mo
27.07.2009, 16:11
ich habe das versucht...aber es steht immernoch DOLKUMENT SPEICHERN UNTER...

ich meine das hier: http://img.photobucket.com/albums/v72/MaZaKa98/SpeichernUnter.jpg

e-mo

Hotte
27.07.2009, 17:37
Hi,

ja - das meine ich auch.

Also:

Wichtig: Du musst die Wordvorlage direkt öffnen. Also oben in der Titelleiste von Word muss stehen "SaveAs.dot"

Dann im Menü in Word auf Ansicht | Symbolleisten | Anpaasen... (der ist ganz untern unter den Symbolleistennamen) klicken...

Dann erscheint ein Dialog. Diesen Dialog brauchst Du aber nicht.

Du machst jetzt einen Rechtsklick (während der Dialog geöffnet ist) auf diesen Eintrag in der Symbolleiste.
Dann erschint wieder eine Liste mit Optionen. Oben unter "Name" findest Du dann das, was Du ändern kannst (siehe Bild).

Wenn Du den Eintrag geändert hast klickst Du im Dialog einfach auf "Schließen". Dann ist er geändert.

e-mo
28.07.2009, 07:19
endlich habe ich das geschafft....ich habe die ganze zeit versucht, im selben fenster auf die egentschaft zu gehen. kein wunder waren es nicht ging. :grins:

danke HOTTEEEEEEE

noch eine Frage, ich habe mir gedacht, irgendwann, wenn jeder das verstanden hat, dann braucht die person hoechstwahrscheinlich das dropdownmenue etc etc nicht mehr, da eine manuelle eingabe eventuell schneller ist. ist es moeglich, unter der PRAEFIX, TITEL, VERSION, DATUM eine Zeile einzubinden, wo die Person den filenamen selber eingeben kann? d.h. aber nicht, dass die person es willkuerlich machen darf. Wenn bei der eingabe das praefix nicht vorhanden oder datum falsch geschrieben wurde, dann wird ein fehler angezeigt.

soweit hat meine abaenderung schoen geklappt :P

LG,

e-mo

e-mo
28.07.2009, 11:11
oh je...

jetzt habe ich was veraendert...und es funktioniert nicht, ganz :(
habe folgendes gemacht. Habe noch eine Auswahlmenue und ein text feld erstellt (kopierte die PRAEFIX und TITEL), habe dessen Eigenschaft und namen veraendert und den code einbisschen abgeandert.
das tool laeuft, aber es speichert leider nicht den vollen namen :(

aufbau war: PRAEFIX_TITEL_VERSION_DATUM

abgeaendert in: PRAEFIX_TITEL_TYPE_AUTHOR_DATUM

Type = Menueauswahl wie PRAEFIX
AUTHOR = wie bei Titel

habe auch zusaetzlichen TEILER eingerichtet...alles klappt schoen, aber beim speichern, spchert er mir nur ab TYPE_AUHTOR_DATUM

PRAEFIX_TITEL fehlen :( was habe ich falsch gemacht?

folgendes ergaenzt:

Private Sub CMD_SaveAs_Click()

Dim Filename As String
Dim Path As String

If Me.txt_Path.Text = "" Then MsgBox "Please enter the path!", vbCritical, Me.Caption: Exit Sub

If Right(Me.txt_Path.Text, 1) <> Application.PathSeparator Then Path = Me.txt_Path.Text & Application.PathSeparator Else Path = Me.txt_Path.Text

If Me.COB_Prefix.Value <> "" Then Filename = Me.COB_Prefix.Value & Splitter
If Me.txt_Titel.Text <> "" Then Filename = Filename & Me.txt_Titel.Text & Splitter
If Me.COB_Type.Value <> "" Then Filename = Me.COB_Type.Value & Splitter
If Me.txt_Author.Text <> "" Then Filename = Filename & Me.txt_Author.Text & Splitter
If Me.COB_Version.Value <> "" Then Filename = Filename & Me.COB_Version.Value & Splitter
If Me.txt_Date.Text <> "" Then Filename = Filename & Me.txt_Date.Text

If Right(Filename, 1) = Splitter Then Filename = Left(Filename, Len(Filename) - 1)

If Filename = "" Then MsgBox "Please enter a full titel!", vbCritical, Me.Caption: Exit Sub

Filename = Filename & ".doc"
With ActiveDocument
.SaveAs Path & Filename
End With

Unload Me

End Sub



Private Sub UserForm_Initialize()

'Werte laden
Dim i As Long
'1. Prefix:

With Me.COB_Prefix
.AddItem "BIO"
.AddItem "MATH"
.AddItem "CHEM"
.AddItem "ART"
.AddItem "ECO"
.AddItem "COB"
End With

'Type Choice:

With Me.COB_Type
.AddItem "AGENDA"
.AddItem "BP"
.AddItem "MINUTES"
.AddItem "MOU"
.AddItem "WAHL"
.AddItem "PRES"
End With

'Versionen laden

With Me.COB_Version
'.AddItem ""
For i = 1 To 9
.AddItem "V0." & i
Next i
End With


Me.LB_Splitter1.Caption = Splitter
Me.LB_Splitter2.Caption = Splitter
Me.LB_Splitter3.Caption = Splitter
Me.LB_Splitter4.Caption = Splitter
Me.LB_Splitter5.Caption = Splitter

'Date displaying - Format: yyyy-mm-dd

Me.txt_Date.Text = Format(Date, "yyyy-mm-dd")
Me.txt_Date.Enabled = True 'Falls das Feld nicht verändert werden darf, dann wieder auf FALSE setzen

'falls gewünscht - bereits als Pfad den Speicherort für Dateien vorgeben
Me.txt_Path = Options.DefaultFilePath(wdDocumentsPath) & Application.PathSeparator

End Sub



Danke,

e-mo

Hotte
28.07.2009, 11:17
Hi,

Du musst diese Zeile:

If Me.COB_Type.Value <> "" Then Filename = Me.COB_Type.Value & Splitter

ergänzen, damit sie so ausssieht:

If Me.COB_Type.Value <> "" Then Filename = Filername & Me.COB_Type.Value & Splitter

Dann sollte es funktionieren....:)

e-mo
28.07.2009, 12:30
yup...da hast du ganz recht :) ich habe das abgeaendert..und es hat auf anhieb funktioniert. ich spiele sehr gerne mit den codes rum...finde das recht sehr interessant! ich habe auch verstanden, wieso man das so abaendern muss :)

jetzt muss ich nur doch die eine Zeile einbinden, damit die user direkt den filenamen eintragen koennen. aber wenn du mir weiterhelfen kannst....waere natuerlich super :)

e-mo

Hotte
28.07.2009, 13:25
Hi,

...probier doch erstmal selbst ruhig. Das ist nicht so schwer...

Die "Fehlerüberprüfungen" sind da schon imemr interesasanter...

Wen nDU Hilfe brauchst - dann helfen wir Dir natürlich immer wieter...:)

e-mo
29.07.2009, 10:21
Hi Hotte..

habe jetzt folgendes gemacht...aber ich bekomme einen Fehler. Bin mir sicher, dass das nicht der einziger Fehler ist :P

Habe jetzt einen text bereicht in der GUI eingebaut und wiefolgt benannt:

txt_TitelInput
und eine Variable Filename2 eingefuegt. Sieht wiefolgt aus:



Dim Filename As String
Dim Filename2 As String
Dim Path As String

If Me.txt_Path.Text = "" Then MsgBox "Please enter the path!", vbCritical, Me.Caption: Exit Sub

If Right(Me.txt_Path.Text, 1) <> Application.PathSeparator Then Path = Me.txt_Path.Text & Application.PathSeparator Else Path = Me.txt_Path.Text

If Me.COB_Prefix.Value <> "" Then Filename = Me.COB_Prefix.Value & Splitter
If Me.txt_Titel.Text <> "" Then Filename = Filename & Me.txt_Titel.Text & Splitter
If Me.COB_Type.Value <> "" Then Filename = Filename & Me.COB_Type.Value & Splitter
If Me.txt_Author.Text <> "" Then Filename = Filename & Me.txt_Author.Text & Splitter
If Me.COB_Version.Value <> "" Then Filename = Filename & Me.COB_Version.Value & Splitter
If Me.txt_Date.Text <> "" Then Filename = Filename & Me.txt_Date.Text
If Me.txt_TitleInput.Text <> "" Then Filename2 = Me.txt_TitleInput.Value


nun schaffe ich nicht die ueberpruefung einzuleiten, dass es mir zuerst Filename checkt, ob es leer ist...wenn ja, dann soll er die Eingabe von Filename2 uebernehmen. Wenn beides aber leer ist, dann soll der die Fehlermeldung erscheinen.

Bitte um Hilfestellung,

Danke :)

e-mo

Hotte
29.07.2009, 11:23
Hi,

eas bekommst Du denn für eine Fehlermeldung?

Hier mal der Code für die Überprüfung selbst - als Beispiel:

If Filename <> "" Then Filename2 = Filename

If Filename2 = "" Then MsgBox "Bitte einen Dateinamen eingeben!", vbCritical, Me.Caption: Exit Sub
'.....

Filename2 = Filename2 & ".doc"
With ActiveDocument
.SaveAs Pfad & Filename2
End With


Der Code kommt nach Deinem Block zum Füllen der Variablen...

e-mo
29.07.2009, 12:32
Hallo Hotte,

ich habe es soweit geschafft, dass bei Eingabe in txt_TitleInput die datei auch so gespeichert wird, jedoch taucht folgendes problem auf.

Wenn der txt_TitleInput about leer ist, also "" dann bekomme ich die aufforderung, einen titel einzugeben, obwohl ich bei Filename was eingegeben habe. Ich kann somit mit moment nur die datei speichern, wenn im neuen feld was eingeben wurde.

der code sieht jetzt so aus:


Private Sub CMD_SaveAs_Click()

Dim Filename As String
Dim Filename2 As String
Dim Path As String

If Me.txt_Path.Text = "" Then MsgBox "Please enter the path!", vbCritical, Me.Caption: Exit Sub

If Right(Me.txt_Path.Text, 1) <> Application.PathSeparator Then Path = Me.txt_Path.Text & Application.PathSeparator Else Path = Me.txt_Path.Text

If Me.COB_Prefix.Value <> "" Then Filename = Me.COB_Prefix.Value & Splitter
If Me.txt_Titel.Text <> "" Then Filename = Filename & Me.txt_Titel.Text & Splitter
If Me.COB_Type.Value <> "" Then Filename = Filename & Me.COB_Type.Value & Splitter
If Me.txt_Author.Text <> "" Then Filename = Filename & Me.txt_Author.Text & Splitter
If Me.COB_Version.Value <> "" Then Filename = Filename & Me.COB_Version.Value & Splitter
If Me.txt_Date.Text <> "" Then Filename = Filename & Me.txt_Date.Text
If Me.txt_TitleInput.Text <> "" Then Filename2 = Me.txt_TitleInput.Value

If Right(Filename, 1) = Splitter Then Filename = Left(Filename, Len(Filename) - 1)


If Filename = "" Then Filename2 = Me.txt_TitleInput.Value

If Filename2 = "" Then MsgBox "Please enter a full titel!", vbCritical, Me.Caption: Exit Sub

Filename2 = Filename2 & ".doc"
With ActiveDocument
.SaveAs Path & Filename2
End With

Unload Me

End Sub



e-mo

Hotte
29.07.2009, 12:37
Hi,

schau Dir nochmal genau meinen Code an ... da hast Du was verändert ... daher funktioniert das so nicht:

If Filename <> "" Then Filename2 = Filename

Die Variablen sind doch bereits gefüllt - ob leer oder mit Werten ....

So wie Du die Zeile geschrieben hast stimmt die Logik nicht mehr...:)

e-mo
29.07.2009, 14:17
achsooooooooooo.....

jetzt habe ich es gesehen :P habe die "<>" komplett uebersehen..und viola...es hat auch auf anhieb geklappt! :) man man man...ein kleiner fehler..und es hat sooo eine grosse auswirkung.

ich habe mir noch folgendes ueberlegt. da ich die option fuer dir eigene titeleingabe ermoeglich habe, kann man doch das default Save as, von MS Word komplett ersetzen, oder? ich moechte dass mit jedem start von Word, diese script laeuft...und mit jedem Speichern, oder Speichern Unter..dieses Fenster auftaucht.
Im moment ist das nicht moeglich, und dazu kommt noch, dass wenn ich eine bereits existierende word datei oeffne, wird der titel auch nicht automatisch in der Filename2 uebermittelt,d.h. hineinkopiert.
Wie mache ich das moeglich?

Gruss,
e-mo

Hotte
29.07.2009, 23:07
Hi,

das SaveAs wird doch abgefangen .... Wenn Du die Vorlager als Assmin einbindest (in den Startup-Ordner), dann stehen die Funktionen soweit alle zur Verfügung. Dan nsolte es eigentlich immer abgefangen werden.


Was meinst Du denn mit dem Titel - wo steht der denn im Dokument? Oder sol ldas aus dem Dokuekmntenname ausgelesen werden? Oder wo kommt der her, dass er dort eingetragen werden soll...

e-mo
30.07.2009, 08:35
Morgen Hotte,

du bist ja schon so frueh wach :P

zu meiner frage:
der Dateiname ist natuerlich nur vorhanden, wenn das eine existierende datei ist. d.h. wenn einer mir eine Word datei schickt, und ich das aufmache...und anschliessend auf Saveas klicke...dann wird mir der bereits vorhandene dateiname in Filename2 (im feld: txt_TitleInput) automatisch eingetragen (so wie er vorher von einer anderen Person abgespeichert wurde).


ops...beinahe haette ich noch was vergessen. im bezug zum Saveas...wollte ich, dass der dialogbox jedesmal auftaucht. zur zeit ist es so, dass der dialogbox nur erscheint, wenn man die datei zum ersten mal speichert. bei erneutem speichern erscheint diese box nicht mehr. ich moechte halt, dass diese box immer erscheint (also fuer FileSave und FileSaveAs)...dann wuerde meine obige anfrage (existierende dateiname automatisch im Filename2 hineinkopiert)

LG,
e-mo

Hotte
30.07.2009, 10:32
Hi,

dann musst Du im Modul "mod_starten" einfach nur dies ersetzen:

If InStr(1, ActiveDocument.FullName, ".doc") = 0 Then
frm_SaveAs.Show
Else
ActiveDocument.Save
End If


durch das:

frm_SaveAs.Show

Dann wird es immer angezeigt.

Zum Einfügen des vorhandene Dateinamens musst Du folgendes in der Uswerform in die Prozedur "UserForm_Initialize()" eintragen - zusätzlich zum vorhandene Code:

If InStr(1, ActiveDocument.FullName, ".doc") <> 0 Then
Me.txt_TitleInput.Text = Left(ActiveDocument.Name, Len(ActiveDocument.Name) - 4)
End If



Dann sollte der Name ohne Dateiendung dort eingetragen werden...

e-mo
30.07.2009, 11:04
yup...das hat super geklappt!

ich habe nun das nun:
Me.txt_Date.Text = Format(Date, "yyyymmdd") auskommentiert, da das datum hier (wie vorher gewollte) automatisch bezogen wurde, aber wenn da ein wert ist (datum) dann ueberschreibt es den titel im Filename2. Habe im moment keine andere Loesung im Kopf...deshalb habe ich das vorerst auskommentiert.

Kann ich hier im Datum feld eine IF funktion einbinden, so dass wenn ein Datum angegeben wird, das nur 2 formate erlaubt sind?

d.h. der user hat die moeglichkeit das datum als: YYYYMMDD (also 20090730) oder MMMDD (JUL09). wenn es leer ist, dann taucht kein errormessage auf, aber wenn das format falsch eingetragen wurde, dann die message: "Falsches Format".


ohh...ich habe soeben nach was entdeckt:
habe ein neues dokument erstellt...und als ich auf das X (recht oben im dokument) geklickt habe, taucht die message: : "Do you want to save changes to the Document1" (sorry, mein system ist in englischer sprache).
und als ich YES geklickt habe, taucht das erstellte Dialogfenster nicht auf, sondern das normale Windows Saveas fenster. Wie unterbinde ich das?

e-mo

e-mo
02.08.2009, 11:51
Hallo Hotte,

Ich habe versucht den letzten noch uebrigen "fehler" versucht mit folgendes zu beseitigen, jedoch hat das nicht geklappt:


Sub FileSave_beforeClose()

frm.Save.As.Show

End Sub




ich wollte damit, dass das Dialogfenster bei schliessen des Dokuments, auf die frm.Save.As.Show referiert, und nicht das uebliche Do you want to save the changes in Dokument1 etc..

das hat wie gesagt nicht geklappt. Was fuer eine Sub muss ich da anwenden?

Gruss,

e-mo

e-mo
04.08.2009, 09:25
Hi Hotte...

ich habe wieder rumgespielt, aber hat nicht geklappt.

habe nun folgendes gemacht


Sub FileCloseWithDialog()

wordApp.ActiveDocument.Saved = True
wordApp.Application.DisplayAlerts = True
If vbYes Then from_SaveAs.Show
ElseIf vbNo Then Word.Application.Quit

End Sub


aber das bewirkt nada :(

HILFEEEE...... :bawling:

e-mo

e-mo
05.08.2009, 14:34
Hi Hotte...

wo biste denn nur?! ich habe leider noch was entdeckt. Wenn ich z.b. das ein word dokument aufhabe, mich dann kurs abmelde...und dann wieder anmelde, dann oeffnet sich der Visual Basic Editor automatisch. wie kann ich das unterbinden?

Danke,

e-mo

Hotte
05.08.2009, 15:00
Hi,

.. ich bin ja hier....! :)

Schau mal hier:

integrierte Wordbefehle (http://www.vba-wordwelt.de/word-mit-vba/dokumentinformationen/wordbefehle/awordbefehle-dokumentinformation.html)

So findest Du alle Wordbefehle, die Du abfangen kannst.

Das, was Du hier machen willst wird so nicht funktionieren. Man kann es auch über ein Klassenmodul abfangen. Das wäre bestimmt die sicherste Methode.

Such aber erstmal die Wordbefehle...(such mal nach DokumentSchließen und DateiSchließen)...:)

e-mo
05.08.2009, 15:47
ahhh....da bist du jaaaaa....habe solange auf dich gewartet :)

ok..ich werde mir die wordbefehle mal durchsuchen. hoffentlich finde ich dann eine loesung. hast du zu meinem letztem problem eine loesung bzw. den grund? ich gesagt, der vba editor oeffenet sich immer, wenn word geoeffnet ist (wenn ich mich abmelde und wieder anmelde, dann ist der editor da).

gruss,
e-mo

Hotte
05.08.2009, 16:12
Hi,

was heißt denn abmelden? Wo abmelden???? Und wo anmelden??????

In Word muss man sich doch nciht anmelden....:D

Hotte
05.08.2009, 16:15
PS: die Wodbefehle hatte ich doch schon genannt.... aber pssst...!:D

Die kannst Du nehmen....

e-mo
05.08.2009, 17:11
hi hotte...

ja, ich meinte auch, nochmal durchlesen, was diese befehle so alles macht. bin leider noch nicht dazu gekommen.

nein, on word muss man sich nicht an-/abmelden. damit meinte ich auch auch windowslogin.
wenn bei mir also word offen ist, und ich den computer in meiner abwesendheit sperre und ihn wieder entsperre, erscheint nach der entsperrung (word ist geoeffnet) der VBA editor.

e-mo

Hotte
05.08.2009, 17:16
Hi,

wie ... wo steht er denn da? Also in welcher Zeile und in welchem Modul? Word ist nur geöffnet? Kein Dialog zu sehen - keine Aktionen?

e-mo
06.08.2009, 09:06
gr....

ich komme nicht weiter..

habe den folgende code zum schliessen des dokuments:


Sub FileClose()

Dim UserAntwort As String
UserAntwort = MsgBox(Prompt:="Möchten Sie Änderungen in " & ActiveDocument.Name & " speichern?", _
Buttons:=vbYesNoCancel + vbExclamation)
Select Case UserAntwort
Case Is = vbYes
frm_SaveAs.Show
Case Is = vbCancel
Exit Sub
Case Is = vbNo
ActiveDocument.Close (wdDoNotSaveChanges)
End Select

End Sub


aber die default messagebox wird immernoch angezeigt...und wenn ich auf YES klicke...kommt dann immernoch das defaultfenster, nicht das Dialogfenster. SOS...

das mit dem VBA Editor werde ich einen screenshot machen.

e-mo

Hotte
06.08.2009, 15:07
Hi,

ich hab im Moment nicht so viel Zeit.

Aber hiermit:

ActiveDocument.Close (wdDoNotSaveChanges)


löst Du wohl wieder das eigenen Ereignis aus... damit muss man schon mit Bredacht umgehen.

e-mo
06.08.2009, 16:11
Hi Hotte...

ok, dass du busy bist :) du bist ja nicht hauyptsaechlich mit mir beschaeftigt.

zu deinem tip denke ich mal, dass es nicht das problem ist, denn wenn ich bereits das X klicke, um das dokument zu schliessen, taucht die MsgBox nicht auf, die ich im Code festgeschreiben habe. da tauch der bereits das default fenster auf.

e-mo

Hotte
07.08.2009, 09:53
Hi,

also bei mir funktionert es ohne Probleme. Nur eine kleine Ergänzung - denn man will ja das Dokuemtn speichern udn dann sol es geschlossen werden (hat man ja angeklickt).

Daher musst Du noch dieses einsetzen:

Case Is = vbYes
frm_SaveAs.Show
ActiveDocument.Close (wdDoNotSaveChanges)

Also wie gesagt - bei mir funktioniert es - sogar mit Word 2007....

e-mo
08.08.2009, 08:54
Hi Hotte...

es hat bei mir jetzt endlich auch geklappt :) ABER....da stimmt was trotzdem nicht.
Du hast gesagt, wenn es gespeichert hat, dann soll es das dokument schliessen....was natuerlich stimmt...aber wenn man in der frm_SaveAs.Show ist...und auf Abbrechen klickt, dann sollte es das dokument nicht schliessen, sondern sondern den vorgang abbrechen, was leider nicht ist. im moment, wenn ich in der DocClose () bin....und vondort aus auf die frm_SaveAs.Show (nachdem ich aus YES geklickt habe) und in der frm_SaveAs.Show auf Abbrechen oder X klicke....dann schliesst es das Dokument komplett...was aber nur normalerweise ein EXIT SUB sein sollte. das funktioniert nicht mehr.
ich habe bereits versucht, diese schleife zu umschreiben...ging aber ned.

e-mo

Hotte
08.08.2009, 11:42
Hi,

schreib in der Aktion der Userform bei "Abbrechen" statt "Unload Me" einfach nur "End"... und probier es dann mal.

Aber nur dort!

e-mo
10.08.2009, 14:36
Hi Hotte...

ja...das hat den trick gemacht! du bist der beste!!! :D
ich denke das ist soweit fertig...und wie gesagt Hotte...wenn du am WE in FFM bist bzw. Berlin...sage mir bescheid. Das bier geht auf mich :)

ich muss dir sagen, dass ich hierbei viel gelernt habe....die logik und verhalten von codes etc. Ich finde es ist immer gut...direkt an einem projekt zu arbeiten, wo man genau weiss...wie es aussehen soll...und wie man dorthin kommt.

ich habe zwar noch einige enhancement im kopf...aber ich werde versuchen, diese alleine zu loesen. Danke dir nochmal....

LG,

e-mo