Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1128to1132
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

Textfelder mit gleichem Namen | Herbers Excel-Forum

Textfelder mit gleichem Namen
12.01.2010 15:40:50
Reinhard

Hallo Wissende,
eine Anfragerin in einem anderen Forum hat folgendes Problem.
Sie hat über Symbolleiste "zeichnen" ein Textfeld erzeugt.
Dann bei gedrückter "Strg" verschoben, somit wurde es kopiert.
Sie behauptet, wenn man die Textfelder markiert, würde oben links im Namensfeld überall "Text 2" angezeigt.
Ich habe ihr das nicht geglaubt und sie gebeten, dies mal laufen zu lassen:


Sub nn()
Dim S
For Each S In ActiveSheet.Shapes
MsgBox S.Name
Next S
End Sub

Nun sagt sie, alle Textfelder hießen "Text 2"
Ich habe kein 2003, nur 2000, wenn ich mache was sie gemacht hat heißen die Dinger wie gewohnt Textfeld 1, Textfeld 2, usw.
(Damit meine ich die Anzeige im namensfeld)
Im Code heißen sie Text Box 1, Text Box 2, usw.
Nun blicke ich nicht mehr durch. Kann das an der Version liegen?
Wäre jmd. hier mit XL2003 so nett und würde mal rumtesten?
Und, habe ich Recht mit meiner Annahme, Excel duldet keine zwei Objekte gleichen Namens auf einem Blatt?
Eine Beispielmappe habe ich erbeten, mal schauen wann sie kommt.
Danke ^ Gruß
Reinhard

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Meines Wissens bleiben die angezeigten...
12.01.2010 15:53:27
Luc:-?
...Namen von Autoform-Objekten auch schon unter xl9 gleich, nur die internen Namen (Zähler!) ändern sich, Reinhard.
Wenn du anschließend ein gleichartiges Objekt neu zeichnest, müsste die Nr im angezeigten Namen entsprechend höher sein, also scheinbar eine Zähllücke entstehen. Teste das mal!
Bei einer Kopie wird anscheinend alles kopiert, auch die angezeigte Caption.
Gruß Luc :-?
AW: Meines Wissens bleiben die angezeigten...
12.01.2010 16:57:28
Reinhard
Hallo Luc,
:::Meines Wissens bleiben die angezeigten Namen von Autoform-Objekten auch schon unter xl9 gleich:::
bei mir in XL2000/Xl9 nicht. Egal wie ich da so ein Zeichnen-Textfeld kopiere, ob mit Lopieren...Einfügen oder Strg halten und verschieben, der Name verändert sich durch den hochzählenden Index.
:::nur die internen Namen (Zähler!) ändern sich, Reinhard.:::
Was sind nun in dem fall interne namen? Sie sagt wenn sie meinen Code laufen lässt erhält sie als Namen mehrfach den gleichen. Kann doch gar nicht sein *denk*
:::Wenn du anschließend ein gleichartiges Objekt neu zeichnest, müsste die Nr im angezeigten Namen entsprechend höher sein, also scheinbar eine Zähllücke entstehen. Teste das mal!:::
Die Zähllücke verstehe ich nicht, pro neuem Objekt wird eins hochgezählt bei mir.
:::Bei einer Kopie wird anscheinend alles kopiert, auch die angezeigte Caption.:::
Bei mir nicht. Ich weiß auch nicht was das Namensfeld so anzeigt, eine Caption hat so ein Textfeld aus Zeichnen nicht.
Ich habe so wie sie es gemacht hat mehrere Textfelder erzeugt durch Kopieren des ersten Textfeldes.
Sie haben bei mir oben in dem Namensfeld den Namen "Textfeld X".
Mariere ich nun den rand eines solchen Textfeldes, so kann ich im Namensfeld den Namen ändern.
Aber nicht auf den Namen eines schon bestehenden Textfeldes.
Gruß
Reinhard
Anzeige
die zählen immer hoch (xl2000) auch beim Kopieren
12.01.2010 17:14:05
Matthias L
Hallo
Hab das gerade getestet in XL2000
Auch beim Kopieren per gehaltener STRG-Taste durch Verschieben des Objektes wird der Name im
NamensFeld immer um einen Zähler erhöht.
Sollte ein Texfeld z.B. Textfeld 2 zwischenzeitlich gelöscht worden sein, wird es nicht automatisch neu erstellt, sondern das neue Objekt wird mit dem nächsten Zähler gefüllt.
Egal ob Kopieren oder Objekt neu zeichnen
Ich werde es, wenn sich niemand findet der Office2003 hat morgen in der FA. testen.
Unter XL2000 ist es so wie beschrieben.
Gruß Matthias
Umbenannte Textfelder bleiben gleich
12.01.2010 17:41:09
NoNet
Hallo Reinhard,
ich habe das eben mit Excel 2003 getestet :
Erstellt man ein Textfeld ("Textfeld 1") und kopiert dieses per Strg-Taste und Maus, so heißt die Kopie wie von dir beschrieben "Textfeld 2". Der Name kann auch nicht auf den eines bereits bestehenden Textfeldes geändert werden !
Ändert man den Namen eines Textfeldes jedoch VOR dem Kopieren (z.B: "Textfeld 2" nach "Text2") und kopiert dieses per Strg-Taste und Maus, so heißt dieses tatsächlich auch "Text2" - sowohl als Objekt in der Mappe wie auch per VBA : MsgBox Activesheet.Textboxes(3).Name
Es kann per VBA (wie von Luc bereits erwähnt) nur per Index oder über den ursprünglichen Namen referenziert werden, nicht per Name :
Activesheet.Textboxes("Text2").Select 'Markiert das 2.Textfeld, das als Kopie von "Textfeld 1" erstellt wurde
Activesheet.Textboxes(2).Select 'Markiert das 2.Textfeld, das als Kopie von "Textfeld 1" erstellt wurde
Activesheet.Textboxes(3).Select 'Markiert das 3.Textfeld, das als Kopie von "Text2" erstellt wurde
Activesheet.Textboxes("Textfeld 3").Select 'Markiert das 3.Textfeld, das als Kopie von "Text2" erstellt wurde
MsgBox ActiveSheet.Textboxes("Text Box 3").Index' Ergibt : 3 (da 3. Textfeld des Blattes)
Das gleiche gilt für die Referenzierung per Shape-Object :
MsgBox ActiveSheet.Shapes(1).name' Ergibt : "Text Box 1"
MsgBox ActiveSheet.Shapes("Textfeld 1").name' Ergibt : "Text Box 1"
MsgBox ActiveSheet.Shapes("Text Box 1").name' Ergibt : "Text Box 1"
MsgBox ActiveSheet.Shapes(2).name' Ergibt : "Text2"
MsgBox ActiveSheet.Shapes("Textfeld 2").name' Ergibt : "Text2"
MsgBox ActiveSheet.Shapes("Text Box 2").name' Ergibt : "Text Box 2"
MsgBox ActiveSheet.Shapes(3).name' Ergibt : "Text2"
MsgBox ActiveSheet.Shapes("Textfeld 3").name' Ergibt : "Text2"
MsgBox ActiveSheet.Shapes("Text Box 3").name' Ergibt : "Text2"
Leider funktioniert meine VBA-Hilfe auf dem PC nicht, so dass ich in der OH nicht nachschlagen kann, welche Properties das Textbox-Objekt besitzt - evtl. kann man den "ursprünglichen" (bzw. internen) Namen doch per VBA ermitteln ?
Gruß, NoNet
Anzeige
Ich glaube das kann man, NoNet,...
12.01.2010 19:36:20
Luc:-?
...habe mal so etwas gelesen, kann ich aber jetzt nicht nachprüfen.
Und richtig, meine Bemerkung setzte voraus, dass zuvor der angezeigte Name geändert wurde. Kann mich erinnern, das immer gemacht zu haben, bevor ich die Objekte kopiert habe. Weil sich dann der angezeigte Name nicht geändert hatte, habe ich ein Makro drüberlaufen lassen. Dann ließ sich das Objekt auch mit diesem Namen ansprechen. Die internen Namen können wohl nicht beeinflusst wdn. Da wird immer weiter gezählt, egal, ob zwischendurch welche gelöscht wurden. Das hatte mir nicht gefallen, weil mir das für VBA zu zufällig war — deshalb die neuen Namen. Das mag dann auch beim geschilderten Tatbestand der Fall sein...
Es gibt allerdings auch Objekte, die man per VBA nur mit ihren internen Namen ansprechen kann — steht irgendwo in der Hilfe...
Gruß Luc :-?
Anzeige
AW: Ich glaube das kann man, NoNet,...
14.01.2010 09:39:04
Reinhard
Hallo NoNet,Luc,
mit Oh meinst du wohl F2?
Tja, da kenne ich mich nicht aus mit dem Objektkatalog, finde da eher immer nix :-(
Ich benutze Set, gehe dann mit F8 nach die Set-Zeile und suche im Lokalfenster.
Und bei "Text2" die als "Textfeld 2" angesprochen werden kann, fand ich im Lokalfenster nirends "Textfeld2".

Sub tt()
Dim S
With ActiveSheet
MsgBox .Shapes("Text2").Name
MsgBox .Shapes("Textfeld 1").Name
Set S = .Shapes("Textfeld 2")
MsgBox .Shapes("Textfeld 2").Name
MsgBox .Shapes("Text2").AlternativeText
MsgBox .Shapes("Textfeld 1").AlternativeText
MsgBox .Shapes("Textfeld 2").AlternativeText
MsgBox .TextBoxes("Text2").Name
MsgBox .TextBoxes("Textfeld 1").Name
MsgBox .TextBoxes("Textfeld 2").Name
MsgBox .TextBoxes("Text2").Text
MsgBox .TextBoxes("Textfeld 1").Text
MsgBox .TextBoxes("Textfeld 2").Text
End With
End Sub

Gruß
Reinhard
Anzeige
Intern heißt das auch nicht Textfeld, sondern...
14.01.2010 16:36:49
Luc:-?
...eher TextBox oder TextField, Reinhard,
auf jeden Fall in Englisch...
Gruß Luc :-?
PS: Und im Objektkatalog kann man auch eine bestimmte Bibliothek (Stdd alle) einstellen, die durchsucht wdn soll. Außerdem kann man auch suchen, da findet man auch (Teile von) Werte(n), man muss nur wissen, was man suchen will (VBA-Englisch)...

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige