Comment corriger l'erreur déxécution '1004'

Sename 4992 -  
 Archer -
Je suis en train de créér des macros pour faciliter la gestion d'une mutuelle.
Sur une feuille 2 se trouve un tableau Excel avec des cotisations cumulées au fil des mois.
Je voudrais créer la macro "COTITOTAL" liée à un bouton. En appuyant sur le bouton, la cotisation totale correspondant au mois doit apparaître dans la cellule(120, 118+J) avec une coloration jaune et écrit en rouge. De même la cellule correspondant à la date du mois de colore en jaune.
Sub COTITOTAL ()
For J=0 tout 180
If Feuil2.Cells(2, 4) = Feuil2.Cells(11, 118+J) Then
Feuil2.Cells(120, 118+J).Activate
Cells(120, 118+J).Interior.ColorIndex = 6
Cells(120, 118+J).Font.ColorIndex = 5
Cells(11, 118+J).Interior.ColorIndex = 6
End If
Next J
End Sub
Je précise que Cells(2, 4) contient la date du mois passé (1/10/2017) dont la cotisation est déjà rentrée. Tandis que Cells(11, 118+J) contient les mois d'août 2008(1/08/2008) à décembre 2019(1/12/2019).
Le problème c'est que quand j'appuie sur le bouton, la macro s'éxécute avec ľerreur d'exécution '1004'
Comment corriger cette erreur. Je vous prie de m'aider. Merci.

3 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonsoir
    je ne suis pas un grand spécialiste de VBA, pour ne pas dire pas du tout, mais en attendant un connaisseur:
    • je trouve surprenant le "tout" de la 1°ligne?
    • ça semble mieux fonctionner comme ça:


    Sub COTITOTAL()
    For J = 0 To 180
    If Feuil2.Cells(2, 4) = Feuil2.Cells(11, 118 + J) Then
    Sheets("Feuil2").Select
    Cells(120, 118).Activate
    Cells(120, 118 + J).Interior.ColorIndex = 6
    Cells(120, 118 + J).Font.ColorIndex = 5
    Cells(11, 118 + J).Interior.ColorIndex = 6
    End If
    Next J
    End Sub


    crdlmnt

    0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,
    je prefere utiliser le nom de la feuille
    Sub COTITOTAL()
        With Worksheets("feuil2")       'adaptez le nom de feuille
            For J = 0 To 180
                If .Cells(2, 4) = .Cells(11, 118 + J) Then
                    .Cells(120, 118 + J).Interior.ColorIndex = 6
                    .Cells(120, 118 + J).Font.ColorIndex = 5
                    .Cells(11, 118 + J).Interior.ColorIndex = 6
                End If
            Next J
        End With
    End Sub
    0
    1. Sename 4992
       
      Bonsoir,

      J'ai essayé votre proposition mais ľerreur d'exécution '1004'
      est toujours apparait de nouveau.
      Merci pour votre aide.
      0
    2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      ah bon?, testé chez moi, ça fonctionne! (avec cells(2,4) et 11,118 vides)
      bonne chance
      crdlmnt
      0
  3. Archer
     
    Bonjour
    quel version excel ???
    A+
    Maurice
    0