Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion maval
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

maval

XLDnaute Barbatruc
Bonjour,

J'ai sur formulaire une Listview lorsque je sélectionne un item j'aimerai que la ligne se trouve en troisième position sur ma feuille j'ai mis comme code ceci:

Code:
  Set C = [B:B].Find(TextBox2, , , 1)
   Application.GoTo Cells(C.Row, 1), 1

et je me retrouve toujours décaler.

je vous remercie de votre aide
 
Re : Listview

Bonjour,

Pas sûr d'avoir compris :
3 lignes plus basse que la recherche
Code:
 Set C = [B:B].Find(TextBox2, , , 1)
   Application.GoTo Cells(C.Row + 3, 1), 1
Ou pour la ligne 3
Code:
 Set C = [B:B].Find(TextBox2, , , 1)
   Application.GoTo Cells(3, 1), 1



Jecherche
 
Dernière modification par un modérateur:
Re : Listview

Re,

Je n'ai aucun message d'erreur?

Juste qui sélectionne pas les bonne lignes

Code:
Private Sub userform_initialize()

    Me.CommandButton1.Enabled = False
    Me.CommandButton2.Enabled = False
    Me.CommandButton3.Enabled = False
    Me.Frame2.Visible = False
    Me.Label12.Visible = False
 With ListView1
  With .ColumnHeaders
      .Clear
      '.Add , , "Col", 20
      .Add , , "N°", 20
      .Add , , "Titre du Film", 120
      .Add , , "Titre en français", 120
      .Add , , "Date de Sortie", 60
      .Add , , "Acteurs", 190
      .Add , , "Genre", 50
      .Add , , "Nationalité", 70
      .Add , , "Année", 40
      .Add , , "Durée", 60
      .Add , , "Critique Presse", 60
      .Add , , "Critique Public", 60
      .Add , , "Réalisateur", 80

    End With
    .FullRowSelect = True 'Permet le sélection de toute la ligne
    .MultiSelect = True
    .View = lvwReport 'Affichage en mode Rapport

  End With
  ListView1.Gridlines = True 'Affichage d'un quadrillage
  
  appel
fin:
'Nombre de lignes
Lbl_Info.Caption = "Résultat du Filtre   :   " & ListView1.ListItems.Count - 1 & "    Film(s) enregistré" & IIf(ListView1.ListItems.Count = 1, "", "s.")
'Stop

End Sub

Sub appel()
With ListView1
 Sheets("Données").Activate
 For i = 2 To Range("C65536").End(xlUp).Row
        
           .ListItems.Add , , Cells(i, 1)
               For k = 2 To 12 ' Nombre Item dans la Listview
                 .ListItems(.ListItems.Count).ListSubItems.Add , , Cells(i, k), , lvwColumnCenter
               Next
         '.ListItems(.ListItems.Count).ListSubItems.Add , , i, , lvwColumnCenter
        Next
       
End With
fin:
End Sub

Private Sub listview1_Click()
Dim Nl2 As Long


  ' Recherche du film et positionnement sur la ligne dans la feuille
  Set c = [B:B].Find(TextBox2, , , 1)
   Application.GoTo Cells(c.Row, 1), 1

'With Worksheets("Données")
If OptionButton2 Then
 Me.Frame2.Visible = True
        Me.CommandButton3.Enabled = False
        Me.CommandButton2.Enabled = True
        Me.CommandButton1.Enabled = False
        Me.Frame4.Visible = True    'False
        Me.ListView1.MultiSelect = False
    End If

If OptionButton3 Then
 Me.Frame2.Visible = True
        Me.CommandButton3.Enabled = False
        Me.CommandButton2.Enabled = False
        Me.CommandButton1.Enabled = True
        Me.Frame4.Visible = True    'False
        Me.ListView1.MultiSelect = False
    End If
Dim i As Integer
flag = 1
With ListView1
'Stop
    ligne = .SelectedItem.Index + 1
    TextBox1 = .SelectedItem
    TextBox2 = .SelectedItem.ListSubItems(1)
    TextBox3 = .SelectedItem.ListSubItems(2)
    TextBox4 = .SelectedItem.ListSubItems(3)
    TextBox5 = .SelectedItem.ListSubItems(4)
    TextBox6 = .SelectedItem.ListSubItems(5)
    TextBox7 = .SelectedItem.ListSubItems(6)
    TextBox8 = .SelectedItem.ListSubItems(7)
    TextBox9 = .SelectedItem.ListSubItems(8)
    TextBox10 = .SelectedItem.ListSubItems(9)
    TextBox11 = .SelectedItem.ListSubItems(10)
    
TextBox12.Value = TextBox2.Text
TextBox13.Value = TextBox6.Text
TextBox14.Value = TextBox4.Text
TextBox15.Value = TextBox5.Text

' Insertion de l'affiche du film
    
    On Error GoTo Erreur 'si erreur aller à fin

    Image = TextBox2.Value
    Image1.Picture = LoadPicture("J:\Covers\" & Image & ".jpg")

Exit Sub ' ici on sort si pas d'erreur

Erreur: 'ici c'est l'image par défaut qui s'affiche en cas d'erreur
Image1.Picture = LoadPicture("J:\Covers\WarnerBross.jpg")
Err.Clear ' Efface les champs d'erreur
   
 End With
   Set c = [B:B].Find(TextBox2, , , 1)
    Application.GoTo Cells(1, 3), 1

flag = 0
End Sub

@+
 
Dernière édition:
Re : Listview

Bonjour,

Pour comprendre, j'ai dû me taper la création du userform en question 🙁
Si j'ai bien compris la problématique ... à tester ...
Code:
Private Sub userform_initialize()

    Me.CommandButton1.Enabled = False
    Me.CommandButton2.Enabled = False
    Me.CommandButton3.Enabled = False
    Me.Frame2.Visible = False
    Me.Label12.Visible = False
 With ListView1
  With .ColumnHeaders
      .Clear
      '.Add , , "Col", 20
      .Add , , "N°", 20
      .Add , , "Titre du Film", 120
      .Add , , "Titre en français", 120
      .Add , , "Date de Sortie", 60
      .Add , , "Acteurs", 190
      .Add , , "Genre", 50
      .Add , , "Nationalité", 70
      .Add , , "Année", 40
      .Add , , "Durée", 60
      .Add , , "Critique Presse", 60
      .Add , , "Critique Public", 60
      .Add , , "Réalisateur", 80

    End With
    .FullRowSelect = True 'Permet le sélection de toute la ligne
    .MultiSelect = True
    .View = lvwReport 'Affichage en mode Rapport

  End With
  ListView1.Gridlines = True 'Affichage d'un quadrillage
 
  appel
fin:
'Nombre de lignes
Lbl_Info.Caption = "Résultat du Filtre   :   " & ListView1.ListItems.Count - 1 & "    Film(s) enregistré" & IIf(ListView1.ListItems.Count = 1, "", "s.")
'Stop
Set c = Worksheets("Données").Range("B:B").Find(TextBox2, , , 1)
    Application.GoTo Worksheets("Données").Cells(1, 3) ', 1
End Sub

Sub appel()
With ListView1
 Sheets("Données").Activate
 For i = 2 To Range("C65536").End(xlUp).Row
       
           .ListItems.Add , , Cells(i, 1)
               For k = 2 To 12 ' Nombre Item dans la Listview
                 .ListItems(.ListItems.Count).ListSubItems.Add , , Cells(i, k), , lvwColumnCenter
               Next
         '.ListItems(.ListItems.Count).ListSubItems.Add , , i, , lvwColumnCenter
        Next
       
End With
fin:
End Sub

Private Sub listview1_Click()
Dim Nl2 As Long

With ListView1
'Stop
    ligne = .SelectedItem.Index '+ 1
    TextBox1 = .SelectedItem
    TextBox2 = .SelectedItem.ListSubItems(1)
    TextBox3 = .SelectedItem.ListSubItems(2)
    TextBox4 = .SelectedItem.ListSubItems(3)
    TextBox5 = .SelectedItem.ListSubItems(4)
    TextBox6 = .SelectedItem.ListSubItems(5)
    TextBox7 = .SelectedItem.ListSubItems(6)
    TextBox8 = .SelectedItem.ListSubItems(7)
    TextBox9 = .SelectedItem.ListSubItems(8)
    TextBox10 = .SelectedItem.ListSubItems(9)
    TextBox11 = .SelectedItem.ListSubItems(10)
   
TextBox12.Value = TextBox2.Text
TextBox13.Value = TextBox6.Text
TextBox14.Value = TextBox4.Text
TextBox15.Value = TextBox5.Text

   On Error GoTo Erreur 'si erreur aller à fin

    Image = TextBox2.Value
    Image1.Picture = LoadPicture("J:\Covers\" & Image & ".jpg")
  
   ' Recherche du film et positionnement sur la ligne dans la feuille
 Set c = [B:B].Find(TextBox2, , , 1)
   Application.GoTo Cells(c.Row, 1), 1

Exit Sub ' ici on sort si pas d'erreur

Erreur: 'ici c'est l'image par défaut qui s'affiche en cas d'erreur
''Image1.Picture = LoadPicture("J:\Covers\WarnerBross.jpg")
'Err.Clear ' Efface les champs d'erreur
   
 End With
 
If OptionButton2 Then
 Me.Frame2.Visible = True
        Me.CommandButton3.Enabled = False
        Me.CommandButton2.Enabled = True
        Me.CommandButton1.Enabled = False
        Me.Frame4.Visible = True    'False
        Me.ListView1.MultiSelect = False
    End If

If OptionButton3 Then
 Me.Frame2.Visible = True
        Me.CommandButton3.Enabled = False
        Me.CommandButton2.Enabled = False
        Me.CommandButton1.Enabled = True
        Me.Frame4.Visible = True    'False
        Me.ListView1.MultiSelect = False
    End If
Dim i As Integer
flag = 1
flag = 0
End Sub


Jecherche
 
Re : Listview

bonjour maval,je cherche
pas facile sans fichier
tu peux charger la listview et employer la propriété key
exemple
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
1 K
Réponses
4
Affichages
1 K
Réponses
28
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…