Recherche via un Userform

recoverybis

XLDnaute Nouveau
Bonjour à tous,

En parcourant le site de Monsieur BOISGONTIER je viens de trouver un petit programme qui correspondrait à mes attentes à condition d y apporter quelques modifications. Aussi afin d’éviter de vous solliciter j’ai bien essayé de le modifier moi-même malheureusement le code et bien trop complexe et mes connaissances en VBA trop limitées et après plusieurs jours à me gripper les méninges j’ai jeté l’éponge. C’est pourquoi pour la énième fois je reviens vers vous.

Alors voilà via un USERFORM on lance une recherche on tape donc son le mot clef par exemple : Options le programme scanne toutes les feuilles ou apparaît le mot pré cité et dépose le résultat de la recherche dans la feuille nommée « TEMP » sous cette forme le mot clef suivi du nom de la feuille ainsi que son numéro de cellule ça donne cela Options Feuil1 SBS 29

Pour ma part, je souhaiterais scanner simplement la première feuille nommée BD et que soit copié dans la feuille de destination le mot clef mais aussi toutes la ligne sur lequel il se trouve

Merci à tous ceux qui pourront consacrer un peu de leur temps afin de m’aide

je joins le fichier

Cordialement
 

Pièces jointes

  • ClasseurFind.xlsm
    33.8 KB · Affichages: 45

recoverybis

XLDnaute Nouveau
Bonjour recoverbys :), le Forum :)

Regarde si le classeur joint correspond à ta demande. Double-clique sur la feuille Temp pour afficher le formulaire.
Tout d'abord, je tiens à vous remercier de consacrer un peu de votre temps pour m'aider. S'agissant du fichier le cadre correspond bien à mes attentes je lance la recherche via un Userfom le code cible uniquement la feuille BD une fois le mot clef trouvé ce dernier est copié ainsi que toute la ligne dans lequel il se trouve vers la feuille de destination nommée Temp. Petite précision ma base de données source contient 22 colonnes : nom prénom etc..2 etc..3 etc...22 c'est pour cela que je souhaiterais copier l'intégralité de la ligne.

Cordialement
 

cp4

XLDnaute Barbatruc
Bonjour,:)
Dans le code de Lone-wolf ci-dessous
VB:
With Sheets("Temp")
lig = .Range("a" & Rows.Count).End(xlUp).Row + 1
.Cells(lig, "A") = cel.Offset(0, -2)  '2ème colonne à gauche de colonne C
.Cells(lig, "B") = cel.Offset(0, -1)   '1ère colonne à gauche de colonne C
.Cells(lig, "C") = cel.Offset(0, 0)    'colonne de référence où se fait la recherche
.Cells(lig, "D") = cel.Offset(0, 1)    '1ère colonne à droite de colonne C
.Cells(lig, "E") = cel.Offset(0, 2)    '2ème colonne à droite de colonne C
End With
tu continues ton code avec la même logique pour couvrir toutes tes colonnes.

Bonne poursuite.;)

Cordialement, Cp4.
 

Lone-wolf

XLDnaute Barbatruc
Re

Edit: bonjour cp4 :)

@ recoveribis: pour les 22 colonnes, tu aurais pu les cités dans ton 1er message. Personnellement, dans ce cas, j'aurais mis Options en 1ère colonne afin de ne pas remettre toutes les colonnes dans la macro; ce qui aurait donné ceci.

VB:
With Sheets("Temp")
lig = .Range("a" & Rows.Count).End(xlUp).Row + 1
For col = 1 To 22
.Cells(lig, col) = cel.offset(0, col - 1)
Next col
End With
 

Lone-wolf

XLDnaute Barbatruc
Re

La macro au complet

VB:
Private Sub CommandButton1_Click()
Dim plage As Range, cel As Range, derlig As Long, lig As Long, col As Long, premaddress

              Application.ScreenUpdating = False

    With Sheets("BD")
        derlig = .Range("a" & Rows.Count).End(xlUp).Row
        Set plage = .Range("a2:a" & derlig)
    End With
   
    Set cel = plage.Find(TextBox1, , xlValues, xlWhole)
    If Not cel Is Nothing Then
        premaddress = cel.Address
        Do
            With Sheets("Temp")
                lig = .Range("a" & Rows.Count).End(xlUp).Row + 1
                For col = 1 To 22
                    .Cells(lig, col) = cel.Offset(0, col - 1)
                Next col
            End With
            Set cel = plage.FindNext(cel)
        Loop While Not cel Is Nothing And cel.Address <> premaddress
    End If
End Sub
 

recoverybis

XLDnaute Nouveau
Re bonjour Lone - Wolf,

je viens de placer le code dans un autre CommandButton sur l'Useform mais ça ne fonctionne pas
peut être ai je fait une mauvaise manip ? je joins le fichier

Cordialement
 

Pièces jointes

  • Recherche -essais-2.xlsm
    19.8 KB · Affichages: 76

recoverybis

XLDnaute Nouveau
Oups, trop de précipitation de ma part comme d'hab , je viens de revérifier le code fonctionne parfaitement.
je te remercie encore une fois d'avoir donné de ton temps afin de me dépanner.
Malheureusement, la réciproque sera compliquée car mes connaissance en VBA atteint péniblement le niveau débutant. En tout cas, ce cite mérite d'être connu ne serait ce que par l'état d'esprit qui y règne.

Bien cordialement
 

Discussions similaires

Réponses
14
Affichages
940

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 204
Membres
103 157
dernier inscrit
youma