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 avec plusieurs boucles [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 94
    Par défaut recherche avec plusieurs boucles
    Bonjour à tous,

    J'ai réussi à mettre en place un code qui me permet de chercher la valeur d'une cellule selon deux critères variables.
    J'aimerai maintenant passer à l'étape supérieur en programmant une boucle dans mon code.
    Autrement j'aimerai ne plus figer la ligne 25 de mon code mais la faire varier avec un pas de +1.
    J'ai essayé d'insérer une autre boucle while mais le code plante.

    Merci pour vos réponses.

    Bonne journée


    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
    Sub rechercheh()
     
     
    i = 2
     
    While IsEmpty(Cells(i, 1)) = False
     
        If Cells(25, 2) = Cells(i, 1) Then
     
        j = 3
        While IsEmpty(Cells(1, j)) = False
     
             If Cells(1, j) = Cells(25, 3) Then
                Cells(25, 4) = Cells(i, j)
             End If
     
        j = j + 1
        Wend
     
     
        End If
     
    i = i + 1
     
    Wend
     
     
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Autrement j'aimerai ne plus figer la ligne 25 de mon code mais la faire varier avec un pas de +1.
    De quelle valeur à quelle valeur ? voici un exemple de 1 à 10.

    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
    Sub rechercheh()
    Dim x As Long, i As Long, j As Long
    i = 2
    For x = 1 To 10
        While IsEmpty(Cells(i, 1)) = False
            If Cells(x, 2) = Cells(i, 1) Then
                j = 3
                While IsEmpty(Cells(1, j)) = False
                     If Cells(1, j) = Cells(x, 3) Then
                        Cells(x, 4) = Cells(i, j)
                     End If
                j = j + 1
                Wend
            End If
        i = i + 1
        Wend
    Next x
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 94
    Par défaut
    Merci Daniel, pour ta réponse.

    J'aimerai la faire varier tant qu'il y a quelque chose d’inscrits.

    J'ai essayé ton code Daniel mais celui-ci ne passe pas à la valeur suivante.
    Il n'effectue la recherche que pour la ligne 25.

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Essaie :

    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
    Sub rechercheh()
    i = 2
    While IsEmpty(Cells(i, 1)) = False
        If Cells(25, 2) = Cells(i, 1) Then
           j = 3
           While IsEmpty(Cells(1, j)) = False
                For x = 1 To 10 '*** à modifier
                    If Cells(1, j) = Cells(x, 3) Then
                       Cells(x, 4) = Cells(i, j)
                    End If
                Next x
           j = j + 1
           Wend
        End If
    i = i + 1
    Wend
    End Sub

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 94
    Par défaut
    J'ai modifié ton code pour le faire la recherche sur une autre feuille de mon classeur. Cependant, les valeurs cherchées ne correspondent pas.

    Ci-joint le code:

    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
    Sub rechercheh()
    i = 2
    While IsEmpty(Sheets("VL").Cells(i, 1)) = False
        If Sheets("Contrôle Niveau 2").Cells(360, 3) = Sheets("VL").Cells(i, 1) Then
           j = 2
           While IsEmpty(Sheets("VL").Cells(1, j)) = False
                For x = 360 To 371 '*** à modifier
                    If Sheets("VL").Cells(1, j) = Sheets("Contrôle Niveau 2").Cells(x, 11) Then
                       Sheets("Contrôle Niveau 2").Cells(x, 19) = Sheets("VL").Cells(i, j)
                    End If
                Next x
           j = j + 1
           Wend
        End If
    i = i + 1
    Wend
    End Sub

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    J'ai du mal à comprendre c que tu veux faire. Peut-être :

    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
    Sub rechercheh()
    i = 2
    While IsEmpty(Cells(i, 1)) = False
        If Cells(i, 2) = Cells(i, 1) Then
        j = 3
        While IsEmpty(Cells(1, j)) = False
             If Cells(1, j) = Cells(25, 3) Then
                Cells(i, 4) = Cells(i, j)
             End If
        j = j + 1
        Wend
        End If
    i = i + 1
    Wend
    End Sub

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

Discussions similaires

  1. Recherche avec plusieurs critères
    Par Eco dans le forum Excel
    Réponses: 12
    Dernier message: 20/07/2016, 19h07
  2. recherche avec plusieurs mots-clé
    Par MAMANHOU dans le forum IHM
    Réponses: 6
    Dernier message: 12/07/2007, 11h05
  3. VBA-E Comment réaliser une recherche avec plusieurs critères ?
    Par Larsen21 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 14/12/2006, 14h43
  4. [VBA-E]rechercher avec plusieur critère.
    Par morgan47 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/06/2006, 20h48
  5. Réponses: 6
    Dernier message: 04/11/2005, 18h09

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