Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1088to1092
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
Listbox mit Daten aus 3 Tabellen füttern
k
Hallo,
kurze Frage ob es überhaupt möglich wäre und wenn ja wie ?!
Folgendes Problem:
Ich habe 4 verschieden Tabellen in denen Daten per jeweiliger Userform eingeben werden. Klappt alles super. Nun möchte ich gern die Kundendaten aus allen 4 Tabellen in einer Listbox anzeigen lassen (alle Tabellen haben den gleichen Aufbau im Bereich Kundendaten und erst danach kommen unterschiedliche Informationen dazu), damit z.B. Kundendaten aus der Userform 1 (Tabelle1) auch in Userform 2 (Tabelle) übernommen werden können.
Dachte da an eine Userform mit Suchfunktion über alle 4 Tabellenblätter und eine Listbox, die alle Einträge anzeigt (ohne Dopplungen!!!!) und ein Button - Datensatz übernehmen. D.h. wenn ein Datensatz in der Listbox markiert wurde - wird dieser in einer der anderen Userform eingelesen und kann darüber weiter bearbeitet und gespeichert werden.
Hoffe es ist grob nachvollziehbar wo ich hin will.... brauche aber Unterstützung!
Hatte schon mal Beitrag zu "doppelten" geschrieben, aber der Code funktioniert bei mir nicht ?!
https://www.herber.de/forum/archiv/1088to1092/t1089694.htm#1089694
mehrere Tabellenblätter durchsuchen hatte ich folgenden Code probiert und (bis auf doppelte) scheint er auch zu funktionieren....mein Problem ist noch den ausgewählten Datensatz in der gewünschten Userform einzulesen sowie doppelte Einträge zu vermeiden.
Option Explicit
Dim wks As Worksheet
Dim wkb1, wkb2 As Workbook
Dim XBlatt, wks2 As Worksheet
Dim XZeile As Long
Dim Suchart As String
Dim xOpt As Integer
Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub UF5_ATB_Initialize()
Suchart = xlPart
xOpt = 1
End Sub

Private Sub CommandButton3_Click()
Dim xSuche, xAdresse, xErste, SO As String
Dim Y As Boolean
Dim arr() As Variant
Dim rng As Range
Dim iCounter, iRowU As Integer
LB1.Clear
xSuche = TB1.Value
Suchart = xlWhole
If xSuche = "" Then
MsgBox "Bitte erst einen Suchbegriff eingeben!", vbExclamation, "Achtung!"
Exit Sub
End If
If OB1.Value = True Then
SO = "ATE"
Else
If OB2.Value = True Then
SO = "ZKE"
Else
If OB3.Value = True Then
SO = "STE"
End If
End If
End If
For iCounter = 1 To ThisWorkbook.Sheets.Count
If OB4.Value = True Or Worksheets(iCounter).Name = SO Then 'OB4 = Optionsbutton - gesamte  _
Datei durchsuchen (müssten och angepasst werden auf Tabelle 1-4 durchsuchen)
Set rng = Worksheets(iCounter).Cells.Find _
(xSuche, lookat:=Suchart, LookIn:=xlValues)
If Not rng Is Nothing Then
With Worksheets(iCounter)
xErste = rng.Address(False, False)
Y = True
Do Until xAdresse = xErste
ReDim Preserve arr(0 To 15, 0 To iRowU)
arr(0, iRowU) = .Name
arr(1, iRowU) = rng.Address(False, False)
arr(2, iRowU) = .Cells(rng.Row, 1)
arr(3, iRowU) = .Cells(rng.Row, 2)
arr(4, iRowU) = .Cells(rng.Row, 3)
arr(5, iRowU) = .Cells(rng.Row, 4)
arr(6, iRowU) = .Cells(rng.Row, 5)
arr(7, iRowU) = .Cells(rng.Row, 6)
arr(8, iRowU) = .Cells(rng.Row, 7)
arr(9, iRowU) = .Cells(rng.Row, 8)
arr(10, iRowU) = .Cells(rng.Row, 9)
arr(11, iRowU) = .Cells(rng.Row, 10)
arr(12, iRowU) = .Cells(rng.Row, 11)
arr(13, iRowU) = .Cells(rng.Row, 12)
arr(14, iRowU) = .Cells(rng.Row, 13)
arr(15, iRowU) = .Cells(rng.Row, 14)
iRowU = iRowU + 1
Set rng = .Cells.FindNext(after:=rng)
xAdresse = rng.Address(False, False)
Loop
xAdresse = ""
xErste = ""
End With
End If
End If
Next iCounter
If Y = False Then
MsgBox "Der Suchbegriff wurde nicht gefunden!"
Else
LB1.Column = arr
End If
End Sub

Hoffe mir kann geholfen werden, oder jemand hat eine bessere Idee - wie ich es realiseren kann ?!
Dachte auch schon an eine Tabelle im Hintergrund, wo die Kundendaten aus allen Tabellen 1-4 reinkopiert werden (beim auslösen der Suche, also Temporär) - Ohne Dopplungen !!! - und dann die Userform-Suche (UF5_ATB) darauf suchen lassen.
Denke fast, das es einfacher wäre...nur dass eben hier die "doppelten" auch rausgeschmissen werden müssten.
(Hinweis: Kundendaten sind ca. 1.000-1.500 verschiedene und ca. 20 Spalten an Infos zu jedem Kunden)
OK, doch wieder länger geworden. Danke für Eure Zeit (allein schon fürs Lesen!)
Gruß
Kay

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Listbox mit Daten aus 3 Tabellen füttern
21.07.2009 10:21:08
Tino
Hallo,
in groben Zügen verstehe ich was Du vor hast, aber auch nicht so richtig.
Verstanden habe ich, Du hast 3 Tabellen, für jede hast Du eine Userform. (dies funktioniert)
Nun möchtest Du eine 4. Userform die sozusagen eine Zusammenfassung aller 3 Tabellen aufzeigt ohne doppelte Daten.
Ohne doppelte Daten heißt dann aber,
es sollen alle Daten bearbeitet werden in denen dieser Datensatz vorkommt?
Bitte lade mal ein Beispiel hoch, glaube schon das da was zu machen ist.
Kann Dir aber noch nicht versprechen ob ich Dir halfen kann.
Gruß Tino
AW: Listbox mit Daten aus 3 Tabellen füttern
21.07.2009 11:33:46
k
Hallo Tino,
...habe eine kleine Musterdatei erstellt. Nicht schön, aber ungefähr das was ich meine ist enthalten.
Nur der VBA-Code für die Listbox (Suchfunktion etc.) ist nicht hinterlegt...da hoffe ich auf Deinen/Euren Beitrag...da meine VBA-Kenntnisse "noch" nicht ausreichen, bin aber täglich am lernen. Man nutzt es nur leider zu selten.
hier ist die Musterdatei zu finden:
https://www.herber.de/bbs/user/63315.xls
Noch ein Wort zu den "Doppelten" Daten. Also, es gibt 2 Dinge dabei:
A) Bisher zeigte mir die Listbox auch einen Datensatz mehrfach an, wenn der Suchbegriff mehrfach im Datensatz vorkommt. (Z.B. "Meyer", a) Name = Meyer und b) Firmenbezeichnung = Meyer GbR ... beides in einem Datensatz (eine Zeile).
B) Wenn innerhalb einer Tabelle auch ein Kunde 2 oder 3 mal vorkommt jedoch nach dem Kundenstammsatz in Spalte (hier) 15/16 jeweils andere Informationen stehen (z.B.: Kunde Meyer hat 2 Produkte bei uns in Auftrag gegeben. Dann taucht Meyer 2x auf, aber hinter seinen Stammdaten mit unterschiedlichen Produkten/Auftragsdaten)... auch hier interessiert mich bei einer Kundensuche nicht die unterschiedlichen Aufträge sondern nur der Kunde an sich !
Hoffe nicht noch mehr Chaos in die Formulierung gebracht zu haben und schreibe schon mal Vielen Dank
für Deine Bemühungen !
Gruß
Kay
Anzeige
komme heute nicht mehr dazu, Frage offen
21.07.2009 12:08:53
Tino
Hallo,
da ich bald auf die arbeit gehe, komme ich nicht mehr dazu was anzufangen.
Lass die Frage mal offen stehen.
Gruß Tino
AW: habe mal angefangen
22.07.2009 13:27:56
k
Hallo Tino.
...ich bin schon ziemlich begeistert. um nicht zu sagen genial ;o)
Ja, das ist genau das was ich suchte.
Jetzt aber noch einige Fragen zum Detail:
Könntest Du mir den VBA-Teil etwas kommentieren ? D.h. was genau passiert in welcher Zeile ?!
Was macht z.B. der Befehl:
For A = 1 To UBound(meAr) - wofür steht UBound
oder
"###" ... wofür steht das im Code
oder
ParamArray oSh() As Variant - warum steht es oben mit in den Klammern ?
Wie angeben, ich kann zwar schon den einen oder anderen einfachen Code kopieren und auch die, wo ich einmal gelesen habe - was er genau macht auch wieder selber schreiben...aber einige Deine Zeilen sind mit "Fremd"...da wäre ich Dir sehr dankbar für eine kleine "Nachhilfestunde" - so dass ich dann in Zukunft diesbezüglich nicht mehr Euch/Dich belästigen muss ;o)
Ich denke, wenn ich den Code besser lesen könnte (hatte es mit Hilfe von Excel-versucht, aber irgendwie nicht ganz schlau geworden - obwohl ich die Excel-Hilfe für eine der Bestern aller Programme halte!)...könnte ich auch mehr lernen, ihn auch wo anders gezielt anwenden sowie daran weiterarbeiten ;o)
Denn ich habe noch so das eine oder andere zur Ergänzung, was die Praxis zeigte....
Wie kann ich z.B. das Label-Feld dynamisch an den Inhalt der Listbox anpassen ? D.h. wähle ich z.B. 5 oder 8 Details der Tabellendaten für die Listbox zur Anzeige aus - sollten die Spaltenbreite angpasst werden an die Breite der Inhalte sowie die Spaltenüberschrift im Label passend dadrüber stehen ?!
Hatte dazu bereits einen Beitrag, der aber noch nicht richtig bei mir funktioniert ?!
https://www.herber.de/forum/messages/1089847.html
Kannst Du mir dazu vielleicht auch noch helfen ? Wie kann ich die Breite der Spalten in der Listbox an den Ihnhalt anpassen - so dass nicht zuviel Luft (Leerzeichen) zwischen den Spalten stehen, bzw. Spalteninhalte nicht "abgeschnitten" werdne ?
Und vor allem - wie kann ich dann diese Info noch an das Lebel geben mit den entsprechenden Spaltennamen - die es anzeigen soll ?
Du siehst, ich will viel - "LERNEN" - und daher - kannst Du mir vielleicht auch ein oder 2 Bücher empfehlen ?
Vor allem mit dem Hintergrund : Userformen und Datenbearbeitung ?!
Gruß und vielen Dank !
Kay
Anzeige
AW: habe mal angefangen
22.07.2009 13:48:45
Tino
Hallo,
Kann erst morgen wieder, bin auf der Arbeit.
Gruß Tino
AW: habe mal angefangen
23.07.2009 09:40:58
Tino
Hallo,
hier die Version mit Kommentaren.
Zwecks Überschriften, bin ich jetzt auf ein Listview umgestiegen, bei diesen lässt sich eine Überschrift erstellen und die Spalten lassen sich recht leicht auf die optimale Breite setzten.
https://www.herber.de/bbs/user/63367.xls
Gruß Tino
AW: habe mal angefangen
24.07.2009 11:39:44
k
Hallo Tino,
...sorry - wollte gestern noch antworten. Vielen dank für Deine Mühen und ich finde es klasse - so habe ich mir das vorgestellt - bin total begeistert.
Jetzt versuche ich es am WE mal auf meine Daten umzubauen und dann melde ich mich wieder !
Gruß und Danke !
Kay
PS: Kennst Du ein Buch für den Bereich "Userform" und "Datentabellen-VBA" welches Du mir empfehlen könntest ?!
Anzeige
AW: habe mal angefangen
24.07.2009 12:02:18
Tino
Hallo,
habe ein bar Büche von Mark und Technik unter anderem auch das Kompendium,
den Rest habe ich über Google und selbst testen und probieren und natürlich dieses Forum.
Gruß Tino

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige