Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

UserForm mit dynamischer Dateneinlesung und mehr
#1
Hallo zusammen,

Ich bin neu hier, kompletter Laie auf dem Gebiet der VBA-Programmierung und hoffe, dass mir jemand von euch weiterhelfen kann. Ich habe folgendes Anliegen:

Mein Command Button in der Excel-Datei soll grob folgendes können:
Nach Klick auf den Button soll sich eine UserForm öffnen in der man in den DropDown Menüs zwischen verschiedenen Dingen auswählen kann. Nachdem man diese Dinge ausgewählt hat, sollen die zur Auswahl passenden Zellen mit samt dem Inhalt und dem Format in ein neues Excel Dokument kopiert werden.

Und nun etwas genauer (oben findet ihr die Excel-Datei auf die ich mich beziehe):
Nachdem ich auf den CommandButton geklickt habe öffnet sich eine UserForm.
Die UserForm hat 4 Dropdown Menüs (Combo Boxes). Ich will, dass sich alle Dropdown Menüs ihre Einträge aus den entsprechenden Spalten ziehen, damit ich nichts hart codieren muss für den Fall, dass später noch Zeilen hinzukommen.
Die erste Combo Box („Model“) soll sich seine Einträge aus Spalte A der Tabelle ziehen.
Die zweite Combo Box („Part“) soll sich seine Einträgen dann aus Spalte B der Tabelle ziehen, und zwar so, dass dort nur die zum ausgewählten „Model“ passenden Einträge stehen.
Gleich verhält es sich mit den übrigen 2 Combo Boxen, die sich die passenden Einträge aus Spalte C und D ziehen sollen.
Wenn ich dann die Auswahlen getroffen habe und auf „Create Work Card“ klicke, sollen die zur Auswahl treffenden Zeilen der Tabelle (Spalte E-I) mit samt Überschrift (Zeile 1-9) in ein neues Excel Dokument kopiert werden. Sprich Spalte A-D sollen nicht in die neue Datei kopiert werden.
Perfekt wäre es natürlich, wenn die Auswahl der letzten ComboBox („PN“) noch in Zeile 4 zu „Part Number“ in der neuen Datei eingefügt werden würde.

Sprich: das, was ich über die Filter-Funktion oder über Ausblenden der Zeilen in Excel manuell von links (Zeile 9, Spalte A) nach rechts (Zeile 9, Spalte D) machen könnte, mit anschließendem Copy, neues Dokument öffnen, Paste, soll über den CommandButton und die UserForm automatisch passieren.

Ich hoffe mal das ist verständlich erklärt und ihr habt eine Idee in welche Richtung es gehen soll.
Ich würde mich riesig freuen, wenn mir jemand weiterhelfen könnte.

Viele Grüße,
Dominik

.xlsm   WorkCard.xlsm (Größe: 48,21 KB / Downloads: 9)
Antworten Top
#2
Hi Dominik,

(25.07.2016, 11:08)DomiS schrieb: Die UserForm hat 4 Dropdown Menüs (Combo Boxes). Ich will, dass sich alle Dropdown Menüs ihre Einträge aus den entsprechenden Spalten ziehen, damit ich nichts hart codieren muss für den Fall, dass später noch Zeilen hinzukommen.

zuerst mußt Du die ganzen verbundenen Zellen auflösen. Die Tabelle1 ist nur zur Ablage der Daten ("Datenbank"), da haben verbundene Zellen nix verloren.

Dann kannst Du Dir in einem Blatt "Listen" eine Aufstellung aller vorkommenden Auswahlkriterien erstellen (evtl. jeden Block einzeln als intelligente Liste formatieren: STRG-L):

Listen
ABCDEFG
1ModelPart ManufacturerP/N
2Model 1Part 1Manufacturer 154321
3Model 2Part 2Manufacturer 265432
4Manufacturer 376543
587654
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 19.07 einschl. 64 Bit



Dann kannst Du mit diesem Code die ComboBoxen mit den Daten füllen, auch wenn sich die Listen verlängern:
Private Sub UserForm_Initialize()
   'Empty ComboBoxes 
   Model.Clear
   Part.Clear
   Manufacturer.Clear
   PN.Clear
   
   'Fill Model 
   With Worksheets("Listen")
      Model.List = .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp)).Value     'Spalte 1 (A) 
   End With
   
   'Fill Part 
   With Worksheets("Listen")
      Part.List = .Range(.Cells(2, 3), .Cells(Rows.Count, 3).End(xlUp)).Value     'Spalte 3 © 
   End With
   
   'Fill Manufacturer 
   With Worksheets("Listen")
      Manufacturer.List = .Range(.Cells(2, 5), .Cells(Rows.Count, 5).End(xlUp)).Value     'Spalte 5 (E) 
   End With
   
   'Fill PN 
   With Worksheets("Listen")
      PN.List = .Range(.Cells(2, 7), .Cells(Rows.Count, 7).End(xlUp)).Value     'Spalte 7 (G) 
   End With
   
End Sub


VBA/HTML - CodeConverter für Office-Foren, AddIn für Excel/Word 2000-2013 - komplett in VBA geschrieben von Lukas Mosimann. Projektbetreuung durch mumpel

Code erstellt und getestet in Office 15

Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste