Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1112to1116
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

Textfeld per VBA zuweisen

Textfeld per VBA zuweisen
Peter
Hallo!
In Anlehnung an meine Frage unten, kann ich ein Textfeld per VBA so bearbeiten,
dass ich innerhalb einer laufenden Nummer per Doppel-Klick auf zB Nummer 1 in A8 (Tabellenblatt 1 - "Test"), entsprechend der vorher abgelegten Info zu Nummer 1 in einem Textfeld, im Tabellenblatt 2 - "Ausgabe" selbiges Textfeld angezeigt bekomme?
Beispiel: Doppelklick auf A8 (Nummer 1) -- im 2. Tabellenblatt erscheint der Text, Kommentar etc. zu Nummer 1; Doppelklick auf A20 (Nummer 13) -- im 2. Tabellenblatt erscheint der Text, Kommentar etc. zu Nummer 13 - jeweils als Textfeld.
Wie kann ich das am elegantesten umsetzen?
Vielen DANK für eure Mühe!
Gruß
Peter M.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Textfeld per VBA zuweisen
29.10.2009 06:13:34
fcs
Hallo Peter,
ja das geht. Die Textfelder im Blatt Ausgabe müssen dann einen einheitlichen Namen haben gefolgt von den Nummern im Blatt "Test".
Die folgenden Prozeduren muss du im VBA-Editor unter dem Tabellenblatt "Test" einfügen.
Gruß
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim objShape As Shape, wksAusgabe As Worksheet, strNameTextFeld As String
With Target
If .Column = 1 And .Row >= 1 Then
If IsNumeric(.Value) And .Value  "" Then
Cancel = True
Set wksAusgabe = Worksheets("Ausgabe")
strNameTextFeld = "Textfeld " & Target.Value 'Zeichen für Name ggf. anpassen
If fncCheckShape(wks:=wksAusgabe, ShapeName:=strNameTextFeld) Then
Set objShape = wksAusgabe.Shapes(strNameTextFeld)
Application.Goto Reference:=objShape.TopLeftCell, Scroll:=True
Else
MsgBox "Textfeld """ & strNameTextFeld & """ gibt es im Blatt """ _
& wksAusgabe.Name & """ nicht!"
End If
End If
End If
End With
End Sub
Function fncCheckShape(wks As Worksheet, ShapeName As String) As Boolean
'Prüfung, ob Shape mit angegebenem Namen im Worksheet existiert
Dim objShape As Shape
For Each objShape In wks.Shapes
If LCase(objShape.Name) = LCase(ShapeName) Then
fncCheckShape = True
Exit Function
End If
Next
End Function

Anzeige
AW: Textfeld per VBA zuweisen
29.10.2009 20:56:51
Peter
Vielen DANK für Deine Hilfe!
Eine Nachfrage:
Wie kann ich es einrichten, dass nur das jeweilige angewählte Textfeld
angezeigt wird, aber ansonsten die anderen Textfelder ausgeblendet bleiben?
Vielen Dank!
Gruß
Peter M.
AW: Textfeld per VBA zuweisen
30.10.2009 04:05:37
fcs
Hallo Peter,
mit folgender Anpassung der Hauptprozedur erfolget das entsprechende Ein- bzw. Ausblenden der Textfelder.
Gruß
Franz
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim objShape As Shape, wksAusgabe As Worksheet, strNameTextFeld As String
With Target
If .Column = 1 And .Row >= 1 Then
If IsNumeric(.Value) And .Value  "" Then
Set wksAusgabe = Worksheets("Ausgabe")
Cancel = True
strNameTextFeld = "Textfeld " & Target.Value 'Zeichen für Name ggf. anpassen
If fncCheckShape(wks:=wksAusgabe, ShapeName:=strNameTextFeld) Then
'Alle Textfelder ausblenden
For Each objShape In wksAusgabe.Shapes
If Left(objShape.Name, 9) = "Textfeld " And objShape.Visible = True Then
objShape.Visible = False
End If
Next
'gesuchtes Feld einblenden und ansteuern
Set objShape = wksAusgabe.Shapes(strNameTextFeld)
objShape.Visible = True
Application.Goto Reference:=objShape.TopLeftCell, Scroll:=True
Else
MsgBox "Textfeld """ & strNameTextFeld & """ gibt es im Blatt """ _
& wksAusgabe.Name & """ nicht!"
End If
End If
End If
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige