Bonjour à toutes et à tous,
Je réalise actuellement un fichier Excel destiné à suivre l'évolution de l'accomplissement des objectifs d'un projet au fil des mois.
Ce fichier est constitué d'un onglet listant les objectifs dans une plage nommée, et de plusieurs onglets de suivis (S1, S2, S3, etc.) Le nombre d'onglets de suivis peut varier selon la durée des projets.
Sur chacun de ces onglets de suivi, l'utilisateur doit recenser les objectifs réalisés durant la période.
Par défaut, sur chaque onglet seule une cellule (située en colonne B) dispose d'une liste déroulante des objectifs renseignés dans la plage nommée.
C'est pourquoi j'ai ajouté un bouton permettant à l'utilisateur d'ajouter un objectif.
D'autre part, l'utilisateur est amené a détailler les actions réalisées pour accomplir cet objectif.
Par défaut, l'utilisateur peut renseigner jusqu'à trois actions en colonne D par objectif, mais s'il désire en ajouter une, j'ai codé un bouton permettant de rajouter une action.
Vous trouverez ci-dessous les codes des boutons "Ajouter un objectif" et "Ajouter une action"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 'Ajout d'un objectif Sub AjoutObjRea() Application.Calculation = xlCalculationManual Dim DernLigne As Long Dim celluletrouvee As Range With ActiveSheet Set celluletrouvee = Range("B:B").Find("Objectifs réalisés durant la période", LookAt:=xlWhole) DernLigne = celluletrouvee.Row + 2 .Rows(DernLigne - 1 & ":" & DernLigne).Copy .Rows(DernLigne + 1 & ":" & DernLigne + 2).Insert End With Application.Calculation = xlCalculationAutomatic End Sub
Lorsque j'utilise ces boutons sur un onglet de suivi, tout fonctionne. Mais si ensuite j'essaye de cliquer sur un bouton d'un autre onglet de suivi, j'ai l'erreur "La méthode 'Insert' de l'objet 'Range' a échoué" et si c'est un bouton d'ajout d'objectif, l'erreur "Erreur Automation : L'objet invoqué s'est déconnecté de ses clients" pour un bouton d'action.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 'Ajout d'une action 'L'action supplémentaire se place en dessous de la cellule sélectionnée Sub AjoutAct() Application.Calculation = xlCalculationManual With ActiveSheet .Rows(ActiveCell.Row).Copy .Rows(ActiveCell.Row + 1).Insert Shift:=xlDown .Cells(ActiveCell.Row + 1, 2).Clear End With Application.Calculation = xlCalculationAutomatic End Sub
Ces erreurs ne surgissent que pour un certain nombre d'onglets de suivi et également pour un certain nombre d'objectifs : par exemple pour 4 onglets et 5 objectifs ça ne marche pas mais avec 6 objectifs c'est bon, ou encore 3 onglets et 5 objectifs ça fonctionne, 2 onglets et 3 objectifs aussi...
Je suis donc assez perdu face à ces erreurs étranges qui ne surivennent que pour un nombre d'onglets/d'objectifs précis
Le débogueur Excel pointe sur les lignes comportant le mot "Insert" mais il me semble pourtant que la syntaxe est bonne (étant donné que cela marche pour la plupart des configurations nb objectifs/nb onglets)
J'espère que mes explications ont été claires, n'hésitez pas à me demander des précisions au cas où.
Je suis débutant en VBA, il se peut donc que mon code soit très loin d'être propre/optimisé donc toutes vos remarques et commentaires seront les bienvenus
Merci pour votre attention et votre aide !
Partager