Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
automatischer Makrostart mit Häufigkeit
zurück: Frage zum Makroprogramm weiter: Mit Makro Zeile kopieren und eine Zeile drunter einfügen 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
Fischauto
Gast


Verfasst am:
01. Sep 2006, 10:07
Rufname:

automatischer Makrostart mit Häufigkeit - automatischer Makrostart mit Häufigkeit

Nach oben
       

Hallo Word-Makroexperten,

ich habe folgendes Problem:

Eine Anwendung generiert mir nacheinander mehrere Word-Dokumente.
Die Anzahl der generierten bzw. geöffneten Dokumente können variieren.
Ich möchte nun gerne, dass ein Makroprogramm so oft als Schleife starten soll, entsprechend der Anzahl der geöffneten Dokumente, wobei immer das erst geöffnete Dokument nicht mit zählen soll.
D.h sind z.B 5 Dokumente geöffnet, soll mein Makroprogramm 4 gestartet werden. Sind nur 3 Dokumente geöffnet, dann nur 2 mal usw.

Kann manirgendwie einfachst mit einem Makro realisieren und wie ?

Gruß

Uli
CHF
Word-VBA Professional


Verfasst am:
01. Sep 2006, 12:49
Rufname:


AW: automatischer Makrostart mit Häufigkeit - AW: automatischer Makrostart mit Häufigkeit

Nach oben
       

warum soll ein Makro mehrmals gestartet werden?
Prüf im Makro die Anzahl der offenen Dokumente und handel in einer Schleife.

_________________
Gruß

CHF

Bitte keine Anfragen per PN!
Fragen gehören ins Forum!
>
Fischauto
Gast


Verfasst am:
01. Sep 2006, 14:25
Rufname:

AW: automatischer Makrostart mit Häufigkeit - AW: automatischer Makrostart mit Häufigkeit

Nach oben
       

Hallo CHF,

danke Dir für Deine Antwort.
Der Sinn, warum das Makro mehrmals starten soll, hat folgender Hintergrund:
In dem ersten Dokument ( Hauptdokument) sollen Texte aus den anderen Dokumenten in das Hauptdokument (erstes Dokument) eingefügt werden bzw. zusammengefügt werden. So soll der Ablauf der Schleife aussehen
Das Makro läuft so ab (grob geschrieben):
gehe in active.document(2), kopiere das Dokument, gehe nach active.document(1), füge das Kopierte ein . Dann
gehe in active.document(3), kopiere das Dokument, gehe nach active.document(1), füge das Kopierte ein. Dann
gehe in active.document(4), kopiere das Dokument, gehe nach active.document(1), füge das Kopierte ein

usw.

Momentan habe ich eine Hilfslösung die so aussieht:
Alle Dokumente sind geöffnet, während das Hauptdokument immer an erster Stelle stehen muß. Dann wähle ich das Makro per Button in der Befehlsleiste an. Das Makro sieht wie oben aus:
gehe in active.document(2), kopiere das Dokument, schließe Dokument(2), gehe nach active.document(1), füge das Kopierte ein.
Durch das Schließen des Dokumentes 2 rutschen die nachfolgenden Dokumente nach. D.h. das zuvor an dritter Stelle stehende Dokument ist jetzt das Dokument 2. Dann drücke ich wieder den Button und das Makro wird wieder ausgeführt usw. Es kann vorkommen das mehr als 10 Dokumente geöffnet sind.
Die momentane Lösung ist eine Halbautomatik. Ich möchte nun eine Vollautomatik mit einer Schleife. Das Problem:

Das ich erst prüfen muß und eine Schleife brauche ist mir schon bewußt. Wenn ich wüßte wie, hätte ich nicht die Frage ins Forum gestellt.
Kannst Du vielleicht zeigen wie die Codes aussehen könnten?

Gruß

Uli
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
01. Sep 2006, 20:19
Rufname:
Wohnort: Leipzig

AW: automatischer Makrostart mit Häufigkeit - AW: automatischer Makrostart mit Häufigkeit

Nach oben
       

Hallo Uli,

