Affichage uniquement des cellules non vides aprés une recherche

Geely

XLDnaute Occasionnel
Bonjour le Forum

Dans l'exemple joint, j'effectue une recherche d'une identité et affiche cette recherche dans une fenêtre avec les résultats. seulement je souhaite uniquement afficher les résultats des cellules où il y en a un, pas les cellules vides.

Par exemple si je recherche "pierre" il faut afficher
date et identité (la pas de problème) puis sous résultat 1: CEPHM: 99
et sousrésultat 2 : D-DDI= 0,27

J'ai besoin d'afficher cinq résultats maximum, mais il peuvent se trouver jusqu'en colonne BB.

Geely
 

Pièces jointes

  • Geely_1.xlsm
    35.3 KB · Affichages: 54
  • Geely_1.xlsm
    35.3 KB · Affichages: 62
  • Geely_1.xlsm
    35.3 KB · Affichages: 64

Geely

XLDnaute Occasionnel
Re : Affichage uniquement des cellules non vides aprés une recherche

Oui un peu,
Des qu'il y a un chiffre dans la ligne que l'on a rechercher il faut afficher ce chiffre + la cellule ligne 1 de la colonne ou se trouve ce chiffre.
 

job75

XLDnaute Barbatruc
Re : Affichage uniquement des cellules non vides aprés une recherche

Bonjour Geely, st007,

Code:
Private Sub CommandButton1_click() 'bouton Lancer la recherche
Dim t$, lig&, i&, j As Byte, col As Byte
With ListBox1
  .Clear
  t = "*" & LCase(TextBox1) & "*"
  For lig = 2 To Cells(Rows.Count, 5).End(xlUp).Row
    If LCase(Cells(lig, 5)) Like t Then
      .AddItem
      .List(i, 0) = Cells(lig, 6) 'date
      .List(i, 1) = Cells(lig, 5) 'identité
      j = 2
      For col = 10 To 54 'colonne BB
        If Cells(lig, col) <> "" Then
          .List(i, j) = Cells(lig, col)
          j = j + 1
          If j = 7 Then Exit For '5 valeurs maximum
        End If
      Next
      .List(i, 7) = lig
      i = i + 1
    End If
  Next
End With
End Sub
Nota : revoir les dimensions et les positions des TextBoxes faisant office d'en-têtes de colonnes...

A+
 

job75

XLDnaute Barbatruc
Re : Affichage uniquement des cellules non vides aprés une recherche

Re,

Ah oui vous voulez joindre les textes de la ligne de titre :

Code:
Private Sub CommandButton1_click() 'bouton Lancer la recherche
 Dim t$, lig&, i&, j As Byte, col As Byte
 With ListBox1
   .Clear
   t = "*" & LCase(TextBox1) & "*"
   For lig = 2 To Cells(Rows.Count, 5).End(xlUp).Row
     If LCase(Cells(lig, 5)) Like t Then
       .AddItem
       .List(i, 0) = Cells(lig, 6) 'date
       .List(i, 1) = Cells(lig, 5) 'identité
       j = 2
       For col = 10 To 54 'colonne BB
         If Cells(lig, col) <> "" Then
           .List(i, j) = Cells(1, col) & " = " & Cells(lig, col)
           j = j + 1
           If j = 7 Then Exit For '5 valeurs maximum
         End If
       Next
       .List(i, 7) = lig
       i = i + 1
     End If
   Next
 End With
 End Sub
Mais je n'en vois guère l'intérêt...

A+
 

Statistiques des forums

Discussions
312 364
Messages
2 087 624
Membres
103 624
dernier inscrit
PhilduMorvan