IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

recherche dans un classeur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 8
    Par défaut recherche dans un classeur
    Bonjour,
    je voudrais créer un programme qui lance une recherche dans le classeur et qui écrive sur ma feuille de recherche les résultats trouvés. La recherche se lance lorsqu'on clique sur le bouton valider de l'userform.
    J'essaye désespérement de le coder mais cela ne fonctionne pas, voici le début de mon codage, pourriez vous me dire où cela coince :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Private Sub bouton_valider_nom_Click()
     
    Dim cell As Range
    Dim feuille As Worksheet
    Dim ligne As String
    Dim nom_fournisseur As String
    Dim nom_feuille(20) As String
    Dim i As Integer
    ligne = 9
    i = 1
    nom_fournisseur = remplissage_nom_fournisseur.value
     
    Worksbooks("memoversionexcel 3").Activate
     
    For Each feuille In Worksheets
    nom_feuille(i) = ActiveSheet.Name
    For Each cell In Range("B1:J100")
    If cell = nom_fournisseur Then
    Worksheets("Recherche").Activate
    Range("H" & ligne).Value = nom_fournisseur
    Range("I" & ligne).Value = cell.Offset(0, 1).Value
    Range("J" & ligne).Value = nom_feuille(i)
    ligne = ligne + 1
    i = i + 1
    Else
    Worksheets("Recherche").Activate
    Range("H9") = "Aucun résultat. Vérifiez le nom du fournisseur."
    End If
    Next
    Next
    Unload Me
    End Sub
     
    Merci beaucoup d'avance
    Emilie

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 12
    Par défaut
    Sans tester et juste en survolant, il y a déjà une erreur de syntaxe :
    Workbooks et non Worksbooks...

    Pense à mettre les balises de code quand tu mets... du code !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 12
    Par défaut
    Essaie ça...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Dim cell As Range
    Dim feuille As Worksheet
    Dim ligne As String
    Dim nom_fournisseur As String
    Dim nom_feuille(20) As String
    Dim i As Integer
     
    Private Sub bouton_valider_nom_Click()
     
    ligne = 9
    i = 1
    nom_fournisseur = remplissage_nom_fournisseur.Value
     
    ' modifie le nom du classeur 
    Workbooks("Classeur1").Activate
     
    For Each feuille In Worksheets
        feuille.Activate
        nom_feuille(i) = ActiveSheet.Name
    ' si la feuille contenant les résultats de tes recherches est dans le même classeur que tes données,
    'il faut arrêter la macro quand elle y arrive
    '(dans ce cas, il faut placer cette feuille en dernier !)
        If nom_feuille(i) = "Recherche" Then Exit For
     
    ' petite question en passant, le nom des fournisseurs est-il seulement dans la
    ' colonne B ? si oui, pourquoi tester les colonnes jusque J ?
        For Each cell In Range("B1:J100")
            If cell = nom_fournisseur Then
    ' dans ton code, tu activais la feuille "Recherche" mais tu ne revenais pas à la feuille de données.
    ' avec cette syntaxe, tu envoies le résultat de la recherche sans changer de feuille.
                Worksheets("Recherche").Range("H" & ligne).Value = nom_fournisseur
                Worksheets("Recherche").Range("I" & ligne).Value = cell.Offset(0, 1).Value
                Worksheets("Recherche").Range("J" & ligne).Value = nom_feuille(i)
                ligne = ligne + 1
     
            End If
        Next
    ' i ayant apparemment un lien avec tes feuilles, il faut l'incrémenter après avoir tester chaque cellule et pas à chaque fois que tu trouves un résultat dans une feuille.
        i = i + 1
     
    Next
     
    'si ligne = 9, c'est qu'elle n'a pas été incrémentée et donc c'est qu'il n'y a pas eu de résultat positif. rien ne sert d'écrire une multitude de fois la même chose (même si c'est le PC qui l'écrit)
    If ligne=9 then Worksheets("Recherche").Range("H9") = "Aucun résultat. Vérifiez le nom du fournisseur."
     
    Unload Me
    End Sub
    Si ta feuille de résultats est dans un autre classeur, il faudra rajouter quelques lignes de code.

  4. #4
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 8
    Par défaut
    c'est génial ! Merci merci merci beaucoup !
    Non, mes fournisseurs se situent dans des tableaux différents dans chaque feuille !
    Merci encore
    emilie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] 1 recherche dans 2 classeurs
    Par Sebphyto dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/03/2014, 18h04
  2. Recherche dans un classeur fermé
    Par x109488 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/01/2013, 10h26
  3. [XL-2003] Recherche dans un classeur
    Par Naru80 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 24/01/2012, 19h49
  4. boite de recherche dans un classeur
    Par lebeniste dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/02/2009, 00h32
  5. Macro recherche dans le classeur
    Par Max485 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/04/2007, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo