Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1768to1772
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

Textbox inkl. Name in Excel übertragen

Textbox inkl. Name in Excel übertragen
15.07.2020 10:51:39
Christian
Hallo Ihr Guten,
ich habe eine Idee und komme mit der Umsetzung nicht weiter. Leider finde ich auch nach längerer Recherche keine auf den Fall übertragbare Logik, die ich mit Ausproberen anpassen kann - aber das mag an mir liegen.
Ich habe in einer UserForm1 mehrere Textboxen, die ich nicht hochgezählt bezeichnet sondern mit dem im Zusammenhang stehenden Sinn bezeichnet habe. So findet sich hier z.B. TextboxVolume1 oder TextboxRepayment1.
Jetzt würde ich gerne die Textboxen, also sowohl deren Bezeichnung als auch deren Inhalt, in einer Spalte A des Tabellenblatt1 übertragen. Eine feste Zuordnung wo in die Spalte A ist dabei nicht entscheidend - "einfach" ab Zeile 10 nach unten.
Ist das mit einer Schleife möglich oder ist es notwendig hier jede Textbox anzusprechen und dann den Inhalt "einzeln" in das Tabellenblatt1 zu übergeben?
Vielen Dank im Voraus für jede Hilfe.
Viele Grüße
Christian

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox inkl. Name in Excel übertragen
15.07.2020 10:54:47
Hajo_Zi
Hallo Christian,
mal für viele Steuerelemente.
Private Sub CMD_Liste1_Click()
'* H. Ziplies                                     *
'* 13.01.11                                       *
'* erstellt von HajoZiplies@WEB.de                *
'* http://Hajo-Excel.de
' auflisten aller Steuerelemente in der UserForm, getrennt nach Typen
Dim ObCb As Object
Application.ScreenUpdating = False
Sheets.Add
ActiveSheet.Name = "Steuerelemente_Typ"
Cells(1, 1) = "Textbox"
Cells(1, 2) = "Listbox"
Cells(1, 3) = "Multipage"
Cells(1, 4) = "CommandButton"
Cells(1, 5) = "Label"
Cells(1, 6) = "Kontrollkästchen"
Cells(1, 7) = "OptionButton"
Cells(1, 8) = "ToggleButton"
Cells(1, 9) = "Frame"
Cells(1, 10) = "ScrollBar"
Cells(1, 11) = "ScrollBar"
Cells(1, 12) = "Image"
Cells(1, 13) = "ComboBox"
Cells(1, 14) = "Rest"
For Each ObCb In Me.Controls
Select Case TypeName(ObCb)
Case "TextBox"
Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) = ObCb.Name
Case "ListBox"
Cells(Cells(Rows.Count, 2).End(xlUp).Row + 1, 2) = ObCb.Name
Case "MultiPage"
Cells(Cells(Rows.Count, 3).End(xlUp).Row + 1, 3) = ObCb.Name
Case "CommandButton"
Cells(Cells(Rows.Count, 4).End(xlUp).Row + 1, 4) = ObCb.Name
Case "Label"
Cells(Cells(Rows.Count, 5).End(xlUp).Row + 1, 5) = ObCb.Name
Case "CheckBox"
Cells(Cells(Rows.Count, 6).End(xlUp).Row + 1, 6) = ObCb.Name
Case "OptionButton"
Cells(Cells(Rows.Count, 7).End(xlUp).Row + 1, 7) = ObCb.Name
Case "ToggleButton"
Cells(Cells(Rows.Count, 8).End(xlUp).Row + 1, 8) = ObCb.Name
Case "Frame"
Cells(Cells(Rows.Count, 9).End(xlUp).Row + 1, 9) = ObCb.Name
Case "ScrollBar"
Cells(Cells(Rows.Count, 10).End(xlUp).Row + 1, 10) = ObCb.Name
Case "SpinButton"
Cells(Cells(Rows.Count, 11).End(xlUp).Row + 1, 11) = ObCb.Name
Case "Image"
Cells(Cells(Rows.Count, 12).End(xlUp).Row + 1, 12) = ObCb.Name
Case "ComboBox"
Cells(Cells(Rows.Count, 13).End(xlUp).Row + 1, 13) = ObCb.Name
Case Else
Cells(Cells(Rows.Count, 14).End(xlUp).Row + 1, 14) = ObCb.Name
Cells(Cells(Rows.Count, 15).End(xlUp).Row + 1, 15) = TypeName(ObCb)
End Select
Next ObCb
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Textbox inkl. Name in Excel übertragen
15.07.2020 11:40:25
Christian
Hallo Hajo,
das klappt soweit super. Ich habe es auf meine Umgebung anpassen können, schaffe es aber leider nicht, dass ich alle 'Name's untereinander schreibe und/oder dann rechts daneben die jeweiligen Inhalte. Wie bekomme ich das denn hin?
Da ich das Tabellenblatt, das die Daten empfangen soll, im Hintergrund halte, ist es notwendig mit .visible und .select anzusteuern, oder?
Herzlichen Dank, Christian
AW: Textbox inkl. Name in Excel übertragen
15.07.2020 12:36:11
Christian
...ich habe es geschafft, durch eine 2. Schleife nun auch die Values abzugreifen. Allerdings immer noch horizontal. Ich habe also für jedes Textfeld u.a. erste eine Spalte mit den Namen und eine Spalte mit den Value.
Und... durch die Formatierungen in den Textboxes, wie z.B. ("#,###0") ist die nummerische Übergabe nicht korrekt. So werden aus "100.000" Volume in der Zelle dann "100,0". Wie kann ich das denn verhindern?
Hat jemand eine weitere gute Idee?
Vielen vielen Dank und viele Grüße
Christian
Anzeige
AW: Textbox inkl. Name in Excel übertragen
15.07.2020 13:22:15
Werner
Hallo,
das ganze "Geschreibsel" bringt doch nichts. Lade mal eine Beispielmappe hoch mit ein paar Datensätzen, wie dein Wunschergebnis aussehen soll und mit dem Code, so wie du ihn jetzt angepasst hast.
Gruß Werner
AW: Textbox inkl. Name in Excel übertragen
15.07.2020 13:37:44
Hajo_Zi
Hallo Christian,
Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).offset(0,1) = ObCb
Gruß Hajo
AW: Textbox inkl. Name in Excel übertragen
15.07.2020 15:40:39
Christian
Hallo nochmal,
mein Sub sieht nun wie folgt aus:
Dim ObCb As Object
Worksheets("Steuerelemente_Typ").Select
Worksheets("Steuerelemente_Typ").Range("A10:B1000").ClearContents
Worksheets("Steuerelemente_Typ").Cells(10, 1) = UCase(UserForm1.MultiPage1.Pages(1).Caption)
Worksheets("Steuerelemente_Typ").Cells(10, 2) = "INHALT"
For Each ObCb In UserForm1.MultiPage1.Pages(1).Controls
Select Case TypeName(ObCb)
Case "TextBox"
Cells(Cells(Rows.Count, 1).End(xlUp).ROW + 1, 1) = ObCb.Name
If ObCb.Value = "" Then
Cells(Cells(Rows.Count, 1).End(xlUp).ROW, 1).Offset(0, 1) = "XXX"
Else
Cells(Cells(Rows.Count, 1).End(xlUp).ROW, 1).Offset(0, 1) = Replace(ObCb.Value, ".", ",")
End If
Case "Label"
Cells(Cells(Rows.Count, 1).End(xlUp).ROW + 1, 1) = ObCb.Name
If ObCb.Caption = "" Then
Cells(Cells(Rows.Count, 1).End(xlUp).ROW + 1, 1).Offset(0, 1) = "XXX"
Else
Cells(Cells(Rows.Count, 1).End(xlUp).ROW + 1, 1).Offset(-1, 1) = ObCb.Caption
End If
Case "CheckBox"
Cells(Cells(Rows.Count, 1).End(xlUp).ROW + 1, 1) = ObCb.Name
Cells(Cells(Rows.Count, 1).End(xlUp).ROW, 1).Offset(0, 1) = ObCb.Value
Case "OptionButton"
Cells(Cells(Rows.Count, 1).End(xlUp).ROW + 1, 1) = ObCb.Name
Cells(Cells(Rows.Count, 1).End(xlUp).ROW, 1).Offset(0, 1) = ObCb.Value
Case "ScrollBar"
Cells(Cells(Rows.Count, 1).End(xlUp).ROW + 1, 1) = ObCb.Name
Cells(Cells(Rows.Count, 1).End(xlUp).ROW, 1).Offset(0, 1) = ObCb.VISIBLE
Case "Image"
Cells(Cells(Rows.Count, 1).End(xlUp).ROW + 1, 1) = ObCb.Name
Cells(Cells(Rows.Count, 1).End(xlUp).ROW, 1).Offset(0, 1) = ObCb.VISIBLE
Case "ComboBox"
Cells(Cells(Rows.Count, 1).End(xlUp).ROW + 1, 1) = ObCb.Name
Cells(Cells(Rows.Count, 1).End(xlUp).ROW, 1).Offset(0, 1) = ObCb.Value
If ObCb.Value = "" Then
Cells(Cells(Rows.Count, 1).End(xlUp).ROW, 1).Offset(0, 1) = "XXX"
Else
Cells(Cells(Rows.Count, 1).End(xlUp).ROW, 1).Offset(0, 1) = ObCb.Value
End If
End Select
Next ObCb
Mit dem Replace fange ich 99 von 100 Inhalte richtig ab. Einer will und will sich nicht so formatieren lassen, wie es sollte.. aber damit kann ich arbeiten. Vielen vielen Dank dafür - das war großartig.
Viele Grüße
Christian
Anzeige
AW: Textbox inkl. Name in Excel übertragen
15.07.2020 16:03:02
Christian
...sorry, vielleicht doch noch eine letzte Frage: kann ich den Vorgang auch in ähnlicher Form umdrehen - also aus den Zellen des Tabellenblatts die Werte wieder zurückladen?
Vielen Dank und viele Grüße
Christian
AW: Textbox inkl. Name in Excel übertragen
15.07.2020 16:10:51
Hajo_Zi
Hallo Christian,
Du schreibst Text in die Zelle und die kannst Du formatieren wie Du willst es bleibt Text. Benutze Umwandluingsfunktionen z.b. Cint()
Gruß Hajo
AW: Textbox inkl. Name in Excel übertragen
15.07.2020 16:28:37
Christian
Hallo Hajo,
das verstehe ich leider - auch nach Google-Recherche - nicht.
Ich habe zum Beispiel
PAGE1_KONTOKORRENT_FXRATE as Variant deklariert und schneide Wert dafür aus einem Text heraus:
PAGE1_KONTOKORRENT_FXRATE = Mid(FXGefunden, WorksheetFunction.Find(" l ", FXGefunden) + 3, 20)
Anschließend gebe ich das Ergebnis an die Textbox und formatiere das Ganze:
UserForm1.TextBoxExchangeRate1.Value = Format(PAGE1_KONTOKORRENT_FXRATE, "#0.###0")
In der Textbox erscheint dann der korrekte Wert mit z.b. "1,1014".
Wenn ich diesen dann allerdings und wie oben beschrieben in die Zellen übertrage wird daraus ein "11.014".
Hochladen kann ich die Datei leider nicht, da es dienstlich ist und schon zu viel drin ist, was dienstlich ist.
Danke Dir, Christian
Anzeige
AW: Textbox inkl. Name in Excel übertragen
15.07.2020 16:29:12
Christian
Hallo Hajo,
das verstehe ich leider - auch nach Google-Recherche - nicht.
Ich habe zum Beispiel
PAGE1_KONTOKORRENT_FXRATE as Variant deklariert und schneide Wert dafür aus einem Text heraus:
PAGE1_KONTOKORRENT_FXRATE = Mid(FXGefunden, WorksheetFunction.Find(" l ", FXGefunden) + 3, 20)
Anschließend gebe ich das Ergebnis an die Textbox und formatiere das Ganze:
UserForm1.TextBoxExchangeRate1.Value = Format(PAGE1_KONTOKORRENT_FXRATE, "#0.###0")
In der Textbox erscheint dann der korrekte Wert mit z.b. "1,1014".
Wenn ich diesen dann allerdings und wie oben beschrieben in die Zellen übertrage wird daraus ein "11.014".
Hochladen kann ich die Datei leider nicht, da es dienstlich ist und schon zu viel drin ist, was dienstlich ist.
Danke Dir, Christian
Anzeige
AW: Textbox inkl. Name in Excel übertragen
15.07.2020 16:34:09
Hajo_Zi
Hallo Christian,
ich bezog mich auf diedsen Code
= ObCb.Value
Gut Du glaubnst mir also nicht das Du Text in die Zelle schreibst, gut das kann ich nicht ändern und bin raus.

AW: Textbox inkl. Name in Excel übertragen
15.07.2020 16:38:04
Christian
Hallo Hajo,
ich bin gar nicht bis zum "glauben" gekommen, weil mich das "verstehen, was wo gemeint ist" aufgehalten hat. Wie auch immer, danke Dir sehr bis hierhin für Deine wertvollen Hinweise.
Viele Grüße
Christian

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige