LuNatik
-
Modifié par crapoulou le 27/04/2016 à 09:45
LuNatik -
27 avril 2016 à 10:47
Bonjour,
Je débute en VBA, et je me retrouve confronté au message de debogage code 13 sur mon fichier alors qu'il fonctionnait encore hier. Pouvez-vous m'aider à déterminer la cause du problème svp ?
Je link mon code, avec la ligne 38 en erreur (qui est surligné en jaune dans mon code): If Sheets("astreinte").Cells(lig, col).Value Like "AST" Then
PrivateSubWorksheet_SelectionChange(ByVal Target As Range)'Modification de la semaine?If Target.Address =Sheets("recap_astreinte").Cells(2,2).Address ThenDim col AsIntegerDim nom AsString'Effaçage des données du fichier recap_astreinteFor k =13To52Sheets("recap_astreinte").Cells(k,3)=""Sheets("recap_astreinte").Cells(k,4)=""Sheets("recap_astreinte").Cells(k,5)=""Next k
'Effaçage des données du fichier recap_astreinteFor k =54To79Sheets("recap_astreinte").Cells(k,3)=""Sheets("recap_astreinte").Cells(k,4)=""Sheets("recap_astreinte").Cells(k,5)=""Next k
'Récupération du numéro de la semaine
semaine =Sheets("recap_astreinte").Cells(2,2).Value
'Calcul de l'indice de la colonne associée
col =(semaine -1)*12+3'Indice de la colonne pour la semaine (n+1)
colp = col +12'Recherche des astreintes pour la semaine nFor lig =7To400'Si la Case contient "AST"IfSheets("astreinte").Cells(lig, col).Value Like"AST"Then'Récupération du nom et du numéro de téléphone
nom =Sheets("astreinte").Cells(lig,2)
tel =Sheets("astreinte").Cells(lig,3)'Récupération du secteur associé
emplacement =lieu(lig)'Recherche du secteur dans le fichier recap_astreinteFor j =13To79
a1 =Sheets("recap_astreinte").Cells(j,1).Value
'Si les secteurs coïncidentIfUCase(a1)Like emplacement Then'Si aucun nom dans le secteur, on l'insèreIfSheets("recap_astreinte").Cells(j,3)=""ThenSheets("recap_astreinte").Cells(j,3)= nom
Else'Sinon, tant que l'espace contient un nom, on décale d'une ligne
test = j +1WhileSheets("recap_astreinte").Cells(test,3)<>""
test = test +1
Wend
'On place le nom dans la ligne disponibleSheets("recap_astreinte").Cells(test,3)= nom
EndIf'Idem pour le numéro de téléphoneIfSheets("recap_astreinte").Cells(j,4)=""ThenSheets("recap_astreinte").Cells(j,4)= tel
Else
test = j +1WhileSheets("recap_astreinte").Cells(test,4)<>""
test = test +1
Wend
Sheets("recap_astreinte").Cells(test,4)= tel
EndIfEndIfNext j
EndIf'On réitère pour la semaine (n+1)IfSheets("astreinte").Cells(lig, colp).Value Like"AST"Then
nomp =Sheets("astreinte").Cells(lig,2)
emplacementp =lieu(lig)For j =13To79
a1 =Sheets("recap_astreinte").Cells(j,1).Value
IfUCase(a1)Like emplacementp Then'On place le nom en 5ème colonneIfSheets("recap_astreinte").Cells(j,5)=""ThenSheets("recap_astreinte").Cells(j,5)= nomp
Else
test = j +1WhileSheets("recap_astreinte").Cells(test,5)<>""
test = test +1
Wend
Sheets("recap_astreinte").Cells(test,5)= nomp
EndIfEndIfNext j
EndIfNext lig
EndIfEndSub
J'ai réussi à trouver le problème qui provenait d'une manipulation des exploitants sur les fichiers sources alimentant mon document et non un problème de VBA ! Merci quand même.