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

In einer Userform alle Daten von Tabelle

In einer Userform alle Daten von Tabelle
Tabelle
Hallo Liebe Leute,
ich hätte eine Frage bzw. bräuchte ich eure Hilfe.
Ich habe eine Mappe mit 12 Tabellen (sind die Monate). Ich hab nun eine Userform zusammen gebastelt wo halt die ganzen Überschriften drinnen stehen.
In den Tabellen sind folgende Werte enthalten
die Prämien (Laufen, Einmalerlag)
die Stückzahlen (Laufend, Einmalerlag)
In der Userform hab ich auch Schaltflächen eingefügt um diese zu Navigieren.
Ich hoffe ich habe mich gut ausdrücken können.
Hier mal der Entwurf von mir

Die Datei https://www.herber.de/bbs/user/67940.xls wurde aus Datenschutzgründen gelöscht


vielen dank im vorhinein für eure Hilfe

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

Betreff
Benutzer
Anzeige
AW: Wo ist da die Frage zum Projekt der HELVETIA?
11.02.2010 18:20:28
JOWE
AW: In einer Userform alle Daten von Tabelle
11.02.2010 18:46:23
Tabelle
Hallo
Zu 1.
Fuer die beiden Buttons Monat hoch/runter.

Private Sub CommandButton6_Click()
Label16.Caption = Worksheets(Sheets(Label16.Caption).Index - 1).Name
End Sub
Private Sub CommandButton7_Click()
Label16.Caption = Worksheets(Sheets(Label16.Caption).Index + 1).Name
End Sub

gruss hary
AW: zu Punkt 2
11.02.2010 19:13:44
hary
Hallo nochmal
rein bekommst Du die Daten mit.

Me.TextBox1 = Sheets(Label16.Caption).Range("o7")
'------------ usw. --------------------

gruss hary
viel Spass!!
AW: In einer Userform alle Daten von Tabelle
11.02.2010 20:49:52
Tabelle
Hallo Fatih,
es ist recht umständlich 56 mal "Me.TextBox(x) = Sheets(y).Range(z) zu schreiben.
Zumal sich der Sheet-Name mit jedem Monat ändert und ebenso der Range mit dem Typ (Prämie, laufend, ...)
Bei 4 Typen, 12 Monaten und 56 TextBoxes hättest du dann 2688 Zeilen Code dieser Art. Verschwende hierfür keine Zeit, auch nicht für die ersten 56 Zeilen. Es ist IMHO sehr viel sinnvoller, einen Algorithmus zu entwickeln, wie man so was mit 10 oder 20 Zeilen erschlagen kann.
mein Vorschlag:
https://www.herber.de/bbs/user/67943.xls
Btw:
- "Jänner" ist kein deutsch (evt kommt das aus Bayern, Österreich oder Tirol). Januar wäre IMHO hier besser.
- mit "Einmalerlag" kann meines Erachtens nur "Einmalertrag" gemeint sein.
Gib mir Bescheid, wie du damit zurecht kommst
Gruß
Christian
Anzeige
AW: In einer Userform alle Daten von Tabelle
12.02.2010 10:06:35
Tabelle
hallo und eine schönen guten morgen.
ich danke euch recht herzlich für die lehrreichen informationen.
@christian
lieber christian, habe mir jetzt deinen vorschlag angeschaut, und bin total begeistert.
wenn ich mir die codes anschaue, scheint es recht kompliziert zu sein sowas aufzubauen. ich arbeite mit vba schon seit einigen monaten, und das einzige was ich bis jetzt kann ist eigentlich nur ein formular gestalten von der optik her. und userform1.show bzw. unload me :-(
ich werde mich dieses wochenende mal hin setzen und versuchen den code von dir zu analysieren.
wäre es vielleicht zu viel verlangt, wenn du paar kommentare dazu schreibst? was die einzelnen zeilen im ablauf bewirken, damit könnte ich es viel schneller verstehen.
Bezgl. Algorithmus hast du recht, mein problem ist nur, wenn ich so ein projekt anfange, weiss ich nicht genau wie ich anfangen soll.
Ich habe Bücher,Videos über VBA und irgendwie fehlt mir einfach dieser ansatz.
Naja Übung macht den meister wie es so schön heisst.
@hary
auch dir einen besonderen dank hary hast mir gestern sehr geholfen mit der karte
lg aus wien
fatih
Anzeige
OT @ Fatih
12.02.2010 12:21:03
hary
Hallo Fatih
Den letzten Post gestern mit den Doc hast Du noch gesehen?
gruss hary
AW: In einer Userform alle Daten von Tabelle
12.02.2010 12:55:49
Tabelle
Hallo Fatih,
hier nochmal die GetData Prozedure mit ein paar Kommentaren. Der spannende Part sind eigentlich die letzten 5 Zeilen "Bereich durchlaufen". Hier spart man sich die 56-fache Eingabe von "Me.TextBox(x) = Sheets(y).Range(z)".
wird es jetzt verständlicher?
Gruß
Christian

Private Sub GetData(intMnth As Integer, intType As Integer)
Dim i As Integer, intCol As Integer, intFirstCol As Integer
Dim lngRow As Long, wks As Worksheet
'Farbe der CommandButtons
For i = 1 To 4
Me.Controls("cmdType" & i).BackColor = IIf(i = intType, &HC0C0FF, &H8000000F)
Next
'Tabelle abhängig von intMnth
With ThisWorkbook
For i = 1 To .Worksheets.Count
If .Worksheets(i).CodeName = "tblMonth_" & Format(intMnth, "00") Then
Set wks = .Worksheets(i)
Exit For
End If
Next
End With
'Tabellenname in Label anzeigen
Me.lblMonth.Caption = wks.Name
'Startposition abhängig von intType
Select Case intType
Case 1: lngRow = 6:  intFirstCol = 4                    'Prämie-Laufend
Case 2: lngRow = 16: intFirstCol = 4                    'Prämie-Einmal
Case 3: lngRow = 6:  intFirstCol = 15                   'Stückzahl-Laufend
Case 4: lngRow = 16: intFirstCol = 15                   'Stückzahl-Einmal
End Select
'Bereich durchlaufen
For i = 1 To 56
intCol = intFirstCol + (i - 1) Mod 8                    'Spalte
If i Mod 8 = 1 Then lngRow = lngRow + 1                 'Zeile
Me.Controls("TextBox" & i) = wks.Cells(lngRow, intCol)  'TextBox füllen
Next
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige