Execution macro qui bug
Résolu
supergenial
-
supergenial -
supergenial -
Bonjour,
Voilà je programme du VBA sous Excel 2003 pour mon stage et actuellement je rencontre un gros problème que je crains de ne pouvoir résoudre.
En effet, je crée une macro qui génère une macro par le biais du code :
With Workbooks(Fichier0).VBProject.VBComponents("Feuil4").CodeModule
.InsertLines 1, "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
.InsertLines 2, "If Not Application.UserName = ""XXX"" Or Application.UserName = ""XXX"" Then"
.InsertLines 3, "i = ActiveCell.Row"
.InsertLines 4, "ActiveSheet.Range(""AD"" & i).Select"
.InsertLines 5, "End If"
.InsertLines 6, "End Sub"
End With
Si je remplace la première ligne par "Sub nom()" ou n'importe quoi s'autre ça marche, mais avec le code "Private Sub Worksheet..." la macro fait bugué tout excel et quitte inopinément à chaque fois...
Que faire ? Est-ce un problème de mémoire d'ordinateur ?
Merci de votre aide
Voilà je programme du VBA sous Excel 2003 pour mon stage et actuellement je rencontre un gros problème que je crains de ne pouvoir résoudre.
En effet, je crée une macro qui génère une macro par le biais du code :
With Workbooks(Fichier0).VBProject.VBComponents("Feuil4").CodeModule
.InsertLines 1, "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
.InsertLines 2, "If Not Application.UserName = ""XXX"" Or Application.UserName = ""XXX"" Then"
.InsertLines 3, "i = ActiveCell.Row"
.InsertLines 4, "ActiveSheet.Range(""AD"" & i).Select"
.InsertLines 5, "End If"
.InsertLines 6, "End Sub"
End With
Si je remplace la première ligne par "Sub nom()" ou n'importe quoi s'autre ça marche, mais avec le code "Private Sub Worksheet..." la macro fait bugué tout excel et quitte inopinément à chaque fois...
Que faire ? Est-ce un problème de mémoire d'ordinateur ?
Merci de votre aide
A voir également:
- Execution macro qui bug
- 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
- Bug chromecast - Guide
- Iptv bug forum ✓ - Forum Box et Streaming vidéo
6 réponses
Bonjour,
Deux pistes,
1°) Contrôler le contenu de Fichier0, il doit contenir un nom de classeur MAIS AUSSI L'EXTENSION.
2°) Je pencherais plutôt pour.. Ton code DOIT être dans un module public et pas dans un module de feuille.
J'ai tester ton code et à part les remarques ci-dessus il fonctionne très bien.
A+
EDIT : 3°) Si tu à configurer Excel pour mettre "Option Explicit" tu doit employé une variable..
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Deux pistes,
1°) Contrôler le contenu de Fichier0, il doit contenir un nom de classeur MAIS AUSSI L'EXTENSION.
2°) Je pencherais plutôt pour.. Ton code DOIT être dans un module public et pas dans un module de feuille.
J'ai tester ton code et à part les remarques ci-dessus il fonctionne très bien.
A+
EDIT : 3°) Si tu à configurer Excel pour mettre "Option Explicit" tu doit employé une variable..
Dim Ligne as integer. With Workbooks(Fichier0).VBProject.VBComponents("Feuil4").CodeModule Ligne = .CountOfLines .InsertLines Ligne + 1, ....
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Merci pour ta réponse !
Malheureusement les pistes 1 et 3 se révèlent vaines.
Pour la 2e piste, je ne comprends pas... En effet le Private Sub Worksheet est censé être mis dans une feuille pour qu'il fonctionne... si on le met dans un module, il ne sait pas sur quelle feuille travailler ? ... je me trompe peut-être !
Merci encore pour ton aide !
Malheureusement les pistes 1 et 3 se révèlent vaines.
Pour la 2e piste, je ne comprends pas... En effet le Private Sub Worksheet est censé être mis dans une feuille pour qu'il fonctionne... si on le met dans un module, il ne sait pas sur quelle feuille travailler ? ... je me trompe peut-être !
Merci encore pour ton aide !
Bonjour,
en complément de ce que t'a dit lermite22, peux-tu vérifier au niveau des sécurités des macros?
Pour cela, tu cliques sur Outils/Macros/Sécurité
Dans le 2ème onglet "Éditeurs Approuvés", tu coches la case :
"Faire confiance au projet Visual basic", voire les 2 cases...
Peut-être?
Bon courage
en complément de ce que t'a dit lermite22, peux-tu vérifier au niveau des sécurités des macros?
Pour cela, tu cliques sur Outils/Macros/Sécurité
Dans le 2ème onglet "Éditeurs Approuvés", tu coches la case :
"Faire confiance au projet Visual basic", voire les 2 cases...
Peut-être?
Bon courage
Je dois cocher les cases à chaque fois que je lance la macro, donc en effet, ils sont cochés... mais merci pour ton aide :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je me suis probablement mal exprimé, c'est la macro qui crée la feuille et le code qui DOIT se trouver dans un module.
Pour le WorkSheets bien sûr c'est dans le module de la feuille.
A+
Pour le WorkSheets bien sûr c'est dans le module de la feuille.
A+