Recherche sur plusieurs colonnes depuis une plage fusionnée

Hicsygrek

XLDnaute Occasionnel
Bonjour à tous,

J'ai un léger problème de code :D
En ligne 1 j'ai des plages de 3 cellules fusionnées
En ligne 2, sous chaque fusion j'ai 3 types de fonction
Ligne 3-22, j'ai des valeurs représentant leur niveau dans telle ou telle fonction.

Grace à votre aide j'avais pu, selon le nom de la personne obtenir les autres infos (list1).
Là l'idée est l'inverse, en fonction de la machine, j'veux les infos la concernant :eek:

J'ai donc modifié légèrement le code, mais celui-ci ne fait la recherche que dans la première colonne du la machine ... j'ai donc :
- le nom de la personne étant chef
- le niveau de cette personne
- et un nom de poste totalement HS.

J'ai essayé en ajoutant en cible MergeArea, mais ça ne m'avance pas plus ...

Pour ce qui est du nom de poste, j'ai rajouté une deuxième recherche se basant sur l'info de la première colonne de la listbox ... ça me donne le bon poste, mais me l'affiche qu'une fois pour l'ensemble des personnes. De plus cette façon de chercher ne me plait pas trop car elle fait planter excel si personne ne travail encore sur la machine.

Je vous joint donc un fichier exemple ... ça doit être bateau mais j'ai essayé plusieurs choses sans grand succès ...

Merci d'avance ! :)
 

Pièces jointes

  • ExRechercheColonnes.xlsm
    22.3 KB · Affichages: 61

Odesta

XLDnaute Impliqué
Re : Recherche sur plusieurs colonnes depuis une plage fusionnée

Bonjour

J'ai refondu votre code, et légerment simplifier aussi, plus qu'à tester :

VB:
Private Sub ComboBox2_Change()


Dim R As Long, Colonne_cherchee As Integer, Colonne_scannee As Integer, col As Integer
Target = ComboBox2
Set ShtS = Sheets("Feuil1")
Colonne_cherchee = ShtS.Range("B1:M1").Find(What:=Target).Column
'je recherche le numéros de la colonne correspondant à la machine

ListBox1.Clear
'ListBox1.ColumnCount = 3
'ListBox1.ColumnWidths = "90;115;10"
For R = 3 To 27
    For Colonne_scannee = 0 To 2 'pour les 3 colonnes scannées :
        col = Colonne_cherchee + Colonne_scannee
    
        If ShtS.Cells(R, col).Value <> "" Then
            'si présence d'une valeur
            'ajoute à la list box
            ListBox1.AddItem
            L = ListBox1.ListCount - 1
            ListBox1.List(L, 0) = ShtS.Cells(R, 1).Value 'nom
            ListBox1.List(L, 1) = ShtS.Cells(2, col).Value 'poste
            ListBox1.List(L, 2) = ShtS.Cells(R, col).Value 'indice
         End If
    Next

Next R
End Sub

Cordialement
Olivier
 

Hicsygrek

XLDnaute Occasionnel
Re : Recherche sur plusieurs colonnes depuis une plage fusionnée

Bonjour Odesta et merci d'avoir pris le temps de modifier mon fichier. :p
Ca correspond à ce que je voulais en effet, mais est-il possible d'avoir d'abord les Chef, suivis des Sous-Chef et enfin les Opérateurs ?
Rechercher colonne dans l'ordre 0, 1 et 2... :eek:
 

Discussions similaires

Réponses
8
Affichages
325

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 611
Messages
2 090 226
Membres
104 452
dernier inscrit
hamzamounir