hier mal ein Bsp., wie man durch die Dokumente schleift. Muss natürlich noch an Deine Aufgabe angepasst werden:
Code:
Sub Test()

    Dim HauptDoc As Document
    Dim HName As String
    Dim i As Integer
   
    Set HauptDoc = ActiveDocument
    HName = HauptDoc.Name
    For i = Documents.Count To i Step -1
        If Not Documents(i).Name = HName Then
            Documents(i).Select
            Selection.Copy
            Selection.Collapse wdCollapseStart
            HauptDoc.Activate
            Selection.Collapse wdCollapseEnd
            Selection.Paste
            Selection.Collapse wdCollapseEnd
            Documents(i).Close
        End If
    Next i
    Set HauptDoc = Nothing
   
End Sub

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

Guter Rat ist teuer!
Fischauto
Gast


Verfasst am:
02. Sep 2006, 10:06
Rufname:


AW: automatischer Makrostart mit Häufigkeit - AW: automatischer Makrostart mit Häufigkeit

Nach oben
       

Moin Lisa,

hey Frau, einfach genial. Ich danke Dir ganz herzlich für die Codes die super funzen.
Eine Frage noch:

Der Name des Hauptdokumentes kann doch auch Document(1) lauten. Oder? Und der Part

Selection.Copy
Selection.Collapse wdCollapseStart
HauptDoc.Activate
Selection.Collapse wdCollapseEnd
Selection.Paste
Selection.Collapse wdCollapseEnd
kann ich doch in ein Modul packen
Sub Einfügen()
Selection.Copy
Selection.Collapse wdCollapseStart
HauptDoc.Activate
Selection.Collapse wdCollapseEnd
Selection.Paste
Selection.Collapse wdCollapseEnd
End Sub
so dass, dann der Code
Sub Test()

Dim HauptDoc As Document
Dim HName As String
Dim i As Integer

Set HauptDoc = ActiveDocument
Document(1) = HauptDoc.Name
For i = Documents.Count To i Step -1
If Not Documents(i).Name = HName Then
Documents(i).Select
Call Einfügen
Documents(i).Close
End If
Next i
Set HauptDoc = Nothing

End Sub
Ist es eigentlich möglich, wenn Excel und Word gleichzeitg geöffnet sind, das man Makros in Word, die in Excel installiert sind, aufrufen kann, und umgekehrt.

Vielen Dank nochmal für Deine Hilfe.

Ich werde die Codes am Montag in das eigentliche Dokument einfügen und hoffe natürlich, das ich mich dann nicht noch einmal melden muß.

Ein schönes Wochenende

Gruß

Uli
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
03. Sep 2006, 18:49
Rufname:
Wohnort: Leipzig

AW: automatischer Makrostart mit Häufigkeit - AW: automatischer Makrostart mit Häufigkeit

Nach oben
       

Hallo Uli,

ob Du am Code etwas ändern kannst: Diese Frage ist mir wirklich unklar. Probier es doch einfach aus! Dann siehst Du genau, was geht und was nicht. Man lernt dabei sehr viel.
Sicher ist es möglich und auch sinnvoll, den Teil, der mit allen Dokumenten gemacht werden soll, in eine eigene Prozedur zu packen. Probier Deinen (und meinen) Code aus und sieh selbst, was dabei passiert. Es ist immer sinnvoll, ein Element (hier Dokument) aus einer Auflistung (hier Documents) mit einem konkreten Verweis anzusprechen (hier HauptDoc), das funktioniert nämlich zuverlässig und nicht nur zufällig. Wenn man nur Documents(i) verwendet, hängt der Verweis davon ab, welches Dokument zufällig zuerst geöffnet ist. Aber möglich ist das natürlich. Probier es einfach aus.

Sicher ist es auch möglich, wenn Excel und Word gleichzeitig geöffnet sind, Makros der anderen Anwendung aufzurufen. Das hast du ja in dem anderen Thread schon gesehen. Man muss dann mit ordentlichen Verweisen auf die anderen Anwendungen arbeiten, dann kann man die Makros ansprechen. Es lässt sich aber nicht in zwei Sätzen erläutern. Die Vorgehensweise ist in diesen beiden Skripten sehr gut erklärt (viel besser, als ich das hier darstellen könnte):

Word und Excel im Zusammenspiel - Teil 1

Word und Excel im Zusammenspiel - Teil 2

