Salut à tous
Je sèche depuis ce matin sur cette macro, qui me renvoie une erreur 11 division par zéro, de façon aléatoire. Parfois elle s'exécute sans problème, parfois elle plante à l'itération 3 de la boucle for, parfois à l'itération 5 ou 9 ou 15... sans que les données soit modifiées dans le classeur.
En gros, j'ai une feuille avec un tableau regroupant le nombre de repas pris par les patients de mon service sur le mois. Chaque patient possède une feuille propre qui sert à faire la facturation. La macro puise les nombres de repas dans le tableau pour remplir les factures individuelles. Rien de plus simple. Cette macro a fonctionné pendant des mois sans aucun problème, puis s'est mise à planter.
Et je ne comprends pas cette histoire de division par zéro.
Je précise qu'il n'y a pas d'erreur de comptage du nombre de patients. Si par exemple, j'ai 20 patients, j'ai 24 feuilles de calcul (20 pour les patients, et 4 pour les traitements divers de l'information). J'ai utilisé un certain nombre de Msgbox pour vérifier que toutes mes données étaient bonnes.
Merci pour votre aide.
Sub COPIEnbREPAS()
'
' COPIEnbREPAS Macro
'
nbpat = Cells(2, 6) 'récupère nombre de patients
j = 0 'compteur de feuilles masquées
nbpat2 = nbpat + 2 'les deux premières feuilles ne doivent pas être traitées
For i = 3 To nbpat2
If Sheets(i + j).Visible = False Then j = j + 1 'si la feuille est masquée, on passe à la suivante
Sheets(i + j).Activate
If Sheets(i + j).Name = Sheets("tableau").Cells(i, 1) Then 'compare nom de la feuille avec nom du patient
Cells(17, 1) = Sheets("tableau").Cells(i, 2) 'copie nombre de repas
End If
Next i
'
End Sub