Word XP Tabelle mit Vorschlagsliste

11/01/2010 - 15:32 von Christina | Report spam
Hallo liebe NG,
in meiner Dokumentvorlage habe ich eine Tabelle, die dynamisch erweiterbar
ist.
Nun soll beim Doppelklick auf jede Zelle der ersten Spalte eine
Vorschlagsliste geöffnet werden, aus der mit einem weiteren Doppelklick der
markierte Eintrag in die aktive Zelle übernommen wird. Hat jemand eine Idee,
wie man sowas umsetzt? Geht das überhaupt?
Vielen Dank vorab und beste Gruesse
Christina
 

Lesen sie die antworten

#1 Thomas Gahler
11/01/2010 - 23:08 | Warnen spam
Hallo Christina


in meiner Dokumentvorlage habe ich eine Tabelle, die dynamisch erweiterbar
ist.
Nun soll beim Doppelklick auf jede Zelle der ersten Spalte eine
Vorschlagsliste geöffnet werden, aus der mit einem weiteren Doppelklick
der
markierte Eintrag in die aktive Zelle übernommen wird. Hat jemand eine
Idee,
wie man sowas umsetzt? Geht das überhaupt?


Wenn ich dich richtig verstanden habe, dann solte das klappen.


In einem Projekt benötigst du eine
- ein Modul (Modul1)
- ein Klassenmodul (Klasse1)
- eine UserForm (UserForm1)
- auf der UserForm1 muss

und jetzt die nachstehenden Codezeilen einfügen

' - - Start Modul1 - -
Option Explicit

Public oAPP As New Klasse1
Public strWahl As String

Sub DemoInitialisierung()
'Überwachung der Word Ereignisse einschalten.
Set oAPP.AnwenderEreignis = Word.Application
End Sub

Sub procTabellenListeAufrufen( _
ByVal tbl As Word.Table, _
ByVal cel As Word.Cell, _
ByVal intCol As Integer, _
ByVal intRow As Integer)

If intCol = 1 Then
UserForm1.Show
cel.Range.Text = strWahl
End If
End Sub
' - - Ende Modul1 - -

' - - Start Klasse1 - -
Option Explicit

Public WithEvents AnwenderEreignis As Word.Application

Private Sub AnwenderEreignis_WindowBeforeDoubleClick(ByVal Sel As Selection,
Cancel As Boolean)
Dim tbl As Word.Table
Dim cel As Word.Cell

If Selection.Information(wdWithInTable) Then
Set tbl = Selection.Tables(1)
Set cel = Selection.Cells(1)

procTabellenListeAufrufen _
tbl:=tbl, _
cel:=cel, _
intCol:=cel.ColumnIndex, _
intRow:=cel.RowIndex
End If
End Sub
' - - Ende Klasse1 - -

' - - Start UserForm1 - -
Option Explicit

Private Sub CommandButton1_Click()
strWahl = ""
With ListBox1
If .ListIndex >= 0 Then
strWahl = .Value
End If
End With

Me.Hide
End Sub

Private Sub UserForm_Initialize()
With ListBox1
.AddItem "Rot"
.AddItem "Blau"
.AddItem "Grün"
.AddItem "Gelb"
.AddItem "Schwarz"
.AddItem "Weiss"
End With
End Sub
' - - Ende UserForm1 - -



Jetzt musst du zuerst das Makro DemoInitialisierung() starten. Dieses
aktiviert die Überwachung der Applikations-Ereignisse. Anschliessend kannst
du in deiner Tabelle doppelklicken. In der ersten Spalte passiert was



Ist es das was du suchst?

Kann natürlich noch ausgebaut werden...




Thomas Gahler
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows Vista (SP2), Office 2007 (SP2)

Ähnliche fragen