Gruß, Lisa
Fischauto
Gast


Verfasst am:
04. Sep 2006, 09:04
Rufname:

AW: automatischer Makrostart mit Häufigkeit - AW: automatischer Makrostart mit Häufigkeit

Nach oben
       

Hallo Lisa,

vielen Dank für Deine Links, die ich mir im Laufe des Tages anschauen werde.
Ich muß Dir leider nochmal zum Programm eine Frage stellen.
Das Programm läuft noch nicht ganz rund. Die Schleife wird ausgeführt, das Makroprogramm, aber der Debugger meldet ' Das angeforderte Element ist nicht in der Sammlung vorhanden' und bleibt bei der Syntax

If Not Documents(i).Name = A_Anschreiben Then

stehen. Obwohl ich dem Hauptdokument dimensioniert habe
Dim A_Anschreiben As String
Dim i As Integer
Set HauptDoc = ActiveDocument
A_Anschreiben = HauptDoc.Name

Gruß

Uli
CHF
Word-VBA Professional


Verfasst am:
04. Sep 2006, 11:56
Rufname:

AW: automatischer Makrostart mit Häufigkeit - AW: automatischer Makrostart mit Häufigkeit

Nach oben
       

Hi,

und welchen Wert hat i?

Documents(i) hat einen ungültigen Wert angenommen, da i wohl größer als die Anzahl der offenen Dokumente.

Geh mit der Maus über die Variable und lasse sie darüber verweilen. Es wird dann der Wert, natürlich nur wenn die Verarbeitung pausiert (gelbe Zeile), eingeblendet.

_________________
Gruß

CHF

Bitte keine Anfragen per PN!
Fragen gehören ins Forum!
>
Fischauto
Gast


Verfasst am:
04. Sep 2006, 12:33
Rufname:

AW: automatischer Makrostart mit Häufigkeit - AW: automatischer Makrostart mit Häufigkeit

Nach oben
       

Hallo CHF,

vielen Dank für Deine Antwort.

Hier nochmal der von mir abgänderte Code

Sub Test()

Dim HauptDoc As Document
Dim A_Anschreiben As String
Dim i As Integer

Set HauptDoc = ActiveDocument
A_Anschreiben = HauptDoc.Name
For i = Documents.Count To i Step -1
If Not Documents(i).Name = A_Anschreiben Then
HauptDoc.Activate
Selection.GoTo what:=wdGoToPage, which:=wdGoToNext, Name:="9"
Selection.MoveDown Unit:=wdParagraph, Count:=1
Documents(i).Select
Selection.GoTo what:=wdGoToPage, which:=wdGoToNext, Name:="2"
Selection.EndKey Unit:=wdStory, Extend:=wdExtend
Selection.Copy
HauptDoc.Activate
Selection.Paste
Selection.GoTo what:=wdGoToPage, which:=wdGoToNext, Name:="1"
Documents(i).Close
End If
Next i

Set HauptDoc = Nothing

End Sub

Ich habe ein Beispiel durchgeführt mit insgesamt 2 geöffneten Dokumenten, wobei das eine das Hauptdokument (A_Anschreiben) ist.

Die Mouse hat mir folgendes angezeigt.

For i = Documents.Count To i Step -1 = 1
If Not Documents(i).Name = Angebot_Anschreiben Then = 0

Gruß

Uli
CHF
Word-VBA Professional


Verfasst am:
04. Sep 2006, 12:43
Rufname:

AW: automatischer Makrostart mit Häufigkeit - AW: automatischer Makrostart mit Häufigkeit

Nach oben
       

Hi,

For i = Documents.Count To i Step -1

ist irgendwie "falsch" (2x i?)

Und Documents(0) gibt es nicht. Also die Schleife anpassen.

_________________
Gruß

CHF

Bitte keine Anfragen per PN!
Fragen gehören ins Forum!
>
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
04. Sep 2006, 12:49
Rufname:
Wohnort: Leipzig

AW: automatischer Makrostart mit Häufigkeit - AW: automatischer Makrostart mit Häufigkeit

Nach oben
       

Hallo Uli,

sorry, war ein Flüchtigkeitsfehler, muss natürlich heißen:
Zitat:
For i = Documents.Count To 2 Step -1

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

Guter Rat ist teuer!
Fischauto
Gast


Verfasst am:
04. Sep 2006, 13:09
Rufname:

AW: automatischer Makrostart mit Häufigkeit - AW: automatischer Makrostart mit Häufigkeit

Nach oben
       

Hallo Lisa, hallo CHF,

auch Göttinnen machen mal Fehler.

Die Schleife habe ich entsprechend angeapaßt, aber nun wird das Makroprogramm nicht ausgeführt. Bei drücken des Button geschieht nichts.

Gruß

Uli
Gast



Verfasst am:
04. Sep 2006, 13:21
Rufname:


AW: automatischer Makrostart mit Häufigkeit - AW: automatischer Makrostart mit Häufigkeit

Nach oben
       

Hallo Lisa, hallo CHF,

es ist geschafft. Dank Eurer Hilfe. Das Programm läuft jetzt einwandfrei.
Nicht
For i = Documents.Count To 2 Step -1 muß heißen, sondern

For i = Documents.Count To 1 Step -1.

Dann funzt es, denn das Hauptdokument soll beim Count nicht mitgezählt werden.

Danke Euch nochmal für Eure Unterstützung und Bereitschaft.

Liebe Grüße


Uli

Uli
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 Formate: Automatischer Umbruch für Seriendruckfeld in Word 6 chrimap 736 14. Aug 2013, 18:38
Ute-S Automatischer Umbruch für Seriendruckfeld in Word
Keine neuen Beiträge Word Gestaltungselemente: Automatischer Index, 5 Seiten lang, letzte Kopfzeile fehlt 0 AudreyLilly 135 29. Mai 2013, 22:16
AudreyLilly Automatischer Index, 5 Seiten lang, letzte Kopfzeile fehlt
Keine neuen Beiträge Word VBA Programmierung (Makros): Automatischer VBA Ablauf bei Word-Start via Dritt-Programm 1 Roger Boll 128 15. Apr 2013, 20:48
CaBe Automatischer VBA Ablauf bei Word-Start via Dritt-Programm
Keine neuen Beiträge Word Formate: automatischer Umbruch bei Ergänzungsstrich 7 halweg 353 18. März 2013, 23:27
halweg automatischer Umbruch bei Ergänzungsstrich
Keine neuen Beiträge Word Formate: KEIN automatischer Spaltenumbruch 1 hr_muc 286 31. Dez 2012, 12:44
G.O.Tuhls KEIN automatischer Spaltenumbruch
Keine neuen Beiträge Word Formate: Satzbaustein nach automatischer Prüfung auswählen 1 ExUserCel 379 19. Jul 2012, 15:11
agimh Satzbaustein nach automatischer Prüfung auswählen
Keine neuen Beiträge Word Gestaltungselemente: Frage zu automatischer Abbildungsbeschriftung 12 Gast 417 01. Jul 2012, 12:11
Rocky89 Frage zu automatischer Abbildungsbeschriftung
Keine neuen Beiträge Word Hilfe: Automatischer Text wie bei 'mfg' [= Mit freundlichen Grüßen] 6 torsten_156 19082 05. Dez 2011, 22:00
Gast Automatischer Text wie bei 'mfg' [= Mit freundlichen Grüßen]
Keine neuen Beiträge Word Formate: Automatischer Zeilenumbruch in nächster Zeile 1 Macvot 1304 28. Nov 2011, 11:17
G.O.Tuhls Automatischer Zeilenumbruch in nächster Zeile
Keine neuen Beiträge Word Hilfe: Bindestrich, nicht als automatischer Trennungsstrich 5 Gast 4083 21. März 2011, 09:34
tylon Bindestrich, nicht als automatischer Trennungsstrich
Keine neuen Beiträge Word VBA Programmierung (Makros): Automatischer bzw. 1-Klick-Eintrag in Autokorrektur 6 hostelli 539 25. Jan 2010, 22:30
hostelli Automatischer bzw. 1-Klick-Eintrag in Autokorrektur
Keine neuen Beiträge Word VBA Programmierung (Makros): Automatischer Link erstellen 3 stefanbla81 1265 17. Aug 2009, 21:04
stefanbla81 Automatischer Link erstellen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Word VBA