Cependant quand je double clique sur une ligne de ma listview un autre userform s'affiche reprenant les informations importantes.On ne voit pas le code correspondant à cet évènement !
cependant dés que je fais une recherche les infos affichées repartent de la première ligne de ma base.
Private Sub ListView1_DblClick() ligselect = ListView1.SelectedItem.Index + 1 ' partie gère le double click sur une des lignes rapport_base_admin.Show End Sub
Private Sub CommandButton1_Click() 'Boutton Solder choixsolde.Show On Error Resume Next Rows([B2:B65500].Find(ref.Value).row).EntireRow.Delete End Sub Private Sub CommandButton2_Click() 'mise en forme et impression du rapport papier If modifier = True Then Feuil9.Range("C6") = libe.Value Feuil9.Range("c12") = ref.Value Feuil9.Range("C14") = creation.Value Feuil9.Range("C16") = DTfin.Value Feuil9.Range("E20") = Combopilote.Value Feuil9.Range("E22") = comboetatconstat.Value Feuil9.Range("E24") = origine.Value Feuil9.Range("C28") = retard.Value Feuil9.Range("B34") = reporting.Value Else Feuil9.Range("C6") = libe.Value Feuil9.Range("c12") = ref.Value Feuil9.Range("C14") = creation.Value Feuil9.Range("C16") = DTfin.Value Feuil9.Range("E20") = pilote.Value Feuil9.Range("E22") = etat.Value Feuil9.Range("E24") = origine.Value Feuil9.Range("C28") = retard.Value Feuil9.Range("B34") = reporting.Value End If Feuil9.Activate Application.Dialogs(xlDialogPrint).Show Feuil1.Activate End Sub Private Sub CommandButton3_Click() Unload Me End Sub Private Sub CommandButton4_Click() 'Boutton Supprimer Dim a As Long a = MsgBox("Etes vous sur de vouloir faire cela ?", vbYesNo) If (a = 6) Then On Error Resume Next Rows([B1:B65000].Find(ref.Value).row).EntireRow.Delete Else Unload Me End If End Sub Private Sub CommandButton5_Click() ' Boutton valier Range("C" & ligselect).Value = libe.Value Range("G" & ligselect).Value = reporting.Value Range("D" & ligselect).Value = Combopilote.Value Range("I" & ligselect).Value = comboetatconstat.Value Range("F" & ligselect).Value = DTfin.Value Range("K" & ligselect).Value = origine.Value Call IniListview Unload Me End Sub Private Sub CommandButton6_Click() UserForm1.Show End Sub Private Sub modifier_Click() With Combopilote .AddItem "" .AddItem "F****" .AddItem "R*****" .AddItem "I***" .AddItem "Br****" .AddItem "Ch*****" .AddItem "Ha***" .AddItem "M***" .AddItem "A***" .AddItem "L'***" End With With comboetatconstat .AddItem "" .AddItem "SOLDE" .AddItem "ACCEPTE" .AddItem "CREE" .AddItem "TERMINE" .AddItem "AFFECTE" .AddItem "REDIGE" End With 'Activation des contrôle de modification origine.Enabled = True etat.Visible = False Combopilote.Visible = True comboetatconstat.Visible = True libe.Enabled = True reporting.Enabled = True modifier.Visible = False pilote.Visible = False Combopilote.Value = pilote.Value comboetatconstat.Value = etat.Value End Sub Private Sub UserForm_Initialize() Dim re As Long Id.Value = Range("A" & ligselect).Value ref.Value = Range("B" & ligselect).Value libe.Value = Range("C" & ligselect).Value pilote.Value = Range("D" & ligselect).Value creation.Value = Range("E" & ligselect).Value DTfin.Value = Range("F" & ligselect).Value origine.Value = Range("K" & ligselect).Value etat.Value = Range("I" & ligselect).Value reporting.Value = Range("G" & ligselect).Value re = DateDiff("d", Date, Range("F" & ligselect).Value) If re < 0 Then retard.BackColor = vbRed retard.Value = re Else retard.BackColor = vbGreen retard.Value = re End If Combopilote.Visible = False comboetatconstat.Visible = False End Sub Sub IniListview() 'Permet la mise à jour de la base dés la modification Dim i As Long Sheets("BASE").AutoFilterMode = False Recherche_Base_Admin.ListView1.ListItems.Clear With Recherche_Base_Admin.ListView1.ColumnHeaders .Add , , "Référence", 80 .Add , , "Libéllé", 250 .Add , , "Pilote", 100 .Add , , "Date de création", 70 .Add , , "Date de D'échéance", 70 .Add , , "Reporting", 150 .Add , , "Date de solde", 70 .Add , , "Etat", 60 .Add , , "Type d'action", 50 .Add , , "Origine du constat", 85 .Add , , "Commenditaire", 55 .Add , , , 0 End With Recherche_Base_Admin.ListView1.View = lvwReport Recherche_Base_Admin.ListView1.FullRowSelect = True Recherche_Base_Admin.ListView1.Gridlines = True For i = 2 To Sheets("BASE").Range("B65536").End(xlUp).row Recherche_Base_Admin.ListView1.ListItems.Add , "BASE!B" & i, Sheets("BASE").Cells(i, 2) Recherche_Base_Admin.ListView1.ListItems(Recherche_Base_Admin.ListView1.ListItems.Count).ListSubItems.Add , "BASE!C" & i, Sheets("BASE").Cells(i, 3) Recherche_Base_Admin.ListView1.ListItems(Recherche_Base_Admin.ListView1.ListItems.Count).ListSubItems.Add , "BASE!D" & i, Sheets("BASE").Cells(i, 4) Recherche_Base_Admin.ListView1.ListItems(Recherche_Base_Admin.ListView1.ListItems.Count).ListSubItems.Add , "BASE!E" & i, Sheets("BASE").Cells(i, 5) Recherche_Base_Admin.ListView1.ListItems(Recherche_Base_Admin.ListView1.ListItems.Count).ListSubItems.Add , "BASE!F" & i, Sheets("BASE").Cells(i, 6) Recherche_Base_Admin.ListView1.ListItems(Recherche_Base_Admin.ListView1.ListItems.Count).ListSubItems.Add , "BASE!G" & i, Sheets("BASE").Cells(i, 7) Recherche_Base_Admin.ListView1.ListItems(Recherche_Base_Admin.ListView1.ListItems.Count).ListSubItems.Add , "BASE!H" & i, Sheets("BASE").Cells(i, 8) Recherche_Base_Admin.ListView1.ListItems(Recherche_Base_Admin.ListView1.ListItems.Count).ListSubItems.Add , "BASE!I" & i, Sheets("BASE").Cells(i, 9) Recherche_Base_Admin.ListView1.ListItems(Recherche_Base_Admin.ListView1.ListItems.Count).ListSubItems.Add , "BASE!J" & i, Sheets("BASE").Cells(i, 10) Recherche_Base_Admin.ListView1.ListItems(Recherche_Base_Admin.ListView1.ListItems.Count).ListSubItems.Add , "BASE!K" & i, Sheets("BASE").Cells(i, 11) Recherche_Base_Admin.ListView1.ListItems(Recherche_Base_Admin.ListView1.ListItems.Count).ListSubItems.Add , "BASE!L" & i, Sheets("BASE").Cells(i, 12) Recherche_Base_Admin.ListView1.ListItems(Recherche_Base_Admin.ListView1.ListItems.Count).ListSubItems.Add , "BASE!M" & i, Sheets("BASE").Cells(i, 13) ' .ListItems(.ListItems.Count).ListSubItems.Add , "BASE!D" & L, i Next Recherche_Base_Admin.ListView1.ListItems(1).Selected = False Set Recherche_Base_Admin.ListView1.SelectedItem = Nothing End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionLa variable ligselect est déclarée dans un module standard comme long.
affecter le "cel.row" qui me renvoi le bon numéro de ligne à la valeur de l'item sur lequel je double clique dans ma listview
Set cel = .Find(What:=Recherche, LookIn:=xlValues, lookat:=xlPart)
.ListItems(.ListItems.Count).ListSubItems.Add , , cel.row
.ListItems(.ListItems.Count)=cel.row
Private Sub UserForm_Initialize() Randomize ListView1.ColumnHeaders.Add , , "Nom", ListView1.Width / 3 ListView1.ColumnHeaders.Add , , "prénom ID", ListView1.Width / 3, lvwColumnCenter ListView1.ColumnHeaders.Add , , "date de naissance", ListView1.Width / 3 ListView1.ColumnHeaders.Add , , "", 0 Dim itmX As ListItem For i = 1 To 10 Set itmX = ListView1.ListItems.Add(, , Int((9 * Rnd) + 1)) itmX.SubItems(1) = "a" & Int((9 * Rnd) + 1) If i Mod 2 = 0 Then itmX.SubItems(2) = "17/02/2000" itmX.SubItems(3) = "20000117" Else itmX.SubItems(2) = "20/03/2002" itmX.SubItems(3) = "20020320" End If Next End Sub Private Sub ListView1_ItemClick(ByVal Item As ComctlLib.ListItem) toto = ListView1.ListItems(Item.Index).Index 'je sais ... ce n'est pas évident ... MsgBox "tu viens de sélectionner la ligne N° " & toto & " qui dit" & vbCrLf & _ "en sa première colonne " & ListView1.ListItems(toto).Text & vbCrLf & _ "en sa 3ème colonne (celle que l'on a cachée) " & ListView1.ListItems(toto).SubItems(3) End Sub
Je ne vois pas comment le programme fait le lien entre les lignes d'une base et les items d'un listview!
itmX.SubItems(3) = "20000117"
toto = ListView1.ListItems(Item.Index).Index