Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1000to1004
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
Zahlen einer Tabelle in Userform einlesen
20.08.2008 07:07:03
Josef
Guten Morgen!
Ich habe in einem Arbeitsblatt mehrere Tabellen.
In einer UserForm habe habe ich 460 TextBoxen, wobei die Zählung immer pro Reihe senkrecht erfolgt.
Spalte 1 = TextBox1-23, Spalte2 = TextBox24- TextBox46 usw.
Ich möchte nun z.B. die erste Tabelle in die Textboxen einlesen lassen. Wenn also in der UserForm in der ComboBox1 Wien aktiviert wird, sollen die 460 Zellen der erstren Tabelle in die 460 Textboxen eingelesen werden.
Das gleiche sollte dann mit der zweiten Tabelle beim Aufruf Niederösterreich passieren usw.
Wie würde hier bitte eine bessere Lösung als meine aussehen?
TextBox1.Text = wks.Range("B3")
TextBox2.Text = wks.Range("B4")
Anbei eine Musterdatei:
https://www.herber.de/bbs/user/54735.xls
Danke
Josef

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahlen einer Tabelle in Userform einlesen
20.08.2008 07:11:06
Josef
Hallo!
hier nochmal die hochgeladene Datei, da die erste anscheinend nicht funktioniert.
https://www.herber.de/bbs/user/54737.xls
Danke

AW: Zahlen einer Tabelle in Userform einlesen
20.08.2008 07:51:00
Heiko
Moin Josef,
vom Prinzip her z.B. in einer Schleife:
For lngi = 1 To 23
Me.Controls("TextBox" & lngi) = wks.Cells(lngi + 2, 2)
Next lngi
Und dann mußt du halt je nach Spalte und Textboxnummeer mit for lngi = 1 to 23 speilen also z.B. for lngi = 24 to 47 .
Und bei den Cells dann mit lngi + 2 für die Zeile und ,2 für die Spalte.
Gruß Heiko
PS: Rückmeldung wäre nett !

Anzeige
AW: Zahlen einer Tabelle in Userform einlesen
20.08.2008 08:17:33
Josef
Hallo Heiko!
Danke für Deine Antwort.
Die erste Spalte schaffte ich. Bei der zweiten kam nur wirres Zeug rein.
Wo habe ich da bitte jetzt den Fehler gemacht?
For x = 1 To 23
Me.Controls("Label" & x).Caption = ActiveSheet.Cells((2 + x), 1)
Next x
For lngi = 1 To 23
Me.Controls("TextBox" & lngi) = wks.Cells(lngi + 2, 2)
Next lngi
For lngi = 24 To 46
Me.Controls("TextBox" & lngi) = wks.Cells(lngi + 2, 3)
Next lngi
Josef

AW: Zahlen einer Tabelle in Userform einlesen
20.08.2008 08:21:45
Heiko
Hallo Josef,
hier unten:
For lngi = 1 To 23
Me.Controls("TextBox" & lngi) = wks.Cells(lngi + 2, 2)
Next lngi
For lngi = 24 To 46
Me.Controls("TextBox" & lngi) = wks.Cells(lngi - 22, 3)
Next lngi
Ob die - 22 ganz richtig ist muß mal testen !
Gruß Heiko
PS: Rückmeldung wäre nett !

Anzeige
AW: Zahlen einer Tabelle in Userform einlesen
20.08.2008 08:25:00
Josef
Hallo Heiko!
Die Zahl -21 müßte es geweswn sein. Wie errechnet sich bitte diese Zahl, damit ich beic den anderen Textboxen das ebenfalls nachvollziehen kann?
Danke
Josef

AW: Zahlen einer Tabelle in Userform einlesen
20.08.2008 10:29:04
Heiko
Hallo Josef,
rechnet Ihr in Österreich anders als wir in Deutschland ;-)
Also das lngi ist als fortlaufende Nummer erstmal für die Textboxen zuständig.
Wie du ja auch richtig erkannt hast.
Nun stehen die Infos die du in die Textboxen machen willst ja nicht aller untereinander sondern zum Teil nebeneinander in den Spalten.
Wenn du also Textbox24 füllen möchtest soll das mit der Zelle C3 passieren.
In der Funktion Cells(a,b) gibst du mit a die Zeile und mit b die Spalte an die ausgelesen werden soll.
Also Zelle C3 = Cells(3,3) und dann für die zweite Spalte mit lngi = cells(lngi -21,3)
24-21 = 3; 25-21 = 4; 26-21 = 5 ...
Und für die nächste Spalte dann halt nicht Minus 21 sonder irgendwas mit 44 usw.
Also nur Addition und Subtraktion, alle klar ?!
Gruß Heiko
PS: Rückmeldung wäre nett !

Anzeige
AW: Zahlen einer Tabelle in Userform einlesen
20.08.2008 11:42:00
Josef
Hallo Heiko!
Besten Dank für Deine ausführliche Erklärung und Deine Hilfe.
Habe es jetzt geschafft. Es funktioniert bestens.
Ich hätte jetzt noch eine Zusatzfrage:
Wenn ich jetzt die eingetragenen Zahlen z.B. in den Textboxen 1-23 zusammenzählen möchte und die Summe in einer eigenen txtBox1 z.b. anzeigen lassen will, gäbe es hier auch so eine Lösungsvariante?
Josef

AW: Zahlen einer Tabelle in Userform einlesen
20.08.2008 11:54:00
Heiko
Hallo Josef,
vom Prinzip her ähnlich (ungetestet):
Dim lngWert As Long, lngI As Long
For lngI = 1 To 23
lngWert = lngWert + CLng(Me.Controls("TextBox" & lngI))
Next lngI
Me.txtBox1 = lngWert
Wenn es nur ganzzählige Werte gibt, sonst die Variable als double dimensionieren und statt CLng CDbl verwenden.
Gruß Heiko
PS: Rückmeldung wäre nett !

Anzeige
AW: Zahlen einer Tabelle in Userform einlesen
20.08.2008 12:06:00
Josef
Hallo Heiko!
Habe es gerade getestet:
For lngI = 1 To 23
lngWert = lngWert + CLng(Me.Controls("TextBox" & lngI))
Next lngI
Me.txtBox1 = lngWert
Bekomme jedoch die Meldung: TYPEN unverträglich
Josef

AW: Zahlen einer Tabelle in Userform einlesen
20.08.2008 12:42:11
Heiko
Hallo Josef,
du mußt natürlich überall Zaheln drin haben oder das so abfangen:
Dim lngWert As Long, lngI As Long
For lngI = 1 To 10
If IsNumeric(Me.Controls("TextBox" & lngI)) Then
lngWert = lngWert + CLng(Me.Controls("TextBox" & lngI))
End If
Next lngI
Me.TxtBox1 = lngWert
Gruß Heiko
PS: Rückmeldung wäre nett !

Anzeige
AW: Zahlen einer Tabelle in Userform einlesen
20.08.2008 12:49:00
Josef
Hallo Heiko!
Jetzt hat es geklappt.
Apropo Zahlen: In die TextBoxen werden nur Zahlen eingelesen.
Auf jeden Fall herzlichen Dank für Deine Mühe und Deine Geduld.
Schönen Tag noch
Josef

AW: Zahlen einer Tabelle in Userform einlesen
20.08.2008 14:35:00
Heiko
Hallo Josef,
Es stehen Zahlen drin und hier und da mal nichts, wenn ich deine Tabelle richtig lesen kann.
Und nichts ist hat keine Zahl und auch keine Null sondern halt nichts, und dann meckert er halt.
Gruß Heiko
PS: Rückmeldung wäre nett !

AW: Zahlen einer Tabelle in Userform einlesen
20.08.2008 18:01:22
Josef
Hallo Heiko!
Alles klar. Ich hatte angenommen, dass Nullen in diesem Fall zu den Zahlen zählen. In meiner Original Datei sind nämlich Zahlen sowie auch Nullen eingetragen.
wieder mal was dazugelernt.
Jetzt hätte ich jedoch schon wieder eine Zusatzfrage und zwar zu folgendem Problem.
Ich habe z.B. 22 Textboxen (1-22) nebeneinander stehen. wie ich Daten welche senkrecht eingetragen sind, eingelesen werden habe ich jetzt dazugelernt. wie lese ich aber Daten ein, wenn z.B. die Zahlen nebeneinander in einer Zeile stehen. z.b. Zeile 25 oder Zeile 48 usw.
Josef

Anzeige
AW: Zahlen einer Tabelle in Userform einlesen
20.08.2008 20:23:00
Heiko
Hallo Josef,
vom Prinzip her genauso, wenn ich deine Frage richtig verstanden habe.
Wieder die Variable lngi als Zähler für die Textboxen und dann halt bei Cells nicht die Zeilen sondern die Spalten hochzählen. Im folgenden Beispiel (ungetestet) werden die Daten aus Zeile 25 von Spalte A bis Spalte W eingelesen. Das hättest du aber auch selbst herausfinden können, wenn du dir mal in der VBA Hilfe die Einträge und Hilfen zu den von mir verwendeten Befehlen, vor allen Cells, anschauen würdest.
For lngi = 1 To 23
Me.Controls("TextBox" & lngi) = wks.Cells(25, lngi)
Next lngi
Und zum vorherigen Thread, eine Null (0) wird schon mit CLng in eine Zahl gewandelt, wenn aber nichts in der Zelle steht dann kann CLng auch nicht wandeln und läuft in einen Fehler.
Gruß Heiko
PS: Rückmeldung wäre nett !!!

Anzeige
AW: Zahlen einer Tabelle in Userform einlesen
21.08.2008 06:01:00
Josef
Guten Morgen Heiko!
Danke für Deine Antwort.
Habe jetzt den Code getestet. würde alles bestens funktionieren. Wo und wie müßte ich jedoch den Code noch ändern wenn das Einlesen ab der Spalte B anfangen soll und nicht bei der Spalte A.

Private Sub Summe2()
Dim wks As Worksheet
Set wks = Workbooks("Stellenpläne.xls").Worksheets("Soll")
For lngI = 1 To 22
Me.Controls("plendtxt" & lngI) = wks.Cells(28, lngI)
Next lngI
End Sub


Danke
Josef

AW: Zahlen einer Tabelle in Userform einlesen
21.08.2008 07:01:00
Erich
Hi Josef,
versuch mal

For lngI = 1 To 22
Me.Controls("plendtxt" & lngI) = wks.Cells(28, lngI + 1)
Next lngI

Ob die Schleife jetzt bis 21 oder 22 gehen sollte, weißt nur du. Wieviele Spalten sollen gelesen werden?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Zahlen einer Tabelle in Userform einlesen
21.08.2008 07:12:27
Josef
Hallo Erich!
Danke für Deine Antwort und Deine Hilfe. Jetzt passt alles.
Josef

AW: Zahlen einer Tabelle in Userform einlesen
21.08.2008 07:14:43
Josef
Hallo nochmals!
Ich möchte mich bei Dir noch einmal recht herzlich für Deine Mühe bedanken.
Josef

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige