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 :

comparaison colonnes de 2 feuilles excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut comparaison colonnes de 2 feuilles excel
    Bonjour à tous,

    Je commence par vous dire que je débute seulement sous vba et forcément les premiers problèmes arrivent....donc par avance merci de me venir en aide

    voici ma question:

    J'ai dans un classeur excel, 2 feuilles ("PA" et "auto")
    je souhaiterais lire dans la feuille "PA" la colonne C (des cellules C7 à C20) puis la comparer à la colonne B (cellule B7 à B20) de la feuille "auto"

    si le contenu de la cellule de la feuille "PA", par exemple C7 est égale à la cellule B7 de la feuille "auto", alors la cellule G8, par exemple de la feuille "auto" devient vert....sinon la cellule devient rouge...de la même façon pour la comparaison des autres cellules (C8>C20) de la feuille 'PA" aux cellules (B8>B20) de la feuille ("auto")...

    j'espere avoir été suffisament clair....
    merci par avance de votre aide

  2. #2
    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 : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    La position de ton End with me dérange Si le test est bon tu n'en as pas
    Exact, bien vu, j'avais fait ça à la sauvette sans tester, merci pour la correction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
    Dim i%
    For i = 7 To 20
       With Sheets("auto").Cells(i, 7).Interior
          If Sheets("PA").Cells(i, 3) = Sheets("auto").Cells(i, 2) Then
             .ColorIndex = 10
          Else
             .ColorIndex = 3
          End If
       End With
    Next
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    merci beaucoup pour ton aide...je n'ai eu le temps de testé ta méthode que cet AM....

    après éxécution voici le résultat...

    ---------------------------
    Microsoft Visual Basic
    ---------------------------
    L'indice n'appartient pas à la sélection.
    ---------------------------
    OK Aide
    ---------------------------

    que faire?

    par avance merci....

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    voici la copie d'écran correspondante
    Images attachées Images attachées  

  5. #5
    Membre chevronné
    Inscrit en
    Janvier 2008
    Messages
    476
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 476
    Par défaut
    Bonsoir
    L'indice n'appartient pas à la sélection.
    Vous avez fait référence à un membre de collection inexistant.
    voir les noms de tes 2 feuilles si c'est bien PA et auto
    Abed_H

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu as adapté le nom des feuilles qu'a mis fring ?

  7. #7
    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 : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    J'ai dans un classeur excel, 2 feuilles ("PA" et "auto")

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    Bonjour à tous,

    Merci beaucoup de me venir en aide...

    pour répondre à la 1ère question de Ouskel'n'or...oui j'ai adapté le prog de fring à mon cas....en fait PA=feuille plan d'action et auto= grille auto...

    J'ai de nouveaux éléments à vous soumettre pour que vous essayer de comprendre mon soucis...En espérant être plus clair...

    En fait sur une feuille "PA" j'ai un tableau à 1 seule entrée avec 3 colonnes (A, B et C)

    sur une autre feuille "auto" j'ai un tableau à 2 entrées

    en fait je vais reformuler mon problème...

    Si la colonne A (cellules A1 à A15) de la feuille "PA" = la colonne A (cellules A1 à A15) de la feuille "auto"

    Et si la colonne B (cellules B1 à B15) de la feuille "PA" = la ligne 2 (cellules A2 à O2) de la feuille "auto"

    alors à la croisée de cette ligne-colonne du tableau de la feuille "auto" la cellule prend la couleur de la cellule correspondante dans la colonne C, feuille "auto"

    En me relisant je ne sais pas si qq'n m'a compris...

    Merci par avance....

    je rame complètement

    en fait c'est la colonne C de la feuille "PA"...

    désolé

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    bonjour à tous,

    J'ai bossé sur mon problème une bonne partie de l'AM d'hier et j'ai realisé ce prog....je sais qu'il y a des erreurs notamment sur la fin (Next et exit for...) mais là je sèche complètement....

    Si une âme charitable pouvait me venir en aide...

    Merci par avance
    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 test()
     
    Dim z
    Dim i
    Dim j
     
        For z = 8 To 50 Step 1
     
            For j = 7 To 23 Step 1
     
                If Sheets("plan d'action").Cells(z, 2) = Sheets("Grille synthèse auto").Cells(j, 2) Then
     
                    For i = 3 To 26 Step 1
     
                        If Sheets("plan d'action").Cells(z, 6) = Sheets("Grille synthèse auto").Cells(6, i) Then
     
                            If Sheets("plan d'action").Cells(z, 7) <= 36 And Sheets("plan d'action").Cells(z, 7) > 16 Then
                            Sheets("Grille synthèse auto").Cells(j, i).Select
                            Selection.Interior.ColorIndex = 7
     
                            Else
     
                                If Sheets("plan d'action").Cells(z, 7) <= 64 And Sheets("plan d'action").Cells(z, 7) > 36 Then
                                Sheets("Grille synthèse auto").Cells(j, i).Select
                                Selection.Interior.ColorIndex = 3
                                End If
     
                            End If
     
                    Next z
     
                        Else
                        End If
     
            Next i
     
                Else
                End If
     
        Next j
     
    End Sub
    ERREUR de COmpilation
    Next sans For


  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Par défaut
    Tes For étant dans cet ordre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        For z = 8 To 50 Step 1
     
            For j = 7 To 23 Step 1
     
                If Sheets("plan d'action").Cells(z, 2) = Sheets("Grille synthèse auto").Cells(j, 2) Then
     
                    For i = 3 To 26 Step 1
     
    If Sheets("plan d'action").Cells(z, 6) = Sheets("Grille synthèse auto").Cells(6, i) Then

    Tu dois avoir à la fin, dans cet ordre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    End If
                    Next i
     
                        End If
     
            Next j
     
                ' pas de Else
                ' pas de End If
     
        Next z
    Après, j'ai pas regardé en détail l'intérieur du code, mais je pense que tes bug des Next sans For viennent de là

  11. #11
    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 : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

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

    +/- même réponse que ML0808 avec quelques nettoyages complémentaires
    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 test()
    Dim i%, j%, z%  '<-- % = As Integer
     
    For z = 8 To 50 'pas besoin de préciser Step 1, c'est la valeur par défaut
        For j = 7 To 23
            If Sheets("plan d'action").Cells(z, 2) = Sheets("Grille synthèse auto").Cells(j, 2) Then
                For i = 3 To 26
                    If Sheets("plan d'action").Cells(z, 6) = Sheets("Grille synthèse auto").Cells(6, i) Then
                        If Sheets("plan d'action").Cells(z, 7) <= 36 And Sheets("plan d'action").Cells(z, 7) > 16 Then
                        Sheets("Grille synthèse auto").Cells(j, i).Select
                        Selection.Interior.ColorIndex = 7
                        Else
                            If Sheets("plan d'action").Cells(z, 7) <= 64 And Sheets("plan d'action").Cells(z, 7) > 36 Then
                            Sheets("Grille synthèse auto").Cells(j, i).Select
                            Selection.Interior.ColorIndex = 3
                            End If
                        End If
                Next 'pas besoin de spécifier la variable
                    'Else <-- ce Else est inutile
                    End If
        Next 'pas besoin de spécifier la variable
            'Else <-- Else inutile
            End If
    Next 'pas besoin de spécifier la variable
     
    End Sub

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut encore soucis
    Bonjour à tous...

    Merci pour tenter de m'aider par vos réponses...

    J'ai apporté les dernières modifs et toujours le même problème

    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
     
    Sub test()
     
    Dim z%
    Dim i%
    Dim j%
     
        For z = 8 To 50
     
            For j = 7 To 23
     
                If Sheets("plan d'action").Cells(z, 2) = Sheets("Grille synthèse auto").Cells(j, 2) Then
     
                    For i = 3 To 26
     
                        If Sheets("plan d'action").Cells(z, 6) = Sheets("Grille synthèse auto").Cells(6, i) Then
     
                            If Sheets("plan d'action").Cells(z, 7) <= 36 And Sheets("plan d'action").Cells(z, 7) > 16 Then
                            Sheets("Grille synthèse auto").Cells(j, i).Select
                            Selection.Interior.ColorIndex = 7
     
                            Else
     
                                If Sheets("plan d'action").Cells(z, 7) <= 64 And Sheets("plan d'action").Cells(z, 7) > 36 Then
                                Sheets("Grille synthèse auto").Cells(j, i).Select
                                Selection.Interior.ColorIndex = 3
                                End If
     
                            End If
                    Next
     
                        End If
            Next
     
                End If
     
        Next
     
    End Sub
    Toujours la même erreur 'NEXT' sans FOR....

    Je ne vois toujours pas l'erreur....

    Je suis obstiné, je ne lacherais pas excel

    Merci de m'aider de nouveau

  13. #13
    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 : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Le problème ne vient pas de tes boucles For...Next mais des If et End If mal placés. (j'aurais du le voir dans ma réponse précédente, désolé)
    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
    Sub test()
     
    Dim z%
    Dim i%
    Dim j%
     
        For z = 8 To 50
            For j = 7 To 23
                If Sheets("plan d'action").Cells(z, 2) = Sheets("Grille synthèse auto").Cells(j, 2) Then
                    For i = 3 To 26
                        If Sheets("plan d'action").Cells(z, 6) = Sheets("Grille synthèse auto").Cells(6, i) Then
                            If Sheets("plan d'action").Cells(z, 7) <= 36 And Sheets("plan d'action").Cells(z, 7) > 16 Then
                            Sheets("Grille synthèse auto").Cells(j, i).Select
                            Selection.Interior.ColorIndex = 7
                            Else
                                If Sheets("plan d'action").Cells(z, 7) <= 64 And Sheets("plan d'action").Cells(z, 7) > 36 Then
                                Sheets("Grille synthèse auto").Cells(j, i).Select
                                Selection.Interior.ColorIndex = 3
                                End If
                            End If
                        End If
                    Next
                End If
            Next
        Next
     
    End Sub

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    Merci à toi Fring....

    Le problème des NEXT est résolu....Merci beaucoup....

    Maintenant j'ai le droit à un autre affichage....c'est bien ça change un peu...

    Erreur d'exuction '9'
    L'indice n'appartient pas à la selection

    cool cool zen zen

    ah oui j'oubliais...

    En espérant que ça n'a pas trop d'importance....Il y a une macro déjà sur la feuille 'plan d'action' et les colonnes sur lesquelles je travaille de la 2ème macro découle de la première macro qui elle fonctionne très bien....

    Par contre celle si (la 2ème macro) sur la feuille 'grille auto' pose vraiment problème

  15. #15
    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 : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Citation Envoyé par lolove94 Voir le message
    Erreur d'exuction '9'
    L'indice n'appartient pas à la selection
    Probablement une erreur dans les noms de tes feuilles, vérifie si ils sont bien correctement orthographiés

  16. #16
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Par défaut
    Slt,

    Je ne suis pas tres fort en VBA, mais qqs trucs quand tu débutes :

    Pour mieux cerner le problème d'indice lance le programme pas à pas en appuyant sur la touche F8, tu verras vraiment à quelle ligne ca plante.

    N'oublie pas de faire afficher la fenêtre de variables locales (Affichage->Fenetre de variales locale). Dans cette fenêtre tu verras si tes variables prennent bien les valeurs que tu souhaites.

    Peut être que tu avais découvert ca... je ne sais pas...


    Bon courage !

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    Merci p'tit écolier....

    J'éxécute le pas à pas, mais le prog s'arrête au 1er 'if'...

    quelqu'un a une idée pour résoudre mon problème?

    Merci d'avance

    tcho

  18. #18
    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 : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Sans rien changer à ton code, refais un copier/coller complet de ton code ici stp

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    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
     
     
    Sub test()
     
    Dim pp%
    Dim qq%
    Dim rr%
     
        For rr = 8 To 50
     
            For qq = 7 To 23
     
                If Sheets("plan d'action").Cells(rr, 2) = Sheets("grille auto").Cells(qq, 2) Then
     
                    For pp = 3 To 26
     
                        If Sheets("plan d'action").Cells(rr, 6) = Sheets("grille auto").Cells(6, pp) Then
     
                            If Sheets("plan d'action").Cells(rr, 7) <= 36 And Sheets("plan d'action").Cells(rr, 7) > 16 Then
                            Sheets("grille auto").Cells(qq, pp).Select
                            Selection.Interior.ColorIndex = 7
     
                            Else
     
                                If Sheets("plan d'action").Cells(rr, 7) <= 64 And Sheets("plan d'action").Cells(rr, 7) > 36 Then
                                Sheets("grille auto").Cells(qq, pp).Select
                                Selection.Interior.ColorIndex = 3
                                End If
     
                            End If
     
                        End If
     
                    Next
     
                 End If
            Next
     
        Next
     
    End Sub

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    J'ai juste changer le noms des variables par rapport à la dernière fois...mais sans succès...

    Merci à toi Fring

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. limiter le nombre de lignes et de colonnes d'une feuille excel
    Par Laye dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/01/2023, 22h55
  2. Selections de colonnes dans une feuille excel
    Par hubeuh dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/12/2007, 13h28
  3. remplir une colonne d'une feuille Excel
    Par yousou dans le forum VB 6 et antérieur
    Réponses: 19
    Dernier message: 23/11/2007, 13h02
  4. [VBA-Excel] copier plusieurs fois une colonne dans une feuille Excel
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 09/08/2006, 19h43
  5. copier certaines colonnes d'une feuille Excel
    Par emeraudes dans le forum Access
    Réponses: 7
    Dernier message: 12/04/2006, 17h57

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