ich bin ein ziemlicher Neuling und versuche, für unserer Sekretariat und die
Kollegen neue Dokumentvorlagen möglichst komfortabel handhabbar zu machen.
Mein Problem:
Anklicken eines Icons in der Standartsymbolleiste startet ein Makro, das
eine Auswahlbox aufruft, in der man entsprechend wählen kann. Brief farbig,
Brief sw; Fax usw.
Eine Userform erstellt zwar wie gewünscht mit
Private Sub Label1_Click()
Documents.Add Template:= _
"C:\Dokumente und
Einstellungen\Administrator\Anwendungsdaten\Microsoft\Vorlagen\Schule\Brief
sw.dot" _
, NewTemplate:=False, DocumentType:=0
Unload Abfrage1
ein neues Dokument entsprechend der Vorlage und schließt die Userform, doch
ist dieses Dokument nicht aktiv, d.h. auf dem Bildschirm bleibt das alte
Dokument und ich muss das neue anklicken, um damit arbeiten zu können.
Sicher kann jemand helfen.
Freundliche Grüße und vielen Dank schon mal
H.-G.
"Hans-Gerd Ackermann" <H-G.Ac...@gmx.de> schrieb im Newsbeitrag news:a7ns4e$cqh$1...@news.rhein-zeitung.de...
Ich hatte gerade dieselben Schwierigkeiten.
Das Problem liegt darin, dass man gar nicht weiß, welches Window in der
Windows-Auflistung hinzugekommen ist. Zuertsdachte ich, es wär das letzte,
dann war's auf einmal das erste, ...
Na ja, ich hab's so gelöst:
'vor dem Hinzufügen des neuen Dokumentes alle Windows-Objekte in ner
'Collection speichern:
For Each aWindow in Windows
allWindows.Add aWindow, aWindow.Caption 'zweites Argument ist wichtig!
Next aWindow
'Dann das Dokument hinzufügen
'[...]
'Dann wieder alle Windows-Objekte in ner zweiten Collection speichern:
For Each aWindow in Windows
allWindows2.Add aWindow, aWindow.Caption
Next aWindow
'alle Windows-Objekt, die in der ersten Collection drin sind, aus der
'zweiten löschen
For Each aWindow in allWindows
allWindows2.Remove aWindow
Next aWindow
'Dann bleibt in der zweiten Colection nur noch eins übrig
Windows(allWindows2(1)).Activate
Grüße
Christian
zuerst vielen Dank für deine Hilfe.
Leider läuft das bei mir nicht.
Ich erhalte
For Each aWindow In Windows
"allWindows.Add aWindow, aWindow.Caption" hier einen Fehler 424 Objekt
erforderlich
Grüße
H.-G.
"Christian Ludt" <Christi...@mdb-solutions.de> schrieb im Newsbeitrag
news:enA77BN1BHA.1280@tkmsftngp04...
"Hans-Gerd Ackermann" <H-G.Ac...@gmx.de> schrieb im Newsbeitrag news:a7q6se$6ea$1...@news.rhein-zeitung.de...
> Hallo Christian,
>
> zuerst vielen Dank für deine Hilfe.
>
> Leider läuft das bei mir nicht.
> Ich erhalte
> For Each aWindow In Windows
> "allWindows.Add aWindow, aWindow.Caption" hier einen Fehler 424 Objekt
> erforderlich
Du hast wahrscheinlich vergessen, die Variablen zu deklarieren.
Oder Du hast das "New" vergessen.
Dim aWindow as window
Dim allWindows as New Collection, allWindows2 as New Collection
^^^ ^^^
Grüße
Christian
> ein neues Dokument entsprechend der Vorlage und schließt die Userform, doch
> ist dieses Dokument nicht aktiv, d.h. auf dem Bildschirm bleibt das alte
> Dokument und ich muss das neue anklicken, um damit arbeiten zu können.
>
Probiere, ob das funktioniert:
Private Sub Label1_Click()
Dim doc as Word.Document
Set doc = Documents.Add Template:= _
"C:\Dokumente und
Einstellungen\Administrator\Anwendungsdaten\Microsoft\Vorlagen\Schule\Brief
sw.dot" _
, NewTemplate:=False, DocumentType:=0
doc.Windows(1).activate
Cindy Meister
INTER-Solutions, Switzerland
http://www.mvps.org/word
http://homepage.swissonline.ch/cindymeister
http://go.compuserve.com/MSOfficeForum
Rückfragen & Antworten nur in der Newsgroup, bitte!
vielen Dank für die Mühe,
leider funktioniert auch das nicht.
Die ganze Set Anweisung wird rot markiert und die Fehlermeldung: Fehler beim
Kompilieren, Syntaxfehler ausgegeben.
Grüße
H.-G.
"Cindy Meister -WordMVP-" <CindyM...@swissonline.ch> schrieb im
Newsbeitrag news:VA.00005828.000f8111@speedy...
"Hans-Gerd Ackermann" <H-G.Ac...@gmx.de> schrieb im Newsbeitrag news:a7vj4s$jhf$1...@news.rhein-zeitung.de...
> Hallo Cindy,
>
> vielen Dank für die Mühe,
> leider funktioniert auch das nicht.
> Die ganze Set Anweisung wird rot markiert und die Fehlermeldung:
> Fehler beim Kompilieren, Syntaxfehler ausgegeben.
Entferne die Zeilenumbrüche, oder probier das:
Private Sub Label1_Click()
Dim doc as Word.Document
Set doc = Documents.Add Template:= _
"C:\Dokumente und Einstellungen\" + _
"Administrator\Anwendungsdaten\" + _
"Microsoft\Vorlagen\Schule\Brief sw.dot" _
, NewTemplate:=False, DocumentType:=0
doc.Windows(1).activate
End Sub
Heiß die Vorlage "Brief sw.dot"? Oder fehlt da ein Unterstrich?
Grüße
Christian
Dank für die Mühe, aber es funktioniert weder mit den + Zeichen noch durch
entfernen der Zeilenumbrüche.
Wenn ich alle Zeilenumbrüche entferne, wird zuerst der Begriff "Template"
rot markiert und die Fehlermeldung erwarte Anweisungsende ausgegeben. Beim
erneuten Versuch erscheint wieder die Meldung "Syntaxfehler".
Gruß
H.-G.
"Christian Ludt" <Christi...@mdb-solutions.de> schrieb im Newsbeitrag
news:eiSkz3n1BHA.2800@tkmsftngp07...
> leider funktioniert auch das nicht.
> Die ganze Set Anweisung wird rot markiert und die Fehlermeldung: Fehler beim
> Kompilieren, Syntaxfehler ausgegeben.
>
Ach, ja, habe die Klammer vergessen. Passiert uns alle, wenn wir eine solche
Bearbeitung vornehmen, nur wissen wir meistens sofort, was die Fehlermeldung
bedeutet. Sorry.
Set doc = Documents.Add(Template:= _
"C:\Dokumente und
Einstellungen\Administrator\Anwendungsdaten\Microsoft\Vorlagen\Schule\Brief
sw.dot" _
, NewTemplate:=False, DocumentType:=0)
leider lä#uft es immer noch nicht.
Das neue Dokument wird erstellt und in der Taskleiste auch aktiviert
angezeigt (eingedrückt und hellgrau unterlegt) doch der Cursor bleibt auf
dem ersten Dokument. Um das neue zu sehen muss ich das Dokument in der
Taskleiste anklicken. Im Fensternmenü wird das neue Dokument nicht
angezeigt.
Grüße
H.-G.
"Cindy Meister -WordMVP-" <CindyM...@swissonline.ch> schrieb im
Newsbeitrag news:VA.00005852.00357055@speedy...
> leider lä#uft es immer noch nicht.
>
Also, jetzt von Vorne neu anfangen. Ich nehme an, alles was
Du wirklich willst, ist ein neues Dokument zu erstellen,
und dieses aktiviert haben. Bei mir läuft es immer
einwandfrei, wie folgt
Private Sub CommandButton1_Click()
Dim doc As Word.Document
Set doc = Documents.Add(template usw hier)
Unload Me
End Sub
ein letzter Versuch
du hast schon recht, alles was ich will ist ein neues Dokument entsprechend
einer Vorlage erstellen und aktivieren, d.h. ich möchte dann das neue Dok
auf dem Bildschirm haben.
Mit dem neuen Makro erstelle ich zwar ein neues Dokument, dieses Dok
befindet sich aber nicht auf dem Bildschirm, sondern nur in der Taskleiste.
Ich muss erst das Dok in derTaskleiste anklicken, um damit arbeiten zu
können.
Ein altes WordBasic Makro (siehe unten) tut genau diesen Dienst. Ich wollte
das Ganze nur auf Word2000 umstellen.
Public Sub Main()
Dim retwert
WordBasic.BeginDialog 580, 250, "Vorlagen"
WordBasic.OptionGroup "Optiongroup1"
WordBasic.OptionButton 20, 40, 183, 16, "Brief farbig",
"Optionsfeld1"
WordBasic.OptionButton 20, 80, 124, 16, "Brief sw", "Optionsfeld2"
...
WordBasic.OKButton 40, 200, 100, 21
WordBasic.CancelButton 400, 200, 100, 21
WordBasic.Text 42, 10, 53, 13, "Briefe", "Text1"
...
WordBasic.EndDialog
Dim formular As Object: Set formular = WordBasic.CurValues.UserDialog
retwert = WordBasic.Dialog.UserDialog(formular)
If retwert = 0 Then
GoTo Ende
End If
Select Case formular.OptionGroup1
Case 0
WordBasic.FileNew Template:="C:\Dokumente und
Einstellungen\Administrator\Anwendungsdaten\Microsoft\Vorlagen\Schule\Brief_
f.dot", NewTemplate:=False, DocumentType:=0
Case 1
WordBasic.FileNew Template:="C:\Dokumente und
Einstellungen\Administrator\Anwendungsdaten\Microsoft\Vorlagen\Schule\Brief_
sw.dot", NewTemplate:=False, DocumentType:=0
...
End Select
Ende:
End Sub
Vielen Dank für deine Mühe
freundliche Grüße
H.-G.
P.S. Frohe Ostern
"Cindy Meister -WordMVP-" <CindyM...@swissonline.ch> schrieb im
Newsbeitrag news:VA.00005875.006f64c9@speedy...
> Mit dem neuen Makro erstelle ich zwar ein neues Dokument, dieses Dok
> befindet sich aber nicht auf dem Bildschirm, sondern nur in der Taskleiste.
> Ich muss erst das Dok in derTaskleiste anklicken, um damit arbeiten zu
> können.
>
Hier (und auf den meisten Installationen) ist das nicht der Fall. Das neu
geöffnete Dokument steht zu vorderst. (Wie früher, in WordBasic)
Welche Handlungen werden sonst vom Formular ausgeführt? Gibt es sonst etwas
"besonderes" in Deiner Word Umgebung? Wie wird das Formular eingeblendet?
Office 2000, SR-1 Premium, Winodws 2000 Prof. SP 2, AMD Adlon 700, 256 MB
Speicher,
der Aufruf des Formulars erfolgt über ein Makro
Public Sub Abfrage1_anzeigen()
' Zeigt eine Abfragebox mit den verschiedenen Formatvorlagen für Brief, Fax
usw. an
Abfrage1.Show
End Sub
Das Abfrageformular "UserForm1" enthält ein Textfeld "Bitte wählen" und z.Z.
nur das Feld Brief, das mit dem folgenden Code verbunden ist:
Private Sub Label1_Click( )
Dim doc As Word.Document
Set doc = Documents.Add(Template:="C:\Dokumente und
Einstellungen\Administrator\Anwendungsdaten\Microsoft\Vorlagen\Schule\Brief_
f.dot", NewTemplate:=False, DocumentType:=0)
doc.Windows(1).Activate
Unload Abfrage1
End Sub
Alles andere habe ich erst einmal rausgeschmissen.
Das Abfragemakro ruft wie gewünscht das Abfrage1-Formular auf, dort klicke
ich "Brief" an, der Code wird aufgerufen, das neue Dokument erstellt es
erscheint in der Taskleiste hell unterlegt, auf dem Bildschirm ist aber das
Ursprungsdokumenbt zu sehen. Klicke ich jetzt auf das Dok in der Taskleiste
baut sich das Bildschirmfenster _scheinbar_ von links oben nach rechts unten
ab, es bleibt aber immer noch sichtbar. Das neue Dok in der Taskleiste ist
jetzt dunkel unterlegt. Bei Klick erscheint dann das neue Dok auf dem
Bildschirm.
Die Code-Zeile "doc.Windows(1).Activate" spielt dabei wohl keine Rolle, ich
habe es mit aktiver und auskommentierter Zeile versucht, das Ergebnis war
gleich.
Vielleicht kannst du mit diesen Angaben etwas anfangen. Es eilt nicht so
sehr, bin bis Freitag 05.04. in Urlaub.
Vielen Dank und herzliche Grüße
H.-G.
"Cindy Meister -WordMVP-" <CindyM...@swissonline.ch> schrieb im
Newsbeitrag news:VA.000058a2.004e7983@speedy...
> jetzt dunkel unterlegt. Bei Klick erscheint dann das neue Dok auf dem
möglicherweise ist etwas in den Systemeinstellungen verbogen. So gibt es in
Tweak Ul die Einstellung "Prevent applications from steeling focus" mit mehreren
Optionen.
--
MfG Michael
Die Mailadresse ist replyfähig, sie wird am Anfang eines Quartals
nach dem Muster usenet...@dahms-dahms.com erneuert
> Office 2000, SR-1 Premium, Winodws 2000 Prof. SP 2, AMD Adlon 700, 256 MB
> Speicher, der Aufruf des Formulars erfolgt über ein Makro
Habe zwar nicht die gleichen Systemvoraussetzungen wie du, muss dir aber
gestehen, dass ich den Fehler mit deinem Code nicht nach voll ziehen kann.
Setze vielleicht noch ein 'Abfrage1.Hide' in deinen Code. Vielleicht nützt
das was.
Private Sub Label1_Click( )
Dim doc As Word.Document
Abfrage1.Hide
Set doc = Documents.Add(Template:="C:\Dokumente und Einstellungen\" _
& "Administrator\Anwendungsdaten\Microsoft\Vorlagen\Schule\" _
& "Brief_f.dot", _
NewTemplate:=False, _
DocumentType:=0)
doc.Windows(1).Activate
Unload Abfrage1
End Sub
> Das Abfragemakro ruft wie gewünscht das Abfrage1-Formular auf, [...]
Wie rufts du dein Abfragemakro auf?
--
----------------------------------------------------
Umgebung: Windows XP, Office XP
Greetings from Switzerland
Thomas Gahler
Schön wäre es! Bei mir tritt dasselbe Problem auf. immer das vorletzte
Dokument ist aktiv.
Bei der Abfrage mit 'msgbox Application.ActiveDocument.Name' wird das
richtige Dokument
ausgegeben. Nur mit dem Acitvate-Befehl klappt's dann doch nicht.
Irgendwo muss da doch wohl noch ein Fehler im Programm sein. Selbst die
Lösung
mit der Collection funktioniert nicht.
Gruss
Thomas
"Cindy Meister -WordMVP-" <CindyM...@swissonline.ch> schrieb im
Newsbeitrag news:VA.000058a2.004e7983@speedy...
Habe soeben herausgefunden, wie ich den 'Fehler' umgehen kann. Mann muss vo
dem Erstellen des neuen Dokumentes das Form ausblenden (Me.Hide) und dann
klappt's. Zumindest bei mir. Alle anderen Varianten hatten keinen Erfolg.
Gruss
Thomas
> Habe soeben herausgefunden, wie ich den 'Fehler' umgehen kann. Mann muss vo
> dem Erstellen des neuen Dokumentes das Form ausblenden (Me.Hide) und dann
> klappt's. Zumindest bei mir.
>
Interessant. Werde ich mir notieren :-)
Vielen Dank an alle für euere Bemühungen
und beste Grüße aus dem Rheinland
H.-G.
P.S. Ich habe schon wieder eine Frage, beginne dafür aber wohl besser einen
neuen Thread.
"Thomas Huber" <thomas...@linde-lansing.ch> schrieb im Newsbeitrag
news:OJtwnxw3BHA.2840@tkmsftngp05...