Partager via

Déroulement d'un code imcomplet

Anonyme
2024-08-03T10:10:19+00:00

Boujour,

voici le code en question : la partie i,3 et i,8 se déroule correctement. Pour que le code se termine, je suis obligé de cliquer sur la feuille précédente et de recliquer sur la feuille "Veteran" qui fonctionne sur "feuille activate".

Le but du jeu est de mettre un score en D : E, I : J & N : O dès que le mot "Office" apparaît en colonne "C, H & M". Le problème, on voit qu'en "N & O" les scores ne se mettent pas à jour alors que le mot "Office" est bel et bien présent en "M".

Merci pour votre aide.

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

15 réponses

  1. Anonyme
    2024-08-03T13:06:01+00:00

    Oui, mais ça ne peut pas fonctionner : tu as mis un test sur une variable col3 qui n'existe pas. Il fallait laisser la ligne initiale avec If Cells(i, 3).Value au lieu de col3 (même chose pour col8 et col13, bien entendu).

    Pour le reste, ta macro semble fonctionner mais, du fait de l'enchaînement de tout un tas de macros automatiques, j'ai l'impression que ça se perd entres les feuilles. Après, je ne sais pas ce que ta macro est censée faire exactement. Il me semble tout de même curieux que, lorsqu'on saisit "Office" en C8, ça l'efface et insère "Office" en C6, la lettre "E" en H10 et la lettre "F" en H19 en plus de la recopie des scores en I:J et N:O :

    Image

    Bref, c'est dans les autres macros qui s'enchaînent qu'il faut regarder ce qu'il se passe...

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2024-08-03T12:38:32+00:00

    Je te mets le lien de l'application : https://www.cjoint.com/c/NHdmmgjnmEz

    Tu as raison. Va voir les cellules des colonnes "C & M".

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2024-08-03T12:20:50+00:00

    Il faut que tu précises le reste du code. Si on ne met que les lignes avec la correction proposée par Arnaud, ça fonctionne sans problème (chez moi en tout cas) :

    Image

    Mais il n'est pas logique, par exemple, que tu doives cliquer sur une autre feuille pour que la macro fonctionne totalement. Il doit donc y avoir des interférences dans le reste du code.

    Par ailleurs, ta version initiale avec ElseIf fonctionne aussi, sous réserve de n'avoir le mot "Office" qu'une seule fois par ligne (testé chez moi). Même si c'est du coup moins sûr pour le fonctionnement, le problème que tu rencontrais initialement ne venait pas de là (ce qui confirme mon impression qu'il y a autre chose dans ta macro qui cloche)...

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2024-08-03T12:02:25+00:00

    Bonjour Arnaud,

    J'ai récrie le code comme tu me l'a suggéré, mais là, il n'y a plus rien du tout.

    Dim i As Integer  
    For i = 7 To 29  
        If col3 = "Office" Then  
            Cells(i, 3).Offset(0, 1).Value = 6  
            Cells(i, 3).Offset(0, 2).Value = 13  
        End If  
          
        If col8 = "Office" Then  
            Cells(i, 8).Offset(0, 1).Value = 6  
            Cells(i, 8).Offset(0, 2).Value = 13  
        End If  
          
        If col13 = "Office" Then  
            Cells(i, 13).Offset(0, 1).Value = 6  
            Cells(i, 13).Offset(0, 2).Value = 13  
        End If  
     Next i
    

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Hecatonchire 53,780 Points de réputation Modérateur bénévole
    2024-08-03T10:53:13+00:00

    Bonjour,

    Ton erreur est d'utiliser elseIf

    Si le test de la colonne 3 est vérifié, ton code ne fera les autres colonnes (8,13).

    De même si le test de la colonne 8 est vérifié, ton code ne fera pas la dernière colonne (13).

    Ce serait plus

    If col 3 = "Office" then

    ...

    ...

    end if

    If col 8 = "Office" then

    ...

    ...

    end if

    ...

    PS : sort les screenupdating de ta boucle, c'est mieux.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire