Plantage d'une macro qui fonctionnait : incrémentation n° d'action
Résolu
Mabelle-60
Messages postés
23
Date d'inscription
Statut
Membre
Dernière intervention
-
Mabelle-60 Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
Mabelle-60 Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
Bonjour à toutes et à tous
Il ya bien longtemps que je n'ai pas fait de VBA et même si certains automatismes reviennent vite, je bloque sur un bout de ce que je veux faire.
J'ai un tableau avec plusieurs lignes ( plan d'action) et je doiss insérer des lignes sous une action lorsque je clique sur une case donnée. Cette ligne insérée devient une tâche que je numérote automatiquement en lien avec le N° d'action.
Et naturellement, si il existe déjà une tache sous cette action, lui affecter un numéro incrémenté de 1.
Ex : N° Action = 1; N° Tâche existante de l'action N° 1 = 1.T1, N° de la nouvelle tâche de l'action N° 1 = 1.T2.
Cette macro fonctionnait parfaitement jusqu'à ce que nous changions de version Office (2013 64bits) et depuis j'ai le fatidique message Projet ou bibliothèque introuvable, même en mode de compatibilité
Ci dessous le bout de code que j'ai isolé pour tester les différents résultats et qui me pose problème
Admettons l'Action 2 en A5 et la tache 2.T51 en A6
Option Explicit
Sub Macro1()
Dim a_numAction As String
Dim a_Taille As Long
Dim b_numAction As String
Dim b_Taille As Long
Dim c_Taille As Long
a_numAction = Cells(5, 1).Value
a_Taille = Len(a_numAction) + 2 ' me définie le nb de caractère dans A5 et ajoute 2 pour pouvoir intégrer .T au n° de la nouvelle tâche
b_numAction = Cells(6, 1).Value
b_Taille = Len(b_numAction) ' me définie le nb de caractère dans A6
c_Taille = b_Taille - a_Taille
Worksheets("Feuil1").Cells(5, 2).Value = a_numAction => me place correctement 2 en B5
Worksheets("Feuil1").Cells(5, 3).Value = a_Taille => me place correctement 3 en C5
Worksheets("Feuil1").Cells(5, 4).Value = b_numAction => me place correctement 2.T51 en D5
Worksheets("Feuil1").Cells(5, 5).Value = b_Taille => me place correctement 5 en E5
Worksheets("Feuil1").Cells(5, 6).Value = c_Taille => me place correctement 2 en F5
Worksheets("Feuil1").Cells(5, 7).Value = Right(b_numAction, b_Taille) => plantage!!!
End Sub
L'anomalie pointe sur le Right sur la dernière ligne
j'ai essayer de passer par un Mid ce qui me permettrait de me passer d'un certain nombre de déclaration, mais même punition
j'ai essayé de changer les arguments String, Long mais toujours la même chose...
Une piste?
Il ya bien longtemps que je n'ai pas fait de VBA et même si certains automatismes reviennent vite, je bloque sur un bout de ce que je veux faire.
J'ai un tableau avec plusieurs lignes ( plan d'action) et je doiss insérer des lignes sous une action lorsque je clique sur une case donnée. Cette ligne insérée devient une tâche que je numérote automatiquement en lien avec le N° d'action.
Et naturellement, si il existe déjà une tache sous cette action, lui affecter un numéro incrémenté de 1.
Ex : N° Action = 1; N° Tâche existante de l'action N° 1 = 1.T1, N° de la nouvelle tâche de l'action N° 1 = 1.T2.
Cette macro fonctionnait parfaitement jusqu'à ce que nous changions de version Office (2013 64bits) et depuis j'ai le fatidique message Projet ou bibliothèque introuvable, même en mode de compatibilité
Ci dessous le bout de code que j'ai isolé pour tester les différents résultats et qui me pose problème
Admettons l'Action 2 en A5 et la tache 2.T51 en A6
Option Explicit
Sub Macro1()
Dim a_numAction As String
Dim a_Taille As Long
Dim b_numAction As String
Dim b_Taille As Long
Dim c_Taille As Long
a_numAction = Cells(5, 1).Value
a_Taille = Len(a_numAction) + 2 ' me définie le nb de caractère dans A5 et ajoute 2 pour pouvoir intégrer .T au n° de la nouvelle tâche
b_numAction = Cells(6, 1).Value
b_Taille = Len(b_numAction) ' me définie le nb de caractère dans A6
c_Taille = b_Taille - a_Taille
Worksheets("Feuil1").Cells(5, 2).Value = a_numAction => me place correctement 2 en B5
Worksheets("Feuil1").Cells(5, 3).Value = a_Taille => me place correctement 3 en C5
Worksheets("Feuil1").Cells(5, 4).Value = b_numAction => me place correctement 2.T51 en D5
Worksheets("Feuil1").Cells(5, 5).Value = b_Taille => me place correctement 5 en E5
Worksheets("Feuil1").Cells(5, 6).Value = c_Taille => me place correctement 2 en F5
Worksheets("Feuil1").Cells(5, 7).Value = Right(b_numAction, b_Taille) => plantage!!!
End Sub
L'anomalie pointe sur le Right sur la dernière ligne
j'ai essayer de passer par un Mid ce qui me permettrait de me passer d'un certain nombre de déclaration, mais même punition
j'ai essayé de changer les arguments String, Long mais toujours la même chose...
Une piste?
A voir également:
- Plantage d'une macro qui fonctionnait : incrémentation n° d'action
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Plantage windows 10 - Guide
- Macro maker - Télécharger - Divers Utilitaires
2 réponses
Re
Bon ben je pense qu'il faille que je cherche ailleurs car en testant le bout de code présenté ici sur un autre classeur, cela fonctionne parfaitement!!!
Bon ben je pense qu'il faille que je cherche ailleurs car en testant le bout de code présenté ici sur un autre classeur, cela fonctionne parfaitement!!!