Effectuer une recherche avec vba

melevallafra

XLDnaute Nouveau
Bonjour,
je suis sur un projet pour le boulot.
J'ai une feuille excel nommée Base de données et une autre nommée Formulaire
Dans la feuille Base de données, j'ai les colonnes :
nom / prénom / numéro de tel / numéro d'identification

Dans la feuille Formulaire, je voudrai rentrer un nom en case B2 et cliquer sur un bouton "recherche".
Si le nom est bien dans la colonne "nom" de Base de données, je souhaiterai une msgbox qui me donne le numéro d'identification associé à ce nom

S'il n'existe pas, afficher une msgbox me disant, personne non existante
J'avoue que je suis plus que débutant en vba, et je me casse la tête sur ce dossier.
l'aide de vba ne m'aide pas beaucoup, je tatonne, mais je n'arrive pas à avoir ce que je veux.

Pourriez vous m'aider s'il vous plait ?

Merci d'avance
 

Dull

XLDnaute Barbatruc
Re : Effectuer une recherche avec vba

Bonjour melevallafra et Bienvenue:), le Forum

Il est coutume sur ce Forum de déposer un fichier de - de 48Ko et de préférence Zippé afin de ne pas faire comme toi:

l'aide de vba ne m'aide pas beaucoup, je tatonne, mais je n'arrive pas à avoir ce que je veux.
A te lire

Bonne Journée
 

JONEY76

XLDnaute Occasionnel
Re : Effectuer une recherche avec vba

Nous avons pas mal de fichier de recherche pouvant correspondre à ton besoin, montres nous ce que tu souhaite et on pourra t'aider !!:)

J'ai un fichier de recherche pouvant surement répondre à tes besoin
 

Hulk

XLDnaute Barbatruc
Re : Effectuer une recherche avec vba

Hello Forum, Melevallafra, Joney, Dull :)

Allé, je me lance, sans fichier joint comme le préconisent Dull et Joney, ai fait un truc au pif.

Bonne fin de journée.

EDIT : Ai modifié le fichier joint !
 

Pièces jointes

  • TestV1.zip
    13 KB · Affichages: 105
  • TestV1.zip
    13 KB · Affichages: 105
  • TestV1.zip
    13 KB · Affichages: 107
Dernière édition:

Hulk

XLDnaute Barbatruc
Re : Effectuer une recherche avec vba

Re,

Hm sorry mais le fichier avec ce code
Code:
Private Sub BtnRecherche_Click()

    Dim x As Range
    
    With Sheets("Base de données")
        For Each x In .Range("A2:A" & .Range("A65536").End(xlUp).Row)
            If x = Sheets("Formulaire").Range("B2") Then
                MsgBox "Client " & x & " N°d'identification : " & x.Offset(0, 3)
            Else
                MsgBox "Le client " & Sheets("Formulaire").Range("B2") & " n'est pas dans la liste !"
                Exit Sub
            End If
        Next x
    End With
    
End Sub
ne joue pas.

Modifier le code comme ceci
Code:
Private Sub BtnRecherche_Click()

    Dim x As Range
    
    With Sheets("Base de données")
        For Each x In .Range("A2:A" & .Range("A65536").End(xlUp).Row)
            If x = Sheets("Formulaire").Range("B2") Then MsgBox "Client " & x & " N°d'identification : " & x.Offset(0, 3)
        Next x
    End With
    
End Sub
Puis sélectionner la cellule B2 de la feuille "Formulaire" et dans Données/Validation dans les deux onglets d'erreur, côcher les cases !

Ou trouver une autre solution.

Encore désolé de ma réponse un peu trop hâtive.
 

jp14

XLDnaute Barbatruc
Re : Effectuer une recherche avec vba

Bonjour à tous



Ci joint un fichier avec une procédure.
Un double clic sur la cellule lance la recherche.
S'il y a des homonymes il faudra modifier la procédure

A tester

JP
 

Pièces jointes

  • melevallafra.zip
    11.2 KB · Affichages: 106

melevallafra

XLDnaute Nouveau
Re : Effectuer une recherche avec vba

Merci beaucoup pour vos réponses.
je vous avoue avoir eu quelques problemes de connexion ces derniers jours.
De plus, au boulot, je ne peux ouvrir les fichiers ZIP.

Bref, je complique la chose, car on m'a demandé plus compliqué :mad:

je vais faire un fichier d'exemple et le poster.

je vous explique tout de même la situation

j'ai 11 feuilles :


Feuille 1, j'aurai deux boutons (celui que je souhaite programmer)

feuille 2
j'ai 14 colonnes (nom, prénom, date de naiss, lieu de naiss, et autres données)

feuille 3
14 colonnes également (comme la feuille 2, avec valeurs différentes)

il en est de même jusqu'à la feuille 9 comprise

feuille 10, j'ai 2 colonnes avec noms, prénoms

enfin, feuille 11, j'ai une liste de noms associés à un numéro

A savoir que tous les noms des feuilles 2 à 9 sont aussi dans la feuille 10 et pas forcément dans la feuille 11

Voici le topo
Concernant le bouton 1, voici ce que j'aimerai :

en cliquant sur le bouton 1 de la feuille 1, je voudrais :
1/comparer les colonnes noms et prénoms de la feuille 10 avec celles la feuille 2
2/s'il n'est pas dans la feuille 2, comparer avec la feuille3, et ce jusqu'à la feuille 9
3/si ces colonnes nom et prénom n'est dans aucune des feuilles 2 à 9, passer la ligne où se trouve ce nom dans la feuille 10 en fond gris clair
4/si le nom prénom est présent dans l'une des feuilles 2 à 9, alors, comparer le nom prénom de la feuille 10 avec les colonnes nom et prénom de la feuille 11.
5/S'il n'y est pas, alors mettre la ligne de la feuille 10 comportant ce nom prénom en fond orange
6/S'il y est, alors mettre la ligne où se trouve ce nom prénom en gras et fond rouge clair

Ensuite pour le bouton 2 :

En colonne 10 des feuilles 2 à 9, j'ai une date (dite de péremption)
en cliquant sur le bouton 2, je voudrais qu'il analyse la colonne 10 des feuilles 2 à 9, et que les dates antérieures à la date du jour passent en italique soulignés fond blanc


Je ne sais pas si j'ai été explicite.
j'avoue que c'est assez difficile a expliquer, et j'imagine, très compliqué à mettre en place.

je vous poste un modèle dans le w-e avec exemple

J'ai tenté avec mise en forme conditionnelle, mais j'ai une erreur : je ne peux faire de MFC en faisant référence à plusieurs feuilles

Depuis hier, je me creuse la tête, mais je ne sais par quel bout commencer.
Va vraiment falloir que je me forme VBA.
j'ai acheté vba excel pour les nuls, mais ça aide pas des masses, ou alors c'est que je suis pas assez intelligent lol

Par contre, est-il possible de noter des commentaires aux lignes de commande, cela m'aidera sûrement à apprendre, svp ?
Vous allez sans doute me trouver exigeant, je m'en excuse par avance.

grandement merci pour votre aide
 
Dernière édition:

melevallafra

XLDnaute Nouveau
Re : Effectuer une recherche avec vba

Bon, pour simplifier, j'ai supprimer une feuille pour mettre les numéros dans une colonne.

le bouton MAJ ferait ceci :

comparer les noms et prénoms de la feuille "liste complète" avec les feuilles "strasbourg" "lyon", bref toutes les feuilles "nom de ville".

Si un nom prénom est identique entre la feuille "liste complète" et un des feuilles "nom de ville", et que dans la colonne P des feuilles "nom de ville" ily a un nr associé à ce " nom" "prénom", alors les cellules de la feuille "liste complète" où apparaissent ce "nom prénom" sera en fond jaune.

Si un nom prénom est identique entre la feuille "liste complète" et un des feuilles "nom de ville", et que dans la colonne P des feuilles "nom de ville" il n'y a pas de nr associé à ce " nom" "prénom", alors les cellules de la feuille "liste complète" où apparaissent ce "nom prénom" sera en fond orange.

le bouton VERIF DATE ferait ceci :

Pour toute date des colonnes K des feuilles "nom de ville" qui serait inférieure à la date d'aujourd'hui plus 60 jours, alors ces lignes seraient copiées et coller dans la feuille "Stage à renouveler", en mettant cette feuille en visualisation.


Exemple par rapport aux données que j'ai inscrites :

Bouton MAJ :
Armani Joelle est présente dans la feuille "liste complète" et dans la feuille "Bordeaux", par contre, elle n'a pas de nr dans la cellule "nr de stage"
donc, les cellules "nom" et "prénom" de la feuille "liste complète" doivent avoir un fond orange

Beloi Monique est dans la feuille "liste complète" et dans la feuille "Lyon", et elle a un nr dans la cellule "nr de stage".
Donc, dans la feuille "liste complète", les cellules "nom" et "prénom" doivent avoir un fond jaune

Bouton VERIF DATE :

Aujourd'hui, nous sommes le 6 Février 2010.
Dans la feuille "Paris", à la ligne 2, on remarque que la date de la colonne K est dans moins de 60 jours par rapport à aujourd'hui.

Donc, la ligne 2 de la feuille "Paris" serait copiée dans la feuille "Stage à renouveler", et cette dernière serait en visualisation.

Je vous remercie tous pour votre aide, et espère que cela est réalisable sans trop vous coûter de temps.

J'avoue que je ne trouve pas les commandes qui vont bien, et c'est bien cela qui m'embête le plus.
 

fhoest

XLDnaute Accro
Re : Effectuer une recherche avec vba

bonjour,
je t'ai modifiez ton fichier avec un userform de recherche que j'ai moi meme concu,
si il te convient garde le si pas fais en ce que tu veux
A+
si le msg d'erreur te derange vire le cela est juste une petite plaisanterie que je voulez inserer,
Cijoint.fr - Service gratuit de dépôt de fichiers
 

fhoest

XLDnaute Accro
Re : Effectuer une recherche avec vba

bonsoir,
je te renvoi le fichier avec un bouton se sera plus simple que de t'expliquer
 

Pièces jointes

  • melevallafra2.zip
    23.5 KB · Affichages: 108
  • melevallafra2.zip
    23.5 KB · Affichages: 104
  • melevallafra2.zip
    23.5 KB · Affichages: 108

melevallafra

XLDnaute Nouveau
Re : Effectuer une recherche avec vba

Sympa le petit message lol

Par contre,que dois-je modifier pour pouvoir mettre ton userform dans la feuille "liste complète" ?
J'ai fait un copier/coller, mais ça ne fonctionne pas :(

de plus, quand je rajoute un nr de stage a la ligne 2 de la feuille paris, en résultat de recherche, il ne me met pas le nr de stage.

Je m'excuse pour mon ignorance, mais j'aimerai comprendre un peu, histoire que je puisse apprendre par la même occasion.
Merci a toi
 

fhoest

XLDnaute Accro
Re : Effectuer une recherche avec vba

tu met juste derriere
Private Sub UserForm_Initialize()
ceci
Sheets("Liste complète").Activate
bien sur tu dois entrer dans le vba Alt+F11
selectionner feuilles puis double cliquez sur le userform pour voir apparaitre le code
A+
 

melevallafra

XLDnaute Nouveau
Re : Effectuer une recherche avec vba

Ok, c'est fait.
Tu vas me trouver pénible, mais dans ce cas, lorsque je recherche, du coup, il ne met met que le résultat des cellules nom prénom.
Il ne va pas chercher dans chaque feuille, et afficher le résultat de la ligne trouvée de la feuille "ville" ?

Comment puis-je faire ?
 

Discussions similaires

Réponses
9
Affichages
218
Réponses
5
Affichages
249

Membres actuellement en ligne

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz