probleme de listview

  • Initiateur de la discussion Initiateur de la discussion jeannot68
  • 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 !

jeannot68

XLDnaute Occasionnel
Re bonjour

Apres recherche je n'aie pas trouvé qui s'adapte a ma situation

1/
Les éléments recherchée appartenant a mes onglet IO... PROVOX ne s affichent pas dans ma listview2. ou est l'erreur??

2/
est il possible de déplacer les colonne dans les listviews 1 et 2 ? dans mon exemple je souhaiterai mettre la colonne Module en premier car il sagit de la valmeur de ma combobox de plus peux t on mettre les élément de la 1 ere colonne en gras?

3/
Est il possible de faire apparaitre en colonne 2 le nom de la feuille ou se trouve la reference cherchée??( exemple IO DELTA V GLUCOSE)

Merci d avance
 

Pièces jointes

Re : probleme de listview

Bonsoir jeannot,

Pour 1 :

Compteur2 est toujours = 0 car tu charges le combobox1 avec les éléments de la colonne D des feuilles "...PROVOX" et tu boucles sur les éléments de la colonne B des autres feuilles. Dans les colonnes B tu ne retrouves jamais les éléments de la colonne D des feuilles "...PROVOX". Donc ceci n'est jamais vrai:
Code:
  If Cel.Value = ComboBox1.Value Then
      If Left(Ws.Name, 8) = "IO DELTA" Then Compte1 = Compte1 + 1
      If Right(Ws.Name, 6) = "PROVOX" Then Compte2 = Compte2 + 1
  .../...
  .../...
 If Compte2 > 0 Then
  ReDim Tbl2(1 To Compte2, 1 To 6)
  
      For Each Ws In Worksheets
Si j'ai bien compris ton code 🙂

Pour 2 :

Le module est en 1ère colonne, par contre il s'affiche en bleu. Pour la mise en gras, ça je n'ai pas trouvé comment faire.

Pour le 3 :

Le nom de la feuille est en colonne 2 dans les listviews

A+
 

Pièces jointes

Dernière édition:
Re : probleme de listview

Re,

N'ayant pas toutes les données, je te propose cette modif:
Code:
Private Sub CommandButton1_Click()

Dim Ws As Worksheet, Cel As Range
Dim L1 As Long, L2 As Long

 If ComboBox1.Value = "" Then Call MsgBox("Vous devez sélectionner une valeur", vbCritical, Application.Name)

 If ComboBox1.ListIndex = -1 Then Exit Sub
   
Compte1 = 0: Compte2 = 0

    For Each Ws In Worksheets
        If Left(Ws.Name, 2) = "IO" Then
            With Ws
                For Each Cel In .Range("B2:B" & .Range("B65536").End(xlUp).Row)
                    If Cel.Value = ComboBox1.Value Or Cel.Offset(0, 2) = ComboBox1.Value Then
                      If Left(Ws.Name, 8) = "IO DELTA" Then Compte1 = Compte1 + 1
                      If Right(Ws.Name, 6) = "PROVOX" Then Compte2 = Compte2 + 1
                    End If
                Next Cel
            End With
        End If
    Next Ws
  
   
  If Compte1 > 0 Then
  ReDim Tbl1(1 To Compte1, 1 To 9)
        For Each Ws In Worksheets
        If Left(Ws.Name, 8) = "IO DELTA" Then
            With Ws
                For Each Cel In .Range("B2:B" & .Range("B65536").End(xlUp).Row)
                    If Cel = ComboBox1.Value Then
                      L1 = L1 + 1
                      Tbl1(L1, 1) = Cel
                      Tbl1(L1, 2) = Ws.Name
                      Tbl1(L1, 3) = Cel.Offset(0, -1)
                      Tbl1(L1, 4) = Cel.Offset(0, 1)
                      Tbl1(L1, 5) = Cel.Offset(0, 2)
                      Tbl1(L1, 6) = Cel.Offset(0, 3)
                      Tbl1(L1, 7) = Cel.Offset(0, 4)
                      Tbl1(L1, 8) = Cel.Offset(0, 5)
                      Tbl1(L1, 9) = Cel.Offset(0, 6)
                    End If
                Next Cel
            End With
        End If
    Next Ws
End If
  
 If Compte2 > 0 Then
  ReDim Tbl2(1 To Compte2, 1 To 6)
  
      For Each Ws In Worksheets
        If Right(Ws.Name, 6) = "PROVOX" Then
            With Ws
                For Each Cel In .Range("D2:D" & .Range("D65536").End(xlUp).Row)
                    If Cel = ComboBox1.Value Then
                      L2 = L2 + 1
                      Tbl2(L2, 1) = Cel
                      Tbl2(L2, 2) = Ws.Name
                      Tbl2(L2, 3) = Cel.Offset(0, -3)
                      Tbl2(L2, 4) = Cel.Offset(0, -2)
                      Tbl2(L2, 5) = Cel.Offset(0, -1)
                      Tbl2(L2, 6) = Cel.Offset(0, 1)
                    End If
                Next Cel
            End With
        End If
    Next Ws
    
    End If
    
ComboBox1.ListIndex = -1

UsfListview.Show

End Sub

A+
 
Dernière édition:
Re : probleme de listview

Bonsoir,
Bonsoir Pierre Olivier 🙂
Juste pour la mise en gras de la première colonne, dans la boucle d'initialisation de la listview
Code:
Private Sub IniListview1()
Dim L As Long, C As Byte

  With ListView1
       .ListItems.Clear
        'Remplissage de la 1ere colonne
      For L = 1 To UBound(Tbl1, 1)
      x = x + 1
       .ListItems.Add , , Tbl1(L, 1)
       [COLOR="Blue"].ListItems(.ListItems.Count).Bold = True[/COLOR]
'...
A+
kjin
 
Re : probleme de listview

un grand merci pour votre aide précieuse.
je demande juste encore une derniere petite question au sujet de ces listview.

En effet dans ma listeview 2 il y a les 2 dernieres colonne (IO et MCC) qui doivent se remplir en fonction de certaines valeurs. Il faut rechercher dans l'onglet correspondant à la valeur de la colonne 3 (Device TAG) puis en fonction du premier chiffre de la colonne 4 (FCC) reporter les valeur du tableau IO et MCC dans la listview.

Un exemple est plus parlant:si je lance une recherche pour le moduleFST2530-FCT dans ma combobox, s'affiche dans ma listview2 8 résultats.
Pour completer les colonnes IO et MCC on devait avant se reporter a l'onglet correspondant a la valeur de la colonne Device TAG (dans notre exemple UOC307) puis voir les premiers chiffres de la colonne FCC( ici 05). donc si je me report a longlet UOC307 et que je regarde la premiere colonne je recherche le numéro 5 ce qui me permet de savoir que pour le module FST2530-FCT l'IO est de 905 et MCC est Chaufferie.

Il arrive que les premiers chiffres de la colonne FCC de ma listview n'apparaisse pas dans le tableau de l'onglet UOC. exemple pour le module FST940X-5 les premiers chiffres sont 10 or si l'on regarde dans l'onglet UOC303 la liste s'arrete a 4 donc pas de IO ni de MCC

J'espere avoir été assez clair n'hésitez pas a me faire préciser si jamais
encore merci
 

Pièces jointes

Re : probleme de listview

un grand merci pour ton aide concernant les listviews. c'est vraiment ce que je souhaitais.

Si tu es pas trop blasé par mes questions j'en ai encore quelques une;

Comment puis je faire pour que le curseur soit dans ma combobox a l'ouverture du fichier?
Coment faire pour lancer la recherche par la touche entrée?
et en fin comment faire apparaitre une liste de résultat en fonction de la premiere lettre tapée. si je tape F je souhaiterai qu'une liste s'affiche automatiquement l'ensemble des possibilités qui commence par F comme une recherche sur google??

Merci beaucoup
 
Re : probleme de listview

Kjin

Avec tout ce que je lui demande il a le droit de boire un coup😛. Il m'enverra la note

je te remercie pour tes réponses. j'en ai encore quelques une 😉 si jamais..


voici mon soucis: un logiciel regroupe l'ensemble des machines d'une usine. Elle sort a la fin un rapport (fichier FHX). Pour pouvoir correctement utiliser ce rapport une macro complémentaire a été crée afin de trier, classer et mettre en place ces données sous excel. Apres avoir le tableau mis e n forme il faut encore le copier et le coller dans l'onglet correspondant.

Dans l'onglet IMPORTATION Je souhaiterai pouvoir alleger la procedure en selectionnant directement le nom de l'onglet qui s'affiche dans une combox et associer un bouton IMPORTER qui lance la macro complémentaire et qui enregistre directement le tableau dans l'onglet correspondant a la combobox

La macro complémentaire fonctionne pour les onglet IO DELTA
Exemple dans l onglet "Importation", je choisi IO DELTA V GLUCOSE et je souhaiterai en cliquant sur mon bouton importer que le résultat de la macro s'affiche directement dans l'onglet correspondant ici IO DELAT V GLUCOSE

Ci joint la macro complémentaire et mon fichier
 

Pièces jointes

Re : probleme de listview

bonjour Jeannot,Kjin,Bqtr
pour l'apéro,à votre santé(Hauts Planelles,Minervois La Livinière,je le recommande)
si possible met un fichier fhx
pour la combobox dans fenêtre propriété tu mets MatchEntry=0 -fmMatchEntryFirstLetter
à bientôt
 
Re : probleme de listview

salut a tous

Apparament dans les proprietés j ai bien ce que tu m'a recommandé mais ca n'affiche pas de propositions avec la premiere lettre tapée.

Et je souhaiterai mettre un message d'erreur si la valeur tapé ne correpond a aucune valeur de la base

En ce qui concerne mon fichier FHX, apres compression il fait encore 15Mo. comment puis je te le faire passser??

A bientot
 
- 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
20
Affichages
4 K
Retour