Hilfe mit listview
22.09.2017 11:53:37
Philipp
Zuerst mal ein riesen Lob an alle,
ich habe mir hier schon viele Tipps von euch abgeschaut und viel gelernt, ihr seit echt eine tolle Community!
Nun habe ich ein bisschen größeres Projekt und brauche etwas Unterstützung von richtigen Excel Profis :)
Ich programmiere ein Tool mit dem User Ideen bewerten können (ja ich weiß dafür wäre Access eigentlich die erste Wahl, aber leider ist Access bei meinen Usern nicht vorhanden, also muss Excel herhalten.)
Nun eine kleine Einführung in mein Programm:
Ich habe ein Source Sheet auf der die Namen der User und die Ideen gespeichert sind. Diese kann man bei Bedarf erweitern oder editieren.
Die verschiedenen Userdaten werden (wenn noch nicht vorhanden) in neue Tabellenblätter gespeichert und die Sheets werden mit dem Namen der User versehen.
Das bedeutet das der Name der Sheets immer durch eine Variable angegeben wird.
Also durch ThisWorkbook.Worksheets(NameSheet). Der Name des NameSheets wird durch eine Combobox (NameCmb) bestimmt.
So nun zu meinen Problemen:
Zu allererst habe ich einen ListView (ListView1) bei welchem ein Eintrag farbig (grün) markiert werden soll, sobald für diesen schon gevoted wurde.
Also wenn das Item des Listview's in dem entsprechenden NameSheet schon vorhanden ist.
Ich kenne mich mit dem ListView Element nicht wirklich aus und habe mir ein bisschen was zusammen gegoogelt um das Element einzubauen.
Es tritt also ein 2. Problem auf:
Der Listview leer sich nicht sobald ich die Auswahl in der Combobox(NameCmb)
ändere und es werden immer wieder neue Spalten angelegt.
3.Problem:
Desweiteren soll der Listview bei einen Doppelklick auf den Eintrag in die Multipage("Rate") springen um eben diesen Eintrag zu voten.
Ich habe den ganzen Code von der UserForm ausgelagert und in Module gepackt, weil ich langsam die Übersicht verliere. Das besagte Modul ist "Listbox_1".
Hier der Code dazu:
Public Sub Listview_init()
Dim lngZe As Long, lngSp As Long
Dim NameSheet As String
NameSheet = IdeasForm.NameCmb
'NameSheet = "Franz,Seppl"
With IdeasForm.ListView1
.View = lvwReport
.FullRowSelect = True
'ListView Spalten anlegen
For lngSp = 1 To 6
.ColumnHeaders.Add , , ThisWorkbook.Worksheets(NameSheet).Cells(1, lngSp)
Next lngSp
'Zeilen
For lngZe = 1 To 50
.ListItems.Add , , ThisWorkbook.Worksheets(NameSheet).Cells(lngZe, 1) '1. _
_
Spalte = Item
.ListItems(lngZe).SubItems(1) = ThisWorkbook.Worksheets(NameSheet).Cells(lngZe, 2) '2. _
_
Spalte = erste SubItem
.ListItems(lngZe).SubItems(2) = ThisWorkbook.Worksheets(NameSheet).Cells(lngZe, 3) '3. _
_
Spalte = zweite SubItem
.ListItems(lngZe).SubItems(3) = ThisWorkbook.Worksheets(NameSheet).Cells(lngZe, 4)
.ListItems(lngZe).SubItems(4) = ThisWorkbook.Worksheets(NameSheet).Cells(lngZe, 5)
.ListItems(lngZe).SubItems(5) = ThisWorkbook.Worksheets(NameSheet).Cells(lngZe, 6)
Next lngZe
.ListItems.Remove (1) 'Überschriftenzeile löschen
.ListItems.Clear
End With
IdeasForm.Caption = IdeasForm.ListView1.ListItems.Count & " Zeilen"
End Sub
Falls der ganze Code unklar ist kann ich auch noch die Datei anhängen.
Ich hoffe jemand kann mir helfen!
Grüße
Philipp