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

Fermé
Sename 4992 - 22 nov. 2017 à 19:10
 Archer - 22 nov. 2017 à 21:25
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.
A voir également:

3 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
22 nov. 2017 à 19:22
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
22 nov. 2017 à 19:22
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
Sename 4992
22 nov. 2017 à 19:49
Bonsoir,

J'ai essayé votre proposition mais ľerreur d'exécution '1004'
est toujours apparait de nouveau.
Merci pour votre aide.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
Modifié le 22 nov. 2017 à 19:55
ah bon?, testé chez moi, ça fonctionne! (avec cells(2,4) et 11,118 vides)
bonne chance
crdlmnt
0
Bonjour
quel version excel ???
A+
Maurice
0