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

[Fermé]
Signaler
-
 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

Messages postés
26192
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
22 septembre 2021
6 066
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

Messages postés
15988
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 septembre 2021
1 536
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

Bonsoir,

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