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 :

Comment faire une boucle [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Restaurateur
    Inscrit en
    Décembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Décembre 2014
    Messages : 3
    Par défaut Comment faire une boucle
    J'ai ce code qui fonctionne bien, il met un trait-union en D si C est pas vide, mais il est trop long comment faire 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
    Private Sub Worksheet_Change(ByVal Target As Range)
        '
        '
        '1ER EMPLOYÉ TEMPS PLEIN
        '
        '
        If Not Application.Intersect(Target, Range("c7")) Is Nothing Then
            Call C7
        End If
        If Not Application.Intersect(Target, Range("c9")) Is Nothing Then
            Call c9
        End If
        If Not Application.Intersect(Target, Range("c10")) Is Nothing Then
            Call C10
        End If
        If Not Application.Intersect(Target, Range("f7")) Is Nothing Then
            Call f7
        End If
        If Not Application.Intersect(Target, Range("f9")) Is Nothing Then
            Call f9
        End If
        If Not Application.Intersect(Target, Range("f10")) Is Nothing Then
            Call f10
        End If
    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
    Sub C7()
        If Not IsEmpty(Range("c7")) Then
            Range("d7") = "-"
        Else
            Range("d7") = ""
        End If
    End Sub
    Sub c9()
        If Not IsEmpty(Range("c9")) Then
            Range("d9") = "-"
        Else
            Range("d9") = ""
        End If
    End Sub
    Sub C10()
        If Not IsEmpty(Range("c10")) Then
            Range("d10") = "-"
        Else
            Range("d10") = ""
        End If
    End Sub
    Sub f7()
        If Not IsEmpty(Range("f7")) Then
            Range("g7") = "-"
        Else
            Range("g7") = ""
        End If
    End Sub
    Sub f9()
        If Not IsEmpty(Range("f9")) Then
            Range("g9") = "-"
        Else
            Range("g9") = ""
        End If
    End Sub
    Sub f10()
        If Not IsEmpty(Range("f10")) Then
            Range("g10") = "-"
        Else
            Range("g10") = ""
        End If
    End Sub
    le tout continu jusqu'en AU et ensuite je recommence pour le groupe de cellules (c11/d11 c13/d13) (f11/g11 f13/g13) etc. p.s. le premier groupe est spécial, il contient 3 cellules différentes! le reste n'en contient que 2

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Teste ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        If Not Intersect(Target, Union([C7], [C9:C10], [f7], [F9:F10])) Is Nothing Then
     
            Target.Offset(, 1) = IIf(Target.Value <> "", "-", "")
     
        End If
     
    End Sub
    Hervé.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Restaurateur
    Inscrit en
    Décembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Décembre 2014
    Messages : 3
    Par défaut
    Merci Hervé cela fonctionne à merveille, chapeau

    explique moi s.v.p. pourquoi le I dans IIF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Target.Offset(, 1) = IIf(Target.Value <> "", "-", "")

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

Discussions similaires

  1. [Smarty] comment faire une boucle
    Par wkd dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 19/08/2009, 13h36
  2. Réponses: 2
    Dernier message: 06/04/2007, 13h31
  3. [VBA-E] Comment faire une boucle lorsqu'il y a des cellules vides
    Par Annick.w dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 01/02/2007, 22h39
  4. [AJAX] Comment faire une boucle XMLHttpRequest qui marche ?
    Par lancelot_13 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/01/2007, 12h00
  5. Comment faire une boucle ???
    Par HookerSeven dans le forum Access
    Réponses: 6
    Dernier message: 17/06/2005, 12h58

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