VBA: Dokument A schließen und Dokument B öffnen

Hallo,
unter Word 2010/VBA soll die aktive Datei mit der Bezeichnung „DokumentNN+1“ ohne die dort vorgenommenen Veränderungen geschlossen und nicht gespeichert werden und das Dokument „DokumentNN“ soll geöffnet/aktiviert werden. Beide Dokumente sind, wenn man den Word-Button berührt sichtbar, beide Dokumente haben den Dateinamen „Dokument“ und eine einstellige Ziffer am Schluss, Die Ziffer des zu schließenden Dokuments (z.B. Dokument3) ist immer um 1 höher als das zu aktivierende Dokument (also Dokument2). Hat sicher was mit len zu tun. Wie sieht der Codeschnipsel aus?
LG Wilhelm

Beide Dokumente
sind, wenn man den Word-Button berührt sichtbar

Hallo Wilhelm,

was meinst du mit Word-Button? Berühren =klicken?
Meinst du das runde Office-Symbol oben links? Das hat Excel auch.
Der Code soll dann in normal.dotm stehen?

Gruß
Reinhard

Hallo Reinhard, Helfer in der Not:

Der Word-Button - ich bin nicht in der Kanzlei - befindet sich am unteren Rand des Bildschirm, stammt aber wohl vom NORA-Kanzleiprogramm, neben Buttons für den Internet-Explorer, Outlook pp. Wenn man mit dem Cursor über den Button geht, sieht man verkleinert die beiden Dokumente, die man mit Click auf ein Dokument „aktiviert“

Geh’ bitte davon aus, dass der Code in normal.dotm kommen soll. Er kommt aber schließlich in das Auto-Start-Verzeichnis, damit sämtliche Computer auf den Code Zugriff haben. Das bekomme ich aber hin.

Höre ich von Dir?
mfg Wilhelm

Hallo Wilhelm,

Der Word-Button - ich bin nicht in der Kanzlei - befindet sich
am unteren Rand des Bildschirm, stammt aber wohl vom
NORA-Kanzleiprogramm, neben Buttons für den Internet-Explorer,
Outlook pp. Wenn man mit dem Cursor über den Button geht,
sieht man verkleinert die beiden Dokumente, die man mit Click
auf ein Dokument „aktiviert“

bitte erzähl nix von Berühren. Mit der Maus drübergehen und dann klicken ist klicken.

Geh’ bitte davon aus, dass der Code in normal.dotm kommen
soll. Er kommt aber schließlich in das Auto-Start-Verzeichnis,
damit sämtliche Computer auf den Code Zugriff haben. Das
bekomme ich aber hin.

Mit Netzwerk kenne ich mich nicht aus, ich codiere für einen Einzelplatz-PC für die Normal.dotm.

Dazu muß ich aber noch etwas wissen.
Wie willst du das Makro starten? Tastenkürzel, Symbol in Word, Alt+F8, anders?
Was erwartet das Makro wenn es gestartet wird?
Immer nur zwei Docs mit Namen DokumentN und DokumentN+1?
Oder gibtes da mehrere die so heißen?

Abgesehen davon daß ich Dokument1.docx für sehr ungut halte.
Oder, ich gehe von Rechtsanwaltskanzlei aus, beschriftet ihr eure Ordner mit
Klient00001/2013, Klient00002/2013, usw.?
Okay, mit klarer Ordnerstruktur geht das (evtl.)

Wegen Ordnerstruktur fällt mir ein, in welchen Ordner soll ich denn speichern?
In den wo die Doc herkommt? D.h. sie wurden schon mal gespeichert.

Ansonsten habe ich die Grundaufgabe verstanden, ich frage halt Details vorab an, besser als nachher =doppelte Arbeit für mich.

PS: ist es eine Rechtsanwaltskanzlei? Darf ich dich deshalb mal anmailen?
Nix schlimmes, will nur Rat.

Gruß
Reinhard

Hi,
tatsächlich zeigen sich beim Ziehen mit der Maus/ o d e r Klicken die geöffneten Dokumente als ca. 3 x 3 cm große Icons am unteren Bildschirmrand.

Gestartet wird das Makro entweder über einen Short-Cut (sehr wahrscheinlich) oder evtl. auch über ein Symbol im Menuband. Das Makro wird gestartet im aktivierten Dokument A, nimmt dort Zeichenfolgen mit, geht dann zu B und arbeitet sich dort weiter ab. Es gibt immer nur 2 Dokumente, mit Namen DokumentN und DokumentN+1. Die Dokumentnamen werden vom System so vergeben und behalten diese Namen, solange sie nicht gespeichert sind. Zum Zeitpunkt der Bearbeitung sind beide Dokumente noch nicht gespeichert worden. A wird nach Bearbeitung nicht mehr gebraucht und gar nicht gespeichert, B erhält vom NORA-Programm einen aussagefähigen Namen und wird einem Aktenzeichen zugeordnet.

Auf Deine Mail freue ich mich sehr, weil ich Dir dann vielleicht tatsächlich auch einmal helfen kann.

Schönes Wochenende und mfg
Wilhelm.

Hallo Wilhelm,

Das Makro wird gestartet im aktivierten Dokument A, nimmt dort
Zeichenfolgen mit, geht dann zu B und arbeitet sich dort
weiter ab.

Ähem, mein Makro? Wußte ich noch gar nicht *glaub* :smile:

Es gibt immer nur 2 Dokumente, mit Namen DokumentN
und DokumentN+1.

Sagst du, ich bin da mißtrauisch ob das nur so stimmt beim Start des Makros von wem auch immer.
Nachstehend ein Code „Nora“, dem ist es egal was da alles für Docs geöffnet sind.

„Verbotene“ Dateinamen sind:
Docnamen die nicht mit „Dokument“ beginnen
Docnamen die nur „Dokument“ heißen ohne Index hinten
Docnamen die hinter Dokument keine Zahl haben. (zB. auch eine gespeicherte Dokument1.docx)

Der Code beachtet nur die Dateien die sich daran halten:
Dokument plus Zahl

Derzeit werden sie in ein Array geschrieben, dieses wird sortiert angezeigt.

Zum Zeitpunkt der Bearbeitung sind beide
Dokumente noch nicht gespeichert worden.

Ja, davon bin ich beim Codieren ausgegangen.

A wird nach
Bearbeitung nicht mehr gebraucht und gar nicht gespeichert, B
erhält vom NORA-Programm einen aussagefähigen Namen und wird
einem Aktenzeichen zugeordnet.

Aha, ich glaube da ist mir noch was unklar aber teste erst mla Nora.
Probier ruhig rum, also falsche oder zuwenig oder zuviel „Dokument“ plus zahl

Auf Deine Mail freue ich mich sehr, weil ich Dir dann
vielleicht tatsächlich auch einmal helfen kann.

Danke dir, ist zeitlich nicht eilig. Ich melde mich aber.

Gruß
Reinhard

In ein Standardmodul:

Option Explicit
Public einzeldoc

Sub Nora()
Dim D As Document, N As Integer, strDoc As String, Msg As String
For Each D In Documents
 If D.Name Like "Dokument\*" And IsNumeric(Replace(D.Name, "Dokument", "")) Then
 strDoc = strDoc & Replace(D.Name, "Dokument", "") & "#"
 End If
Next D
If Pruef(strDoc) = False Then Exit Sub
Call Bubblesort(einzeldoc)
For N = LBound(einzeldoc) To UBound(einzeldoc)
 Msg = Msg & "Dokument" & einzeldoc(N) & vbLf
Next N
MsgBox Msg
End Sub

Function Pruef(strDoc) As Boolean
If Len(strDoc) = 0 Then
 MsgBox "Keine Doc mit Namen ""Dokument plus Zahl"" gefunden"
 Exit Function
End If
einzeldoc = Split(Left(strDoc, Len(strDoc) - 1), "#")
If UBound(einzeldoc) = 0 Then
 MsgBox "Nur ein Doc mit Namen ""Dokument plus Zahl"" gefunden"
 Exit Function
End If
Pruef = True
End Function

Sub Bubblesort(ByRef arr)
Dim j, i, vTemp
For j = UBound(arr) - 1 To LBound(arr) Step -1
 For i = LBound(arr) To j
 If arr(i) \> arr(i + 1) Then
 vTemp = arr(i)
 arr(i) = arr(i + 1)
 arr(i + 1) = vTemp
 End If
 Next i
Next j
End Sub

Erklärung zu meinem Code
Hallo Wilhelm,

laß dich bitte nicht von der Länge meiner Codes erschrecken.
Wenn du 1000‰ IMMER garantieren kannst daß nur zwei Docs offen sind die im Namen mit Dokument beginnen, so wird der Code gewaltig kürzer.

Ansonsten, das mal weglassend über Makro macht dies und das, wo ich ja nachfragte so ist es für mich relativ ein Klacks von zwei Docs die sich nur im Index im Namen unterscheiden, die eine zu schließen ohne Speicherung und die andere zu speichern, in welchen Ordner ist mir noch unklar. Und der Einfluß von Nora ist mir noch suspekt.

Gruß
Reinhard