XL 2016 Recherche de Mot dans une colonne et afficher les resultats en N° Ligne devant la zone de saisie de Mot

kenny05

XLDnaute Nouveau
Bonjour.
S'il vous plait besoin d'aide.
Je ne suis q'un débutant en Vba/Excel.
Je cherche un programme qui me permet de chercher un mot dans une colonne A de liste de mot et afficher les résultats en N° de ligne. Juste devant la Zone de texte à remplir. pour actionner la recherche on appuis sur un bouton de commande sur la même feuil excel. ( voir Image ci-dessous)
Je vous remercie d'avance...
 

Pièces jointes

  • Aide Recherche de mot.JPG
    Aide Recherche de mot.JPG
    27.4 KB · Affichages: 13

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour et bienvenue sur le forum,

Joignez plutôt un fichier excel anonymisé et sans données confidentielles, assumant le strict minimum pour trouver une solution à votre problème.
Travailler sur une image, n'est pas du plus aisé.
Bon dimanche
 

kenny05

XLDnaute Nouveau
Bonjour.
S'il vous plait besoin d'aide.
Je ne suis q'un débutant en Vba/Excel.
Je cherche un programme qui me permet de chercher un mot dans une colonne A de liste de mot et afficher les résultats en N° de ligne. Juste devant la Zone de texte à remplir. pour actionner la recherche on appuis sur un bouton de commande sur la même feuil excel. ( voir Image ci-dessous)
Je vous remercie d'avance...
 

Pièces jointes

  • Exemple.xls
    60 KB · Affichages: 13

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Puisque vous avez excel 2016 si vous enregistrer vos classeurs au format .xlsx ou .xlsm vous gagneriez en possibilité nouvelles.

Dans le fichier joint (.xlsx), 2 solutions par formules matricielles la première à valider (CTRL + MAJ + ENTREE) sur 8 cellules : =SIERREUR(PETITE.VALEUR(SI(A$3:$A$35=$E$5;LIGNE(A$3:$A$35));{1.2.3.4.5.6.7.8});"-")
La seconde à saisir dans la première cellule puis à valider de la même façon et à tirer ensuite sur la droite, aussi loin qu'on veut:
=SIERREUR(PETITE.VALEUR(SI(A$3:$A$35=$E$5;LIGNE(A$3:$A$35));COLONNE(A1));"-")

Cordialement
 

Pièces jointes

  • Exemple.xlsx
    14.8 KB · Affichages: 11

kenny05

XLDnaute Nouveau
Re,

Puisque vous avez excel 2016 si vous enregistrer vos classeurs au format .xlsx ou .xlsm vous gagneriez en possibilité nouvelles.

Dans le fichier joint (.xlsx), 2 solutions par formules matricielles la première à valider (CTRL + MAJ + ENTREE) sur 8 cellules : =SIERREUR(PETITE.VALEUR(SI(A$3:$A$35=$E$5;LIGNE(A$3:$A$35));{1.2.3.4.5.6.7.8});"-")
La seconde à saisir dans la première cellule puis à valider de la même façon et à tirer ensuite sur la droite, aussi loin qu'on veut:
=SIERREUR(PETITE.VALEUR(SI(A$3:$A$35=$E$5;LIGNE(A$3:$A$35));COLONNE(A1));"-")

Cordialement
Merci pour ta réponse mais je voulais un sript Vba cela me sera très utile comme indiqué dans l'interface du la feuil excel.
Solution SVP.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Solution SVP n'est pas une phrase!

Code du bouton avec la valeur à chercher en E5:
VB:
Private Sub CommandButton1_Click()

Dim valeurs As Variant, lignes() As Variant
Dim valeurAChercher As String
Dim i As Integer, j As Integer
valeuracherche = Range("E5").Value
If valeurAChercher = "" Then
    MsgBox "Exécution interrompue: aucun mot à chercher dans la cellule E5!", vbExclamation, "Rechercher mot"
    Exit Sub
End If
valeurs = Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row).Value
For i = 1 To UBound(valeurs)
    If valeurs(i, 1) = ValeurAChercher Then
        j = j + 1
        ReDim Preserve lignes(1 To j)
        lignes(j) = i + 2
    End If
Next i
If j > 0 Then Range("G5").Resize(, j) = lignes
End Sub

[Edit] et en prime une fonction en G7 (à tirer vers la droite) pour les versions >= 2010
=SIERREUR(AGREGAT(15;7;LIGNE($A$3:$A$35)/ ($A$3:$A$35=$E$5);COLONNE(A1));"-")
 
Dernière édition:

kenny05

XLDnaute Nouveau
Re,

Solution SVP n'est pas une phrase!

Code du bouton avec la valeur à chercher en E5:
VB:
Private Sub CommandButton1_Click()

Dim valeurs As Variant, lignes() As Variant
Dim valeurAChercher As String
Dim i As Integer, j As Integer
valeuracherche = Range("E5").Value
If valeurAChercher = "" Then
    MsgBox "Exécution interrompue: aucun mot à chercher dans la cellule E5!", vbExclamation, "Rechercher mot"
    Exit Sub
End If
valeurs = Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row).Value
For i = 1 To UBound(valeurs)
    If valeurs(i, 1) = ValeurAChercher Then
        j = j + 1
        ReDim Preserve lignes(1 To j)
        lignes(j) = i + 2
    End If
Next i
If j > 0 Then Range("G5").Resize(, j) = lignes
End Sub

[Edit] et en prime une fonction en G7 (à tirer vers la droite) pour les versions >= 2010
=SIERREUR(AGREGAT(15;7;LIGNE($A$3:$A$35)/ ($A$3:$A$35=$E$5);COLONNE(A1));"-")
Bonsoir, mais les valeurs dans la zone de résultat ne se réinitialise pas. Après d'autre lancée de recherche, les valeurs de l'ancienne recherche reste dans les cellules non utilisées par la nouvelle recherche .
S'il vous plait il ne reste que cette partie..
je suis à l'écoute... merci beaucoup.
 

Discussions similaires

Statistiques des forums

Discussions
312 090
Messages
2 085 210
Membres
102 820
dernier inscrit
SIEG68