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éation d'une boucle [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut Création d'une boucle
    Bonsoir,

    J'ai développé la macro suivante et je me posais la question, s'il n'y avait pas plus simple en créant une boucle ?
    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
    Sub RechercherContact()
     
            Application.ScreenUpdating = False
        ' Déclaration des variables
            Dim Ligne As Integer
            Dim Nom As String
        ' Message box pour demander une action
                Nom = InputBox("Veuillez Saisir le prénom et le nom de l'agent administratif")
            If Nom = "" Then
                MsgBox "Vous n'avez pas saisi le prénom et le nom de l'agent administratif !"
            Exit Sub
            End If
        ' Recherche le nom de l'agent
            Range("E4") = Nom
        ' Effacer les colonnes
            Range("A4:D4,F4:R4") = Empty
        ' On commence à la ligne 7 de la colonne ID N° (jusqu'à) la fin du tableau et on revient à la dernière ligne écrite
            For Ligne = 7 To Range("a999999").End(xlUp).Row
        'Résultat de la recherche par le nom et incrémentation dans la cellule de résultat
            If Range("e" & Ligne) = Range("e4") Then
        'On recherche les informations dans les colonnes et on les incrémente dans la ligne de résultat
                Range("a4") = Range("a" & Ligne)
                Range("b4") = Range("b" & Ligne)
                Range("c4") = Range("c" & Ligne)
                Range("d4") = Range("d" & Ligne)
                Range("f4") = Range("f" & Ligne)
                Range("g4") = Range("g" & Ligne)
                Range("h4") = Range("h" & Ligne)
                Range("i4") = Range("i" & Ligne)
                Range("j4") = Range("j" & Ligne)
                Range("k4") = Range("k" & Ligne)
                Range("l4") = Range("l" & Ligne)
                Range("m4") = Range("m" & Ligne)
                Range("n4") = Range("n" & Ligne)
                Range("o4") = Range("o" & Ligne)
                Range("p4") = Range("p" & Ligne)
                Range("q4") = Range("q" & Ligne)
                Range("R4") = Range("R" & Ligne)
     
                Exit Sub
            End If
        ' Recherche dans les autres lignes
            Next Ligne
     
    End Sub
    Merci à vous. Bonne soirée

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 759
    Points : 28 611
    Points
    28 611
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Une boucle sert à répéter les mêmes instructions.
    Par exemple, après avoir écrit une procédure de recherche ou de formatage de plusieurs cellules dans une feuille, j'aimerais répéter cette procédure sur l'ensemble des feuilles de mon classeur.
    Voilà un cas typique de l'utilisation d'une boucle. J'ai une tâche qui se répète sur plusieurs feuilles

    A lire éventuellement La gestion des boucles dans Excel
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Merci Philippe
    Bonne journée

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 20
    Points : 28
    Points
    28
    Par défaut
    Bonjour,
    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
    Option Explicit
     
    Sub RechercherContact()
     
            Application.ScreenUpdating = False
        ' Déclaration des variables
            Dim Ligne As Long
            Dim Nom As String
        ' Message box pour demander une action
                Nom = InputBox("Veuillez Saisir le prénom et le nom de l'agent administratif")
            If Nom = "" Then
                MsgBox "Vous n'avez pas saisi le prénom et le nom de l'agent administratif !"
            Exit Sub
            End If
        ' Recherche le nom de l'agent
            Range("E4") = Nom
         ' On commence à la ligne 7 de la colonne ID N° (jusqu'à) la fin du tableau et on revient à la dernière ligne écrite
            For Ligne = 7 To Cells(Rows.Count, "A").End(xlUp).Row
        'Résultat de la recherche par le nom et incrémentation dans la cellule de résultat
            If Range("E4") = Cells(Ligne, "E") Then
        'On recherche les informations dans les colonnes et on les incrémente dans la ligne de résultat
                Range("A4:R4").Value = Range(Cells(Ligne, "A"), Cells(Ligne, "R")).Value
                Exit For
            End If
        ' Recherche dans les autres lignes
            Next Ligne
    End Sub
    Et voilà!

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

Discussions similaires

  1. création d'une boucle
    Par brioche31 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 19/08/2010, 17h18
  2. [Débutant] Création d'une boucle pour récupérer des informations
    Par youcef60 dans le forum MATLAB
    Réponses: 15
    Dernier message: 02/03/2010, 22h31
  3. javascript : création d'une boucle "for"
    Par Ekinea dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/08/2009, 13h20
  4. Création d'une boucle VBA pour la fonction SOMME.SI
    Par choudoudou15 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/05/2009, 12h03
  5. création d'une boucle for pour interrogation requête sql
    Par philder62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/12/2007, 15h14

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