Plantage vba lors de la compilation

Fermé
Autruche_gersoise Messages postés 8 Date d'inscription jeudi 5 juillet 2012 Statut Membre Dernière intervention 16 juillet 2012 - 16 juil. 2012 à 16:29
f894009 Messages postés 17223 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 10 janvier 2025 - 16 juil. 2012 à 17:01
Bonjour,
J'ai crée le programme ci-dessus qui me permet de récupérer des infos dans différentes feuille d'un même classeur.
Il s'agit d'un bouton qui , lorsque je clique dessus , vas chercher le nombre d'heures qu'a travaillé des employés suivant le nom de chauque employé et le jour du mois grâce à 3 boucles Do....Loop while.
Mais lorsque je veux compiler mon programme pour le tester excel plante et je suis obligé de forcer la fermeture.
Pourriez-vous me dire si le problème vient de on codage ou si c'est autre chose ?

code:

Sub ActualiserHeures_Clic()


Dim NomMoisEmploye As String
Dim NomJourEmploye As String
Dim compteurJour As Integer, compteurJourPersonnel As Integer, compteurMoisperso As Integer
compteurJour = 1
NomJourEmploye = Sheets("J" & compteurJour).Cells(11 + compteurJourPersonnel, 1)
NomMoisEmploye = Sheets("Perso").Cells(12 + compteurMoisperso, 1)
Do
Do
compteurMoisperso = 0
Do
Worksheets("perso").Activate
compteurJourPersonnel = 0

If NomMoisEmploye = NomJourEmploye Then
Cells(12 + compteurMoisperso, 3 + copteurJour).Value = Worksheets("J & compteurJour").Cells(11 + compteurJourPersonnel, 1).Value
compteurMoisperso = compteurMoisperso + 1
Else
compteurJourPersonnel = compteurJourPersonnel + 1
End If
Loop While NomJourEmploye <> ""

compteurMoisperso = compteurMoisperso + 1

Loop While NomMoisEmploye <> ""

compteurJour = compteurJour + 1

Loop While compteurJour = 31

Worksheets("Perso").Select

End Sub




2 réponses

Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
16 juil. 2012 à 16:50
Salut,
Peut être une boucle infinie ? As-tu essayé d'exécuter ton programme pas à pas ? (touche F8)
0
f894009 Messages postés 17223 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 10 janvier 2025 1 712
16 juil. 2012 à 17:01
Bonjour,

Dans votre code NomJourEmploye et NomMoisEmploye ne sont pas mis a jour.
Essayez ceci

Sub ActualiserHeures_Clic()
  Dim NomMoisEmploye As String
  Dim NomJourEmploye As String
  Dim compteurJour As Integer, compteurJourPersonnel As Integer, compteurMoisperso As Integer
  compteurJour = 1
  Do
    Do
      compteurMoisperso = 0
      Do
        Worksheets("perso").Activate
        compteurJourPersonnel = 0
        NomJourEmploye = Sheets("J" & compteurJour).Cells(11 + compteurJourPersonnel, 1)
        NomMoisEmploye = Sheets("Perso").Cells(12 + compteurMoisperso, 1)
        If NomMoisEmploye = NomJourEmploye Then
          Cells(12 + compteurMoisperso, 3 + copteurJour).Value = Worksheets("J & compteurJour").Cells(11 + compteurJourPersonnel, 1).Value
          compteurMoisperso = compteurMoisperso + 1
        Else
          compteurJourPersonnel = compteurJourPersonnel + 1
        End If
      Loop While NomJourEmploye <> ""
      compteurMoisperso = compteurMoisperso + 1
    Loop While NomMoisEmploye <> ""
    compteurJour = compteurJour + 1
  Loop While compteurJour = 31
  Worksheets("Perso").Select
End Sub
0