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 :

Créer une boucle avec rechercheV


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    alternant
    Inscrit en
    Mai 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : alternant
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2017
    Messages : 16
    Par défaut Créer une boucle avec rechercheV
    Bonjour,

    Je souhaite simplement créer une boucle avec le code ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sheets("Feuil2").Range("A2").Resize(UBound(Tabl2, 1), 1) = Tabl2
        With Sheets("Feuil1")
        .Range("H2").Value = WorksheetFunction.VLookup(.Range("A2").Value, Sheets("Feuil2").Range("A2:B300"), 2, False)
        End With
        With Sheets("Feuil1")
        .Range("H3").Value = WorksheetFunction.VLookup(.Range("A3").Value, Sheets("Feuil2").Range("A2:B300"), 2, False)
        End With
        With Sheets("Feuil1")
        .Range("H4").Value = WorksheetFunction.VLookup(.Range("A4").Value, Sheets("Feuil2").Range("A2:B300"), 2, False)
        End With
    Car je dois effectuer cette recherche pour 300 lignes et j'ai déjà un code volumineux j'aimerais savoir comment créer une boucle.

    Merci d'avance,

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2017
    Messages : 18
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Sheets("Feuil1")
        for i = 2 to 4
            .Range("H"&i).Value = WorksheetFunction.VLookup(.Range("A"&i).Value, Sheets("Feuil2").Range("A2:B300"), 2, False)
        next i
    End With

  3. #3
    Membre averti
    Homme Profil pro
    alternant
    Inscrit en
    Mai 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : alternant
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2017
    Messages : 16
    Par défaut
    Merci en revanche il me met :

    erreur d'execution '1004' : Impossible de lire la propriété VLookup de la classe WorksheetFunction

    C'est une erreur qui concerne ce qu'il y a dans les cellules? où il faut que je cherche du côté déclarer la variables?

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    commencer déjà par vérifier manuellement la formule dans une cellule de la feuille de calculs !
    Une fois cette formule fonctionnelle, la poster ici …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 33
    Par défaut
    Bonjour !
    Voici une boucle simple et facilement modifiable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub recherH()
    Dim y As Long
    For y = 1 To 300
        If cells(y,8) = 'ta recherche
        Then
    Next y
    End Sub
    y correspond à ton nombre de ligne; ici 300 lignes
    8 correspond à H (8eme lettre de l'alphabet)
    Le programme cherche ce que tu veux de H1 à H300, tu peux maintenant en faire ce que tu veux.

    N'oubliez pas de mettre les balises #code !

    Cordialement,
    Un aspirant à la programmation

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Pour qui connait un tant soit peu le B-A-BA d'Excel une boucle est inutile
    car il suffit juste d'insérer directement dans la plage de cellules la - bonne - formule !

    En attendant la bonne formulation, de nombreux exemples sont déjà présents dans les discussions de ce forum …

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 33
    Par défaut
    Citation Envoyé par Marc-L Voir le message

    Pour qui connait un tant soit peu le B-A-BA d'Excel une boucle est inutile
    Je me suis penché sur le VB il y a une semaine et la première chose que j'ai remarqué est que c'est bien plus simple qu'une formule à entrer dans une cellule et que les possibilités sont bien plus grandes.
    Cependant ce serait avec joie de savoir comment pourrait être cette formule car je n'en ai aucune idée.
    Les boucles sont des méthodes de bourrins je te l'accorde mais elles sont efficaces !

  8. #8
    Membre averti
    Homme Profil pro
    alternant
    Inscrit en
    Mai 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : alternant
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2017
    Messages : 16
    Par défaut
    Alors la formule que Xiirf (merci à vous) a posté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Sheets("Feuil1")
    For x = 2 To 55
    .Range("H" & x).Value = WorksheetFunction.VLookup(.Range("A" & x).Value, Sheets("Feuil2").Range("A2:B300"), 2, False)
    Next x
    End With
    fonctionne très bien, cependant dans mon code je supprime des lignes inutiles (vide) sur Feuil1 (tout les jours le nombre de lignes change et peut atteindre 300), si je dépasse 55 (le nombre de ligne sur ma Feuil1 d'aujourd'hui) j'ai donc l'erreur d'execution mentionnée sur le message au-dessus. En fin de compte pour répondre à ceci je pense qu’au lieu de dire je vais jusqu'à 300 j'aurais dû dire je vais jusqu'à la dernière ligne non vide.

    Pour Overeath je vous remercie et test votre code dès que j'ai trouvé comment reformuler la parti de code de Xiirf ^^

    cordialement,

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

Discussions similaires

  1. [Débutant] Créer une boucle avec des checkbox
    Par Shennong dans le forum VB.NET
    Réponses: 2
    Dernier message: 19/07/2012, 15h00
  2. Créer une boucle avec une condition
    Par kaboche dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/10/2011, 09h55
  3. Créer une boucle avec if et continue ?
    Par Elriks dans le forum C#
    Réponses: 4
    Dernier message: 06/04/2011, 13h29
  4. Créer une boucle avec condition
    Par mfontan dans le forum MATLAB
    Réponses: 2
    Dernier message: 26/06/2008, 17h14
  5. [PHP-JS] Comment créer une boucle avec des headers
    Par djinnwatcher dans le forum Langage
    Réponses: 10
    Dernier message: 17/07/2006, 15h48

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