Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
852to856
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
852to856
852to856
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Auslesen von Autoform in Tabelle

Auslesen von Autoform in Tabelle
10.03.2007 16:44:18
Daniel

Hallo zusammen,
ich möchte gerne ein Strukturdiagramm mit Hilfe der Autoformen (Shades) von MS-Excel erstellen. In den Autoformen ist ein Text gespeichert, der mindestens 2 Zeilen aber maximal 3 Zeilen lang ist.
Dieser Text soll mittels Makro ausgelesen und in ein zweites Blatt geschrieben werden. Das Makro wird dann aktiviert, wenn auf die Autoform geklickt wird (mittels Makrozuweisung in der Autoform).
Dieses Makro habe ich bereits mittels Aufzeichnung erstellt. Für eine einzige Autoform klappt das auch in erträglichem Rahmen. Anbei der (gekürzte und korrigierte) Code:
ActiveSheet.Shapes("AutoShape 1").Select
Selection.Characters.Text = "525100" & Chr(10) & "Teilebezeichnung"
With Selection.Characters(Start:=1, Length:=6).Font
End With
Sheets("Liste").Select
Range("A2").Select
ActiveSheet.Paste
Sheets("Grafik").Select
ActiveSheet.Shapes("AutoShape 1").Select
Selection.Characters.Text = "525100" & Chr(10) & "Teilebezeichnung"
With Selection.Characters(Start:=7, Length:=16).Font
End With
Sheets("Liste").Select
Range("B2").Select
ActiveSheet.Paste
Datei-Upload: https://www.herber.de/bbs/user/41016.xls
Allerdings möchte ich das Makro flexibler gestalten:
- Die Autoform [ActiveSheet.Shapes("AutoShape 1").Select] soll nicht festgelegt ("AutoShape 1") sein, sondern dadurch definiert werden, welche Autoform zur Aktivierung des Makros angeklickt wurde.
- Weiterhin sieht es so aus, als ob gar nicht der Text aus der Autoform ausgelesen würde, sondern die Autoform und der Text markiert aber nicht kopiert würden. Aus diesem Grund wird immer nur das, was im aktuellen Zwischenspeicher liegt in die Zellen geschrieben. Ändere ich den Code in:
ActiveSheet.Shapes("AutoShape 1").Select
Selection.Characters.Text = "525100" & Chr(10) & "Teilebezeichnung"
With Selection.Characters(Start:=1, Length:=6).Font
End With
Selection.Copy
wird aber die gesamte Autoform kopiert und eingefügt.
Wie schaffe ich es den Text in der Autoform auszulesen, die ich angeklickt habe? Zur Not können es auch nur die ersten 6 Zeichen in der Autoform sein.
Vielen Dank im Voraus.
Gruß,
Daniel

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

Betreff
Datum
Anwender
Anzeige
AW: Auslesen von Autoform in Tabelle
10.03.2007 17:10:59
Daniel
Hallo
wenn du erreichen willst, das beim Anklicken einer Autoform ihr Textinhalt in eine Liste geschrieben wird, dann solltest du der Autoform dieses Makro zuweisen (das Makro ist flexibel, dh. du kannst das das gleiche Makro mehreren Autoformen zuweisen)
Sub Makro1()
Sheets("Liste").Cells(65536, 1).End(xlUp).Offset(1, 0).Value = _
ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text
End Sub

Der Textinhalt wird fortlaufend in das Sheet "Liste" geschrieben.
Gruß, Daniel
AW: Auslesen von Autoform in Tabelle
11.03.2007 11:52:29
Daniel
Vielen Dank Daniel!
Das war so ziemlich genau das, was ich gesucht hatte.
Anzeige
AW: Auslesen von Autoform in Tabelle
10.03.2007 17:19:49
ransi
Hallo
Das klingt alles recht wirr(Liegt wahrscheinlich am vielen select)
Allerdings:
Wie schaffe ich es den Text in der Autoform auszulesen, die ich angeklickt habe?
das geht so:
Sub Makro1()
MsgBox ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text


Alles andere habe ich leider trotz Beispielmappe nicht verstanden....
ransi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige