Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
540to544
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
540to544
540to544
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textfeld ansprechen

Textfeld ansprechen
05.01.2005 15:38:00
Toni
Hallo VBA'ler,
Ich erstelle in einem Programm Textfelder(aus Zeichnen)mit Rahmen per Knopfdruck.
Diese Textfelder stellen Gebäude dar, die eine bestimmte Länge, Breite und Bezeichnung haben. Das ganze ergibt einmal einen Lageplan.
Das klappt soweit ganz gut.
Nun möchte ich noch erreichen, dass der Anwender das Gebäude (Textfeld) um 90 Grad drehen kann. Da dies mit Excel/Zeichnen-Mitteln wohl nicht möglich ist, möchte ich einfach Länge und Breite des Textfeldes (per VBA) vertauschen.
Der Anwender muss zunächst ein Textfeld markieren und soll dann über einen Button das Textfeld kippen.
Hier beginnen meine Schwierigkeiten:
Wie erkennt VBA das aktivierte Textfeld?
Gibt es sowas wie 'ActiveShape'?
Wie lese ich aus dem aktivierten Textfeld Länge und Breite aus und wie vertausche ich diese am besten?
Hier der Code, mit dem ich die Textfelder erstelle:

Private Sub cmdSkizzeStart_Click()
Dim multiL As Single
Dim multiB As Single
Dim anzGebAntrag As Integer
Dim mark1 As Single
Dim mark2 As Single
anzGebAntrag = Worksheets("Kundendaten").Range("B317").Value + _
Worksheets("Kundendaten").Range("B318").Value + _
Worksheets("Kundendaten").Range("B319").Value
ActiveSheet.Unprotect
mark1 = 145
mark2 = 2780
For i = 1 To anzGebAntrag
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, mark1, mark2, _
50, 50).Select
multiL = Worksheets("WEGebaeude").Range("D" & 6 + i).Value / 10
multiB = Worksheets("WEGebaeude").Range("E" & 6 + i).Value / 10
With Selection
.ShapeRange.ScaleHeight multiL, msoFalse, msoScaleFromTopLeft
.ShapeRange.ScaleWidth multiB, msoFalse, msoScaleFromTopLeft
.ShapeRange.Fill.Visible = msoTrue
.Characters.Text = Worksheets("WEGebaeude").Range("B" & 6 + i) & Chr(10) & "BAK " & _
Worksheets("WEGebaeude").Range("I" & 6 + i) & Chr(10) & _
Worksheets("WEGebaeude").Range("C" & 6 + i)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
With Selection.Characters.Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 6
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
mark1 = mark1 + 10
mark2 = mark2 + 10
Next i
ActiveSheet.Protect DrawingObjects:=False
End Sub

Hat vielleicht jemand eine Idee ?
Ciao
Toni

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textfeld ansprechen
HerbertH
hallo Toni,
ein Textfeld kannst du so ansprechen,drehen:


Sub Txtf_änd()
Dim txtF As Object
Set txtF = Selection
Dim h, b
h = txtF.Height
b = txtF.Width
txtF.Height = b
txtF.Width = h
End Sub

     gruß Herbert
Anzeige
AW: Textfeld ansprechen
06.01.2005 11:52:49
Toni
Hallo Herbert,
vielen Dank für Deinen Tip, aber so ganz klappt das noch nicht.
Ich habe den Code in das Click-Ereignis eines Buttons eingebunden. Das Objekt txtF ist dann die letzte aktive Zelle im Sheet und nicht das markierte Textfeld.
Mir wäre schon geholfen, wenn in dem Moment, wo das Textfeld markiert wird, irgendwie der Name des Textfeldes ermittelt werden könnte. Dann kann ich danach, wenn der Anwender über den Button das Textfeld drehen möchte diesen Namen konkret verwenden.
Vielleicht sehe ich auch den Wald vor lauter Bäumen nicht...
Hier noch mal mein Problem:
Ich habe auf einem Excel-Sheet diverse Textfelder (aus Zeichnen).
Eines dieser Textfelder markiere ich mit der Maus.
Wenn ich nun einen Button drücke, soll das eben markierte Textfeld Länge und Breite vertauschen (um 90 Grad gekippt werden).
Vielleicht fällt Euch ja noch etwas ein...
Ciao
Toni
Anzeige
AW: Textfeld ansprechen
06.01.2005 14:08:37
Toni
Hallo Herbert,
jetzt funktioniert es bei mir auch!!!
Ich habe eine Schaltfläche aus der Formular Symbolleiste genommen und das Makro zugewiesen.
Im Click-Ereignis einer Schaltfläche aus der Steuerelemente-Toolbox habe ich es nicht hinbekommen.
Vielen Dank für Deine Hilfe...
Toni
AW: Textfeld ansprechen
HerbertH
ja das stimmt, da gehts nicht...
die Autoformen kannst du übrigens auch
zur Makroausführung benützen...
gruß Herbert
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge