bonjour à tous, je suis perplexe devant les réactions bizarres d'excel :
si je pose ce bout de code dans un fichier vierge
dans lequel j'aurai au préalable renommer une des feuilles "stage" et l'autre "listvol", le code fonctionne sans aucun problème.
Malhreuseument, dans le fichier qui m'intéresse(je le joins par ci-joint, je ne peux pas le réduite à la bonne taille Cijoint.fr - Service gratuit de dépôt de fichiers), cela ne fonctionne pas comme je l'entends: je lance le code par le biais du bouton "initialiser", après confirmation, il m'envoie une erreur d'exécution '9', l'indice n'appartient pas à la séletion, je clike sur débogage, la ligne
est en surbrillance.
Et là, si au lieu de cliquer sur le bouton stop, je clique sur le bouton continuer(F5), le code recommence à s'exécuter, et fonctionne très bien! Je n'arrive pas à débrouiller ce problème.
Encore plus déroutant(à moins qu'au contraire, cela fournisse une piste aux aficionados!!) : si je clique sur "initialiser" alors que la fenêtre d'édition est ouverte, le code s'exécute sans souci!! Si je ferme la fenêtre, il bloque de nouveau à cette même étape... A n'y rien comprendre 🙁
je le joins également en format xls :Cijoint.fr - Service gratuit de dépôt de fichiers
Merci à toutes les bonnes âmes
si je pose ce bout de code dans un fichier vierge
Code:
With ThisWorkbook
vry = Array("prévi", "vols", "sols", "recap")
For i = 1 To 4
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = vry(i)
If Sheets(Sheets.Count).Name = "prévi" Or Sheets(Sheets.Count).Name = "vols" Then
Set sh = ActiveWorkbook.VBProject.VBComponents(ActiveSheet.CodeName)
With sh.CodeModule
.InsertLines x + 1, "Private Sub Worksheet_Activate() 'à l'activation de l'onglet"
.InsertLines x + 2, "Dim cel As Range 'déclare la variable cel (CELlule)"
.InsertLines x + 3, "For Each cel In Range(""A1:"" & Range(""IV1"").End(xlToLeft).Address)" 'boucle sur toutes les cellules éditées cel de la ligne 2
.InsertLines x + 4, "If cel.Value = Date Then" 'condition : si la valeur de la cellule est égale à la date du jour
.InsertLines x + 5, "cel.Select" 'sélectionne la cellule
.InsertLines x + 6, "Exit For" 'sort de la boucle
.InsertLines x + 7, "End If" 'fin de la condition
.InsertLines x + 8, "Next cel" 'prochaine cellule de la boucle
.InsertLines x + 9, "End Sub"
End With
End If
Next i
End With
Malhreuseument, dans le fichier qui m'intéresse(je le joins par ci-joint, je ne peux pas le réduite à la bonne taille Cijoint.fr - Service gratuit de dépôt de fichiers), cela ne fonctionne pas comme je l'entends: je lance le code par le biais du bouton "initialiser", après confirmation, il m'envoie une erreur d'exécution '9', l'indice n'appartient pas à la séletion, je clike sur débogage, la ligne
Code:
Set sh = ActiveWorkbook.VBProject.VBComponents(ActiveSheet.CodeName)
Et là, si au lieu de cliquer sur le bouton stop, je clique sur le bouton continuer(F5), le code recommence à s'exécuter, et fonctionne très bien! Je n'arrive pas à débrouiller ce problème.
Encore plus déroutant(à moins qu'au contraire, cela fournisse une piste aux aficionados!!) : si je clique sur "initialiser" alors que la fenêtre d'édition est ouverte, le code s'exécute sans souci!! Si je ferme la fenêtre, il bloque de nouveau à cette même étape... A n'y rien comprendre 🙁
je le joins également en format xls :Cijoint.fr - Service gratuit de dépôt de fichiers
Merci à toutes les bonnes âmes