Anzeige
Archiv - Navigation
1200to1204
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA in Word

VBA in Word
Jesús
Hallo Zusammen,
nach dem mein letztes Problem hier erfolgreich gelöst wurde, stehe ich vor einer neuen Hürde.
Folgendes:
Ich habe ein Word Dokument mit einer Tabelle (siehe Anhang). https://www.herber.de/bbs/user/73584.doc
In dieser Tabelle soll die Versionierung gepflegt werden. Das ist das titelblatt eines mehrseitigen Lastenheftes. Sozusagen das Deckblatt des Lastenheftes.
Ich will das das Makro die letzte beschriebene Zeile in der Spalte (Version) erkennt und diese Version bzw. diesen text dann in die Tabelle (Aktuelle Version) einfügt.
Ich bin nicht der VBA Profi, ich habe einen Code bereits geschrieben, doch erhalte ich die Fehlermeldung:
"An dieser Position ist keine Tabelle vorhanden".
Ich habe heute sicherlich schon 3 Stunden verbracht mit suchen Im Internet und komme hier auf kein Ergebniss.
Ich hoffe deshalb hier auf Hilfe von euch. Wer kann mal reingucken und mir meinen Fehler klar machen?
Ich bedanke mich jetzt schon für eure Antworten.

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Word ist kein Excel
16.02.2011 16:41:33
Rudi
Hallo,
warum fragst du da nicht in einem WORD-Forum?
VBA Word/Excel ist schon sehr unterschiedlich.
Gruß
Rudi
AW: VBA in Word
16.02.2011 17:23:50
Reinhard
Hallo Jesus,
was soll da die nahezu leere Doc? Kein Code, in der Tabelle ist nur die oberste Zeile ausgefüllt.
So wird das nix, auch nicht in einem Word-Brett.
Setz dich mal bitte mit dem Begriff "aussagekräftige Beispieldatei" auseinander.
Gruß
Reinhard
AW: VBA in Word
16.02.2011 17:38:49
Jesús
Hallo Reinhard,
danke für die Antworten.
Die Datei sieht später genau so aus. Nur das Noch eine Überschrifft reinkommt. Das ist ein Deckblatt mehr nicht.
Den Ablauf wie das benutz wird habe ich beschrieben, ich weiss nicht was ich noch hinzufügen könnte.
Gruß
Jesús
Anzeige
AW: VBA in Word
16.02.2011 17:39:37
Jesús
Wieso kein Code? Den Code habe ich doch drinnen.
Dann sieh dir mal an, was du hochgeladen...
16.02.2011 17:44:53
Luc:-?
…hast, Jesús,
nicht dein Original!
Gruß Luc :-?
AW: VBA in Word
16.02.2011 18:00:50
Reinhard
Hallo Jesus,
gut wenn du sagst daß da Code drinnen ist, wo dann bitte?
Oder gelang es dir durch einen genialen Trick, irgendwie mit Schriftfarbe = Hintergrundfarbe im Editor den Code unsichtbar zu machen?
Gruß
Reinhard
AW: VBA in Word
16.02.2011 18:54:43
Nepumuk
Hallo,
guckst du:
Userbild
Gruß
Nepumuk
AW: VBA in Word
16.02.2011 19:10:50
Jesús
Danke.
Kann mir jemand dabei bitte helfen?
AW: VBA in Word
16.02.2011 19:25:36
Reinhard
Hallo Nepumuk,
aha, da nur doc habe ich es mit Word2000 geöffnet, da ist Thisdocument leer bis auf Option Explicit.
Und es kommt beim Öffnen das nachfolgende im Bild zu sehende Fensterchen, egal ob ich da Word97-2003 oder Word 2007 mit oder ohne Makros auswähle, in ThisDocument ist kein Code.
Da gibt es ein Kompatibilitäts paket von MS, das habe ich nicht installiert.
Userbild
Gruß
Reinhard
Anzeige
AW: VBA in Word
16.02.2011 19:26:57
Jesús
Kann ich euch behilflich sein wenn ein anderes format nötig ist?
AW: VBA in Word
16.02.2011 19:50:59
Reinhard
Hallo Jesus,
ich glaub nicht. Ich habe ja auch XL2007. Eben getestet, da sehe ich ja das Makro.
Was wieder so eine Sache ist, ein Problem gelöst, schon ist das nächste da:-(
Ich habe Office 97, 2000, 2007.
Wenn kein Excel läuft und ich öffne eine xls oder xlsx oder xlsm, dann erscheint XL2007, Wenn aber XL2000 läuft und ich öffne eine xls, so wird sie in XL2000 geöffnet, alles soweit sehr okay.
Word scheint da anders zu ticken. Eine Doc wird mit Word2000 geöffnet wenn kein Word läuft. Das muß ich ändern, ich bin sicher in Systemsteuerung--Ordneroptionen, wenn das geht, auch dieses Probnlem gelöst.
Mein derzeitiges Wissensproblem ist, wieso sind da Makros verschwunden wenn ich eine mit Word 2007 erzeugte .doc mit Word 2000 öffne!?
Gut, jetzt kenne ich ja deinen Code, mal schauen ob ich da was für dich tun kann.
Gruß
Reinhard
Anzeige
AW: VBA in Word
16.02.2011 19:54:38
Jesús
Weiss jetzt nicht ob der Code vollständig ware, aber hier nochmal der Code:
Sub tabellenzelle()
With ActiveDocument.Tables(1)
Dim Ymax As Long
Ymax = ActiveDocumentFunction.Max(Range.Columns(4) & Rows.Count.End(x1Up).Row)
Range.Columns(4)(Ymax).Copy_Destination = ActiveDocument.Tables(1).Range.Columns(4).Cells(3)
End With
End Sub

Danke für die Hilfe.
Warum fragst du nicht in Ofice-Loesung,...
16.02.2011 19:53:35
Luc:-?
…Jesús,
die haben mehrere Word-Foren; ebenso das MOF u.a. Für reine Archivsuche ist auch noch das alte Spotlight gut zu gebrauchen…
Gruß Luc :-?
Anzeige
AW: VBA in Word
16.02.2011 20:04:58
Reinhard
Hallo Jesus,
jetzt mal zum Code,

With ActiveDocument.Tables(1)
Dim Ymax As Long
Ymax = ActiveDocumentFunction.Max(Range.Columns(4) & Rows.Count.End(x1Up).Row)
Range.Columns(4)(Ymax).Copy_Destination = ActiveDocument.Tables(1).Range.Columns(4).Cells(3)
End With
End Sub

ActiveDocumentFunction ist nicht bekannt in Word2007 Vba.
Ohne Prüfung vermute ich das für Copy_Destination genauso.
Und auch andere Befehle bezweifel ich daß die in Word laufen, Cells und Range sind in Word nicht so anzusprechen iwie in Excel.
Außerdem heißt es
End(xlUp)
und nicht
End(x1Up)
in Excel, aber ist egal weil Word das sowieso nicht kennt.
Bastle mal bitte eine aussagekräftigere Beispieldatei mit mehr Einträgen wo man sehen kann wo das Ergebnis stehen soll nach einem makro, in der zweiten, einzelligen Tabelle untendrunter?
Gruß
Reinhard
Anzeige
AW: VBA in Word
16.02.2011 20:25:38
Jesús
Genau in der einzelligen Zabelle mit der Überschrift "Aktuelle Version:" soll der zuletzt eingegebene Wert der Spalte "Version" aus der oberen Tabelle eingefügt werden.
In der Beispiel Datei wäre das jetzt "1.0".
Wenn jetzt aber Arbeiter XY am Lastenheft etwas verändert, und das Lastenheft eine neue Version erhält, in diesem Fall dann "2.0", dann füllt er oben die Tabelle mit Infos (2. Zeile) und fügt dann in der Spalte Version "2.0" ein. Dann übernimmt die einzellige Tabelle den letzten Wert aus der Tabelle.
Ist etwas kompliziert, ich weiss. Aber das ist sauwichtig für die Archivierung der Versionierung unserer Lastenhefte.
Anzeige
AW: VBA in Word
16.02.2011 22:15:05
Florian
Hallo Jesus!
Warum machst Du das ganze nicht einfach in Excel, und zählst die Anzahl der befüllten Zellen (Zeilen)? Du kannst Excel ohne Probleme so formatieren, dass es wie Word aussieht (nehme an das ist ein Stand-alone ohne weitere Seiten?). Dann brauchst Du nicht mal VBA, und Word ist eh nicht das wahre...
Gruss Florian
AW: VBA in Word
16.02.2011 23:11:13
Jesús
Hallo Florian,
das Lastenheft hat über 25 Seiten. Ich denke so ist es einfacher.
Man kann in Word auch fertige xlTabb importieren!
17.02.2011 00:15:52
Luc:-?
Luc :-?
Lösung mit Word Klassenmodul
17.02.2011 10:40:01
Reinhard
Hallo Jesus,
hier die Beispielmappe:
https://www.herber.de/bbs/user/73600.doc
Sie hat nachfolgende Codes.
Gruß
Reinhard
In ThisDocument:

Option Explicit
Private Sub Document_Open()
Call TabellenUeberwachungEin
End Sub

In Modul1:

Option Explicit
Dim X As New clsTabelle
Sub VersionErmitteln()
Dim Zei As Long
With ActiveDocument.Tables(1)
For Zei = 2 To .Rows.Count
If Replace(Replace(.Cell(Zei, 4).Range, Chr(13), ""), Chr(7), "") = "" Then Exit For
Next Zei
If Zei  2 Then
ActiveDocument.Tables(2).Cell(1, 1).Range = Replace(Replace(.Cell(Zei - 1, 4).Range.Text,  _
Chr(13), ""), Chr(7), "")
Else
ActiveDocument.Tables(2).Cell(1, 1).Range = ""
End If
End With
End Sub
Sub TabellenUeberwachungEin()
Set X.oApp = Word.Application
End Sub
In Klassenmodul clsTabelle:

Option Explicit
Public WithEvents oApp As Word.Application
Private Sub oApp_WindowSelectionChange(ByVal Sel As Selection)
If Sel.Information(wdWithInTable) = True Then
'MsgBox Sel.Information(wdStartOfRangeColumnNumber)
'MsgBox "In Tabelle geklickt"
Call VersionErmitteln
End If
End Sub

Anzeige
AW: Lösung mit Word Klassenmodul
17.02.2011 16:25:30
Jesús
Hallo Reinhard,
ich bin nicht wirklich gut in VBA, noch kann ich den Code nicht zu 100% entschlüsseln, aber ich werde dahinter kommen.
Habe die Datei ausprobiert. Ich weiss nicht was ich sagen soll. Also du hast mir das genau so hingezaubert das es passt. Bin sehr froh darüber.
100000 Danke an dieser Stelle.
Ich werde versuchen den Code für mein Verständniss zu entschlüsseln, falls ich nicht klar komme gebe ich bescheid. Aber Astreine Sache.
Vielen Dank.
AW: Lösung mit Word Klassenmodul
17.02.2011 17:11:09
Reinhard
Hallo Jesus,
freut mich wenn es dir gefällt.
::::ich bin nicht wirklich gut in VBA, noch kann ich den Code nicht zu 100% entschlüsseln, aber ich werde
::::dahinter kommen.
Vielleicht hilft dir das dabei, ist für excel, aber das Prinzip ist in Word das Gleiche.
http://www.online-excel.de/excel/singsel_vba.php?f=50
Habe die Datei ausprobiert. Ich weiss nicht was ich sagen soll. Also du hast mir das genau so hingezaubert das es passt. Bin sehr froh darüber.
Mangels meiner Fähigkeiten oder denen von Word, aktualisiert sich die untere tabelle erst dann wenn du irgendwo in eine Tabelle klickst.
Bislang fand ich noch keinen Dreh damit sich das in der unteren Tabelle aktualisiert wenn ein Wert in Spalte 4 der oberen tabelle geändert wird.
What arals, wenns klappt :-)
Ich werde versuchen den Code für mein Verständniss zu entschlüsseln, falls ich nicht klar komme gebe ich bescheid.
Kannste gerne machen, ich werd dir da höchastwahrscheinlich nicht antworten können, bei Klassenmodulen befinde ich mich Wissensmäßig auf sehr dünnem Eis, aber es gibt ja andere hier ... :-)
Gruß
Reinhard
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige