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 :

une boucle qui boucle pas


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut une boucle qui boucle pas
    voici mon probleme
    j'ai un tableau donc certaine ligne doivent se coloré de la meme couleur que
    celle sur la cellule A1

    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub couleurbleu()
    Range("A1:A1000").Select
    Dim couleur As Variant
    couleur = Range("A1").Interior.ColorIndex
    If ActiveCell.Interior.ColorIndex = couleur Then
    ActiveCell.Offset(0, 2).Select
    Selection.ClearContents
    Selection.Interior.ColorIndex = couleur
    ActiveCell.Offset(0, 2).Select
    Selection.ClearContents
    End If
    End Sub
    le souci c'est que seul la première ligne se traite, après rien il ne traite pas toute les autres lignes

  2. #2
    Membre éclairé Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 576
    Par défaut
    Bonjour,

    A priori, c'est normal que tu n'ais que la première ligne qui marche puisque dans le code qui est présent, il n'y a pas de boucle.
    Il faut faire un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    While ta_condition
     
    ton code
    changer de ligne
     
    Wend

  3. #3
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Tu n'en dis pas beaucoup sur les conditions de fonctionnement de ta boucle
    Mais essayes ceci et dis nous ci ca te conviens:
    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 couleurbleu()
        Dim couleur As Variant
        Dim MyCel As Range
        couleur = Range("A1").Interior.ColorIndex
     
        For Each MyCel In Range("A1:A10")
            If MyCel.Interior.ColorIndex = couleur Then
                With MyCel.Offset(0, 2)
                    .ClearContents
                    .Interior.ColorIndex = couleur
                End With
            End If
        Next
    End Sub

  4. #4
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut
    Citation Envoyé par J.Michel Voir le message
    Tu n'en dis pas beaucoup sur les conditions de fonctionnement de ta boucle
    Mais essayes ceci et dis nous ci ca te conviens:

    SUPER
    ton code fonctionne pour la première colone,
    je vais essayé de le perfectionné pour qu'il fasse l'autre colone en plus
    je posterais le code final
    ça peux interréssé

  5. #5
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Si je peux me permettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      With MyCel.Offset(0, 2)
    2 represente un décalage de 2 colonnes
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut
    c'est bon ça fonctionn
    voici 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Sub couleurbleuu()
        Dim couleur As Variant
        Dim MyCel As Range
        couleur = Range("A1").Interior.ColorIndex
     
     
        For Each MyCel In Range("A1:a1000")
            If MyCel.Interior.ColorIndex = couleur Then
                With MyCel.Offset(0, 2)
                    .ClearContents
                    .Interior.ColorIndex = couleur
        End With
        End If
        Next
        couleur = Range("A1").Interior.ColorIndex
        For Each MyCel In Range("A1:a1000")
            If MyCel.Interior.ColorIndex = couleur Then
                With MyCel.Offset(0, 4)
                    .ClearContents
                    .Interior.ColorIndex = couleur
     
        End With
        End If
        Next
     
    End Sub
    bon c'est hélas redondant pour la deuxième colonne, mais j'ai pas réussi à lui faire enchainné sur la meme fonction "if", donc j'ai doublé
    et l'autre défaut c'est que j'ai pas réussi avec un systeme du type
    numdl = Range("a65536").End(xlUp).Row
    a cadrer exactement dans le cas hypotetiquer qui depasserais 1000 ligne (ok j'ai cas mettre a65536, mais bon c'est pas "pro"

    si quelqu'un veux ameliorer ce code j'attend demain avant de cliquer sur résolu

  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    et si tu faisais ça (j'vais encore me faire reprendre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    For Each MyCel In Range("a1", Range("a" & Rows.Count).End(xlUp))
    If MyCel.Interior.ColorIndex = couleur Then
    MyCel.Offset(0, 2).ClearContents
    MyCel.Offset(0, 2).Interior.ColorIndex = couleur
    MyCel.Offset(0, 4).ClearContents
    MyCel.Offset(0, 4).Interior.ColorIndex = couleur
    End If
    Next
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Un peu de lecture ci-dessous
    La gestion des boucles dans Excel
    .

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

Discussions similaires

  1. BOUCLE qui marche pas
    Par malone12 dans le forum Bases de données
    Réponses: 4
    Dernier message: 08/10/2010, 21h04
  2. condition avec une boucle qui marche pas
    Par lumycaan dans le forum Langage
    Réponses: 5
    Dernier message: 23/10/2009, 20h02
  3. BOOST::REGEX une expression qui passe pas.
    Par techz dans le forum Boost
    Réponses: 2
    Dernier message: 13/05/2009, 08h14
  4. Réponses: 18
    Dernier message: 24/10/2007, 17h11
  5. une comparaison qui marche pas.
    Par gandf dans le forum C++Builder
    Réponses: 7
    Dernier message: 16/02/2004, 15h59

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