Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1672to1676
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
Array mit Daten aus Tabellenblatt
02.02.2019 23:01:01
Björn
Hallo Leute, ich habe folgendes Problem:
Die momentane Programmierung sieht wie folgt aus:
###########################################################
For f = 2 To einst.Range("Zaehler_Zeilen_in_Steuerung").Value + 1
For Each nFrame In Array(uf1.Frame38, uf1.Frame44, uf1.Frame22, uf1.Frame21, uf1.Frame41, uf1.Frame20, uf1.Frame52, uf1.Frame45, uf1.Frame47, uf1.Frame46, uf1.Frame51, uf1.Frame29, uf1.Frame36, uf1.Frame23, uf1.Frame11, uf1.Frame14, uf1.Frame42, uf1.Frame26, uf1.Frame50, uf1.Frame6, uf1.Frame27, uf1.Frame5, uf1.Frame16, uf1.Frame9, uf1.Frame49, uf1.Frame1)
For Each nControl In nFrame.Controls
If nControl.name = CStr(strg.Range(("K") + CStr(f)).Value) Then
strg.Range(("H") + CStr(f)).Value = nFrame.name
strg.Range(("I") + CStr(f)).Value = nFrame.Caption
End If
Next nControl
Next nFrame
Next f
###########################################################
Ich würde aber gerne, anstatt jedes einzelne Frame aufzählen zu müssen (wie z.B.: uf1.Frame9, uf1.Frame49, uf1.Frame1,...), mir eine Liste in einem Tabellenblatt machen und diese dann mit dem Array auslesen.
Sprich im TB "Steuerung" in Spalte "AM" stehen die Frames.
Leider komme ich nicht auf die Lösung.
Ich danke schon mal im Voraus für Hilfen und Tipps!
Grüße
Björn

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Array m.SteuerElementNamen aus Tabellenblatt
03.02.2019 01:48:24
Luc:-?
Es handelt sich hier ja offensichtlich um ein Array aus Objekten, Björn,
während du im TabellenBlatt (oder unter einem definierten Namen) ja nur die Namen dieser Objekte angeben kannst. Die sind aber Texte und können nur als Identifikatoren des jeweiligen Objekts benutzt wdn.
Es sieht so aus, als ob du das bereits versucht hättest, nur ist mir das Prozedere nicht ganz klar. Zuerst müsste man wohl wissen, weshalb ein solches Array gebildet wdn soll. Geht es um einen Zugriff auf bestimmte Objekte in bestimmter Reihenfolge, könnte bspw auch deren ZOrder in der gewünschten Reihenfolge gestaltet wdn und diese dann darüber aufgerufen wdn.
Morrn, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige
AW: Array m.SteuerElementNamen aus Tabellenblatt
03.02.2019 03:12:42
Björn
Hallo, danke für die schnelle Antwort.
Mir geht es darum, alle Frames die in Userform1 vorhanden sind anzusprechen.
Ich hab ein TB in dem alle Boxen (Text, Combo, etc.) stehen und ich würde gerne zu der jeweiligen Box in die gleiche Zeile vom Frame (in dem sich die Box befindet) einmal die .caption und den .name ins TB schreiben lassen.
Wie, ist mir prinzipiell egal - mir ist nur nichts besseres als das Array eingefallen.
Damit würde ich ja ALLE Frames ansprechen, dennoch würde ich gerne eine Spalte im TB nutzen wollen, in dem alle Frames aufgelistet sind (kann ja mal sein, das ein Frame ausgelassen werden soll).
Das ist das was ich gerne machen möchte.
Wenn jemand eine bessere Idee hat, ich bin für alles offen.
Grüße
Björn
Anzeige
Also nur für Doku-Zwecke!? Dann kannst du ...
03.02.2019 04:06:05
Luc:-?
…das direkt über die Objekte laufen lassen, Björn,
und damit auch erst ein Array bilden oder gleich schreiben. Du kannst natürlich auch - wie du es ja wohl versucht hast - das Array auch direkt bilden. Was schneller bzw günstiger - auch für evtl zukünftige Erweiterungen - ist, wirst du sicher selbst herausfinden.
Luc :-?
AW: Also nur für Doku-Zwecke!? Dann kannst du ...
03.02.2019 04:23:41
Björn
Ich versteh nicht ganz worauf du hinaus möchtest...
Also zu Doku-Zwecke ist schon richtig, nur weiß ich nicht wie ich den Code richtig schreiben soll.
Mit dem Array klappt das nicht so wie ich das möchte - ich möchte wie gesagt im TB eine Spalte in der alle Frames stehen und die soll abgefragt werden und dann zur passenden Box (in einer anderen Spalte) den Name und Caption geschrieben werden.
Björn
Anzeige
AW: Array mit Daten aus Tabellenblatt
03.02.2019 08:53:23
Nepumuk
Hallo Björn,
du musst dazu in einer Schleife alle Controls des Userforms durchlaufen und den Namen des Controls mit dem aus der Tabelle vergleichen. Wenn du es gefunden Hast, dann alle Controls des Frames auslesen.
Beispiel:
Private Sub CommandButton2_Click()
    Dim objFrame As Control, objControl As Control
    Dim lngRow As Long
    For Each objFrame In Controls
        If objFrame.Name = Cells(1, 1).Value Then
            For Each objControl In objFrame.Controls
                lngRow = lngRow + 1
                Cells(lngRow, 2).Value = objControl.Name
                Cells(lngRow, 3).Value = objControl.Caption
            Next
        End If
    Next
End Sub

Aber Achtung, nur manche Controls haben eine Caption-Eigenschaft.
Gruß
Nepumuk
Anzeige
AW: Array mit Daten aus Tabellenblatt
03.02.2019 14:55:26
Björn
VIELEN VIELEN DANK!!
Funktioniert super!!
Gruß
Björn

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige