Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1180to1184
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
Daten übernehmen und per Checkbox auswählen
Svenler
Hallo zusammen,
da mir schon oft hier geholfen wurde Frage ich euch wieder :)
Ich hoffe mir kann jemand helfen einen Lösungsansatz zu finden.
Ich würde gerne Daten aus einem bestimmten Tabellenblatt ("Z") auslesen um diese dann per Checkbox auszuwählen und wieder auszugeben.
Ich habe eine Tabelle mit Artikeln, in der Spalte A steht die "Artikelnummer", Spalte C der "Bestand", Spalte E "Vorbestellungen", Spalte F "Bestellt" und in Spalte H der "Preis" (alles in einer Reihe)
Diese Daten möchte ich in eine Liste (Listbox vielleicht?) übernehmen und mit einer Checkbox versehen.
Danach sollen gewisse Artikel per Checkbox ausgewählt werden und in ein anderes Tabellenblatt übernommen werden (Am Ende vielleicht mit einem Command Button der den Übertrag in ein anderes Tabellenblatt macht).
Die Anzahl der Daten variiert deshalb habe ich einen maximalen Bereich von A2:A200.
Wie die Daten ausgegeben werden möchte ich auch noch definieren, aber das später.
Ich habe jetzt schon das Problem, wenn eine ListBox wirklich die beste Variante ist, meine Daten da reinzubekommen.
Ich hoffe es hat jemand Lust mir zu helfen,
Vielen Dank vorab.
Grüße Sven

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Listbox wo?
18.10.2010 11:44:44
Rudi
Hallo,
in einer UF oder einer Tabelle?
Gruß
Rudi
AW: Listbox wo?
18.10.2010 11:54:14
Svenler
Hallo Rudi,
wenn es mit einer Listbox realisiert werden kann dann in einer UF.
Die Daten im Tabellenblatt ändern sich täglich, sprich ich bekomme jeden Tag ein neues Datenblatt zur Verfügung gestellt.
Eine andere alternative (habe ich mir überlegt, wenn überhaupt möglich) wäre wenn man per Makro den Befehl ausgibt jeder Zeile (mit Inhalt) im Tabellenblatt eine Checkbox zu verpassen welche dann die selbe Funktion (der Auswahl) möglich macht und am Ende den Button einfügt der zum Übertrag in ein weiteres Tabellenblatt verwendet werden kann.
Danke schonmal
Anzeige
AW: Listbox wo?
18.10.2010 12:16:14
Rudi
Hallo,
UF mit Listbox1
Code:
Private Sub UserForm_Activate()
Dim arrList, rngC As Range, i As Integer
With Sheets("Z")
ReDim arrList(1 To Application.CountA(.Columns(1)), 1 To 5)
For Each rngC In .Columns(1).SpecialCells(xlCellTypeConstants)
i = i + 1
arrList(i, 1) = rngC
arrList(i, 2) = rngC.Offset(, 2)
arrList(i, 3) = rngC.Offset(, 4)
arrList(i, 4) = rngC.Offset(, 5)
arrList(i, 5) = rngC.Offset(, 7)
Next
End With
With ListBox1
.ColumnCount = 5
.MultiSelect = fmMultiSelectMulti
.ListStyle = fmListStyleOption
.List = arrList
End With
End Sub

Gruß
Rudi
Anzeige
Selektierte Daten übernehmen
18.10.2010 13:59:49
Svenler
Hallo Rudi,
vielen Dank klappt einwandfrei!
Und wie ich sehe hätte ich das selbst nicht lösen können da mir einige Befehle gänzlich unbekannt sind.
Da komme ich auch gleich zum nächsten Problem.
Jetzt habe ich eine Selektion getroffen, möchte zur Selektierten Auswahl bestimmte Angaben in ein weiteres Tabellenblatt einfügen.
Die Listbox ermöglich mir eine Artikelnummer mit dessen Bestand zu sehen und zudem bestimmte Artikel zu selektieren. Mit Click auf den Button möchte ich alle selektierten Artikel in "Tabelle3" schreiben.
Dazu sollen aber wieder nur bestimmte Informationen verwendet werden.
Beispiel : Meine Listbox enthält nun Artikel1, Artikel2 und Artikel3 und deren Bestandsinformationen.
Artikel 2 und 3 haben ausreichen Bestand welches ich durch meine Selektion festlege. Nun soll von diesen Artikeln aus dem Tabellenblatt "Z" folgende Zellen in "Tabellenblatt3" geschrieben werden.
Artikel2 steht in Reihe 3 von "Z"
Also soll zu diesem Artikel A3, B3,H3 und K3 in "Tabelle3" geschrieben werden.
Ich habe wieder im Forum gesucht und bin nicht fündig geworden, anscheinend zu doof vorhandene Vorschläge anzupassen.
Wenn du ein wenig Zeit hast wäre es sehr nett (muss aber nicht) wenn du kurz sagen könntest warum du einen Schritt so machst wie du ihn machst. Das würde mich sehr interessieren.
Nochmals Vielen Dank vorab!
Anzeige
AW: Selektierte Daten übernehmen
18.10.2010 14:32:36
Rudi
Hallo,
Private Sub CommandButton1_Click()
Dim i As Long, iRow, iRowZ As Integer, wksZ As Worksheet
Set wksZ = Sheets("Z")
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then  'ausgewählt?
iRowZ = Application.Match(ListBox1.List(i, 0), wksZ.Columns(1), 0) 'Zeile Artikel in Z
With Sheets("Tabelle3")
iRow = Application.Match(ListBox1.List(i, 0), .Columns(1), 0) 'Artikel in Tab3  _
vorhanden?
If IsError(iRow) Then iRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1  'Artikel nicht in  _
Tab3 vorhanden
.Cells(iRow, 1) = wksZ.Cells(iRowZ, 1)  'A
.Cells(iRow, 2) = wksZ.Cells(iRowZ, 2)  'B
.Cells(iRow, 3) = wksZ.Cells(iRowZ, 8)  'H
.Cells(iRow, 4) = wksZ.Cells(iRowZ, 11) 'K
ListBox1.Selected(i) = False  'Auswahl aufheben
End With
End If
Next
ListBox1.ListIndex = 0  'an den Anfang der LB
End Sub

Gruß
Rudi
Warum ich etwas mache, wie ich es mache?
Weil ich überzeugt bin, dass es das Beste ist oder mir gerade nichts Besseres einfällt ;-)
Anzeige
AW: Selektierte Daten übernehmen
18.10.2010 15:47:48
Svenler
Du bist ein VBA Gott ;)
Vielen Dank hat super geklappt! Alles kleinere sollte ich jetzt selber schaffen!
Wenn ich wieder ein Problem habe melde ich mich umgehend :)
Danke Forum und speziell Danke Rudi!
Grüße
Sven
PS: Warum ich etwas mache, wie ich es mache? Das war auf den Weg bezogen, ich habe versucht noch den Weg erklärt zu bekommen warum und wieso :) Aber ich sollte mal einen VBA Kurs belegen und dann klappt das auch.
ein paar Kommentare
18.10.2010 16:15:03
Rudi
Hallo,
Private Sub UserForm_Activate()
Dim arrList, rngC As Range, i As Integer
With Sheets("Z")
'Datenfeld neu dimensionieren
ReDim arrList(1 To Application.CountA(.Columns(1)), 1 To 5)
'Daten aus Z in Datenfeld (Array) einlesen, finde ich besser als .AddItem
'nur Zellen mit Konstanten in A
For Each rngC In .Columns(1).SpecialCells(xlCellTypeConstants)
i = i + 1
arrList(i, 1) = rngC
arrList(i, 2) = rngC.Offset(, 2)
arrList(i, 3) = rngC.Offset(, 4)
arrList(i, 4) = rngC.Offset(, 5)
arrList(i, 5) = rngC.Offset(, 7)
Next
End With
With ListBox1
'Listbox-Eigenschaften festlegen, könnte man auch direkt machen
.ColumnCount = 5
.MultiSelect = fmMultiSelectMulti
.ListStyle = fmListStyleOption
'Datenfeld in Listbox schreiben
.List = arrList
End With
End Sub

Gruß
Rudi
Anzeige
AW: ein paar Kommentare
18.10.2010 16:34:44
Svenler
:) Nochmal Danke

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige