MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Word
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 03.01.2019, 22:27   #1
JuMathias
MOF Profi
MOF Profi
Standard Word 2013 - Ermittlung der genutzten Tabelle (CVA steht zu 97%)

Hallo Gerhard, hallo VBA-WORD-Experten,

die Thematik meines Anhang kommt dem einen oder anderen nicht fremd vor.
Ihr liegt u. a. zu Grunde der VBA, um die Tabelle("nnummer") und die Zeile zu erkennen, in welcher Tabelle (am besten zu testen ab Seite 4) der eingetragene Display-Wert liegt. Einfach einen Doppelklick auf das "Display"-Textfeld vornehmen:



Code:

Sub ZeileFeststellen()

1   'dieses Makro dient nur dazu, Tabelle und Zeilennummer festzustellen,
2  'in dem sich das aktuell doppltangeklickte Displayfeld befindet

3  'Weitere Methode um zu erkennen, in welcher Tabelle ich gerade arbeite

4  Dim itbl As Integer
5  If ActiveDocument.Tables.Count = 0 Then Exit Sub
6  If Selection.Information(wdWithInTable) = False Then MsgBox "Nicht in einer Tabelle"
7     For itbl = 1 To ActiveDocument.Tables.Count
8        If Selection.Tables(1).Range.InRange(ActiveDocument.Tables(itbl).Range) Then
9           MsgBox itbl       '<< Tab.Nummer wird angezeigt
  
10          'Set tabelle = Selection.Tables(itbl)   'warum funktioniert die Zuweisung nur bei Tabelle 1? Ab Tabelle 2 zwei gibt es eine Fehlermeldung (ab Seite 4)
  
11     Exit For
12  End If
13  Next itbl


Set tabelle = Selection.Tables(1)  'war 2018 angedacht für nur eine Tabelle (Nummer: 1)
  
14  Set tabelle = Selection.Tables(itbl)     ': Wunsch
15  zeile = Selection.Information(wdEndOfRangeRowNumber)

End Sub


Fakt:

(1) Mit der Zeile

14 Set tabelle = Selection.Tables(1) habe ich meine Probleme: 1 ist ok, andere Tabellennummern geht Zuweisung nicht
15 zeile = Selection.Information(wdEndOfRangeRowNumber) Die Logik passt immer, ist also ok.

Frage zu 10:
warum funktioniert die Zuweisung nur bei Tabelle 1?
Ab der Tabelle zwei gibt es eine folgende Fehlermeldung.
Insgesamt gibt es 4 oder 5

Ein DANKESCHÖN für eure Recherche und die 3% VBA-Korrektur.
Passwort der WORD-Datei: Keines gesetz, Schutz aber aktiviert.

JuMathias
Angehängte Dateien
Dateityp: docm Für Forum 006 - reduziert.docm (64,5 KB, 2x aufgerufen)

Geändert von JuMathias (03.01.2019 um 22:51 Uhr).
JuMathias ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 04.01.2019, 01:02   #2
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Mathias,

ich frage mich, wozu du die Tabellennummer brauchst. Die aktuelle Tabelle des angeklickten Elements kriegst du mit Selection.Tables(1). Die Index-Nummer brauchst du dazu nicht.
Die Zeile dieser Tabelle, in der das angeklickte Element untergebracht ist, ermittelst du ja schon mit Selection.Information(wdEndOfRangeRowNumber).

Allerdings möchte ich dich bei dieser Gelegenheit noch einmal vor der Verwendung verbundener Zellen warnen:
In deinen Tabellen wird als Zeilennummer für das erste Displayfeld die Zeile 3 ermittelt, aber für das Feld in der gleichen Zeile,eine Spalte weiter, unter der verbundenen Zelle Status/Pass, wird Zeile 2 geliefert.

Wie dem auch sei. Wenn du die Tabellennummer aus irgend einem Grund brauchst, ist mein nächster Rat: Verzichte auf Tabellen in Tabellen.

Wenn du mal in deinem Dokument mit Activedocument.Tables.Count die Anzahl der Tabellen zählst, wirst du feststellen, dass du nie und nimmer auf die Anzahl kommst, an die du denkst. Das liegt daran, dass nur die "Außentabellen" gezählt werden, und nicht die Tabellen, die sich in Tabellen befinden. Deshalb geht dein Versuch schief.

Schau dir das angehängte Dokument an (das ich auf das für die Problemstellung Allerwichtigste reduziert habe). Da funktioniert das Feststellen der Tabellennummer einwandfrei. Die von dir angestrebte Optik kannst du auch ohne verschachtelte Tabellen erreichen.
Angehängte Dateien
Dateityp: docm Für Mathias - ganz arg reduziert.docm (54,1 KB, 1x aufgerufen)

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 05.01.2019, 20:06   #3
JuMathias
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard Ein Gruß und Dankeschön an Gerhard

Hallo versierte User in der WORD-VBA-Welt,

hallo Gerhard,

den Ratschlägen von Gerhard kann ich voll und ganz zustimmen.
D.h.: Ich habe nun meine zehnseitige Vorlage begonnen thematisch zu zerrupfen.

Auf Grund der Vorlage von Gerhard erfolgt ein kompletter Neuaufbau des WORD-Dokumentes. Stück für Stück, Tabelle um Tabelle.
Detailfragen folgen.

Ein Dankeschön allen Forenlesern und Gerhard!

Gruß

JuMathias
JuMathias ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.