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

Mehrdeutiger Name

Mehrdeutiger Name
21.09.2007 18:43:00
Sven
Hallo,
eine Sache die ich momentan nicht verstehe:
Füge ich in einer UserForm 2 Textboxen ein und gebe beide den Namen
TextBox1 erscheint die Fehlermeldung "Mehrdeutiger Name..."
Macht ja auch Sinn.
Erstelle ich Textboxen erst zur Laufzeit (jeweils 10 in einem Frame, 2 Frames in einer Page)
und sage .Name= "TextBox"&i (Wobei i von 1 - 10 geht)
dann habe ich 2 x 10 Textboxen mit gleichem Namen, ohne das eine Fehlermeldung kommt.
Gelten für zur Laufzeit erstellte Objekte andere Regeln ?
Gruß, Sven

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrdeutiger Name
21.09.2007 19:31:45
Oberschlumpf
Hi Sven
Zeig uns mal deinen Code, der für den Fehler verantwortlich ist.(aber bitte nicht nur die 1 Zeile, in der der Fehler auftritt ;-) )
Ciao
Thorsten

AW: Mehrdeutiger Name
21.09.2007 19:53:25
Sven
Hallo Thorsten,
ich schrieb nicht, dass bei einer Programmausführung ein Fehler auftaucht.
...und das hier bezog sich auf die Entwicklungsumgebung und Objekte von Hand einfügen :
"Füge ich in einer UserForm 2 Textboxen ein und gebe beide den Namen
TextBox1 erscheint die Fehlermeldung "Mehrdeutiger Name..."
Gruß, Sven

AW: Mehrdeutiger Name
21.09.2007 20:46:23
Ramses
Hallo
"...Name= "TextBox"&i (Wobei i von 1 - 10 geht)..." und "...dann habe ich 2 x 10 Textboxen mit gleichem Namen,..."
Sorry,.. ist die Frage als schlechter Scherz gedacht, oder möchtest du uns auf die Probe stellen ?
Auch mit deinem Level den du angibst, und ein gaaaaaannnnzz klein wenig nachdenken, solltest du dir die Frage selbst beantworten können.
Dazu reicht ein IQ von 1 bereits aus.
Gruss Rainer

Anzeige
AW: Mehrdeutiger Name
21.09.2007 22:04:54
Sven
Dann erreiche ich die 1 scheinbar nicht, habe einen blackout, steh' im wald, bin blind...
such dir was aus - ich komme nicht drauf ;-)
https://www.herber.de/bbs/user/46251.xls

AW: Mehrdeutiger Name
21.09.2007 22:10:00
Ramses
Hallo
Mal ganz vom Anfang an:
1 = Die erste Zahl grösser als Null
2 = Die zweite Zahl grösser als Null
3 = Die dritte ..... usw.
Soweit klar ?
Vorschul-Kindergarten Aufnahmevoraussetzung
For i = 1 to 10
.Name= "TextBox" & i
Next i
Das heist die erste Schleife
For i = 1 to 10
.Name= "TextBox1"
Next i
Beim zweiten Schleifendurchlauf
For i = 1 to 10
.Name= "TextBox2"
Next i
Beim dritten Schleifendurchlauf
....
Das spar ich mir jetzt, denn ehrlich gesagt ist mir das zu dumm.
Hier nochmal eine Apollo Rakete beim Start,... um Licht in das Blackout zu bringen.
Deine Bemerkung
"...dann habe ich 2 x 10 Textboxen mit gleichem Namen, .,.."
Hast Du's nun kapiert ?
Gruss Rainer

Anzeige
AW: Mehrdeutiger Name
21.09.2007 22:29:00
Sven
ach Rainer,
du kannst mich zwar erschlagen, aber so sieht meine schleife ja nun nicht aus.
und das die schleife im zweiten frame nur for i = 2 to ...durchläuft kanns ja auch nicht sein.
ich sehe hier mehrere objekte mit gleicher Eigenschaft in .Name =
ich werde mal eine nacht drüber schlafen und schauen, ob ich dann die erleuchtung habe.
momentan raffe ich gar nix mehr, sorry

AW: Mehrdeutiger Name
21.09.2007 22:51:48
Ramses
Hallo
Doch genauso sieht deine Schleife aus, ... und noch dazu innerhalb einer With-Anweisung auf ein Frame.
Erstelle mal, z.B. im Frame "Frame_P8_Kfz" einen zusätzlichen Commandbutton manuell, und füge diese Anweisung in den Commandbutton
Me.Textbox2 = "Test"
zu, und führe den Commandbutton mal aus. Ergebnis = Fehler
Ändere die Anweisung in
Me.Frame_P8_Grunddaten.textbox2 = "Test"
... und siehe da. Plötzlich funktioniert es :-)
Die Textboxen werden bei dir zur Laufzeit innerhalb einer WITH-Anweisung auf ein Frame erstellt,... daher funktioniert das. Es gibt in der UF zwar, oberflächlich, betrachtet zwei Textboxen mit dem gleichen Namen, aber dem ist nun mal nicht so.
Die Textboxen können NUR über die Bezeichnung des übergeordneten Objectes dem sie zugewiesen wurden (WITH-ANWEISUNG !!!) angesprochen werden.
Im manuellen Modus ist das nicht möglich, da hier kein übergeordnetes Objekt bekannt ist, bzw. verwendet wird.
Ist die Apollo-Rakete nun gestartet :-) !!!
Gruss Rainer

Anzeige
AW: Mehrdeutiger Name
21.09.2007 23:11:00
Sven
Hey Rainer,
siehe meine Antwort bei Udo.
Ist ja in etwa Deine Erklärung ;-)
Danke für Deine Bemühungen trotz meiner Begriffsstutzigkeit.
Gruß, Sven

AW: Mehrdeutiger Name
21.09.2007 22:57:00
Uduuh
Hallo,
Reiner ist anscheinend im falschen Zug.
Ich habe nur eine Erklärung, warum das zur Laufzeit klappt:
Im Enturfsmodus schreit der Compiler bei gleicher Namensvergabe. Wenn du die Objekte aber zur Laufzeit erstellst und 'falsch' benamst ist der Compiler außen vor.
Das Prob ist jetzt aber: Wenn du die Textboxen nach Namen abfragst, wirst du immer nur den Inhalt der 1. TB dieses Namens erhalten. Sind diese allerdings in unterschiedlichen Frames, kannst du die TBs auch Frameweise abfragen und erhälst eindeutige Ergebnisse.
UF mit 2 Frames und dieser Code:

Private Sub UserForm_Initialize()
Dim txtb As Object, i As Integer
For i = 1 To 2
Set txtb = Me.Frame1.Controls.Add("forms.textbox.1")
With txtb
.Name = "TextBox" & i
.Top = i * 20
End With
Next i
For i = 1 To 2
Set txtb = Me.Frame2.Controls.Add("forms.textbox.1")
With txtb
.Name = "TextBox" & i
.Top = i * 20
End With
Next i
End Sub
Private Sub UserForm_Terminate()
Dim txtb As Object
For Each txtb In Me.Frame1.Controls
Debug.Print txtb.Name & " " & txtb.Value
Next
For Each txtb In Me.Frame2.Controls
Debug.Print txtb.Name & " " & txtb.Value
Next
Debug.Print Me.Controls("TextBox1").Value
End Sub


Gruß aus’m Pott
Udo

Anzeige
AW: Mehrdeutiger Name
21.09.2007 23:06:51
Sven
Hallo Udo,
das habe ich gerade auch festgestellt.
Mehrere Frame mit "scheinbar" identischen Objekten,
aber die genaue Ansprache mit z.B.
Me.MultiPage.Page8.Frame_P8_Leistungskatalog.Controls("TextBox" & i)
findet immer die richtige (z.B.) TextBox1
Da ich noch nicht so firm bin mit "Objekte zur Laufzeit erstellen", war ich mir einfach nicht sicher,
ob das tatsächlich so korrekt ist. Danke für die Bestätigung ;-)
Gruß, Sven

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige