Pertes propriétés Active X lorsque copier-coller - VB/VBA/VBS - Programmation
Marsh Posté le 11-04-2013 à 22:33:02
Tu as déjà posé cette question sur un autre forum, donc inutile de répondre ici …
Marsh Posté le 12-04-2013 à 09:02:01
Bonjour Marc L,
Sauf si la réponse est différente ou si tu sais répondre au bug qui se produit quand j'exécute le code proposé sur l'autre forum?
Code proposé :
Code :
|
Bug lors de l'exécution :
Citation : Erreur de compilation: |
Et dans le code il me surligne
Code :
|
Merci!
Marsh Posté le 12-04-2013 à 10:24:49
Le message est clair … Et puis tu as indiqué avoir la solution sur l'autre forum …
Marsh Posté le 12-04-2013 à 11:34:50
Oui, cela semble fonctionner
Code :
|
Mais l'erreur survient tout de même de temps en temps (bug d'excel?). Embêtant, peut-être qu'excel est poussé trop loin et il serait mieux de passer sur Access...
Marsh Posté le 12-04-2013 à 11:57:51
Disons qu'il y a une confusion de genre …
En fait au moment de l'erreur, il faut vérifier à quoi correspond chaque variable / objet …
Peut-être qu'en précédant chaque référence de feuille avec le classeur la contenant, …
Si c'est le classeur conteneur de la macro : ThisWorkbook.Worksheets( …
Sinon en terme de conception, un UserForm commun aurait été moins consommateur de ressources, non ?
Marsh Posté le 12-04-2013 à 12:08:32
Même si cela ne change rien au problème, quand une feuille est copiée, elle est automatiquement activée
(en tout cas sur ma version) …
Donc la ligne 12 peut se réduire ainsi : Set NewSheet = ActiveSheet
Et donc la ligne 14 ne sert à rien …
Dès le départ, après la copie, j'essaierai donc avec un With ActiveSheet …
Ce qui n'empêche pas de qualifier le classeur de chaque référence à une feuille, juste pour blinder.
Mais pour ce genre de problème, il faut être devant l'ordinateur pour comprendre ce qu'il se passe …
Marsh Posté le 11-04-2013 à 16:51:48
Bonjour à tous,
Je me tourne vers vous pour un problème assez spécial que je n'arrive pas à résoudre bien qu'ayant fait moult recherches sur les forums...
Le code suivant me permet de créer une nouvelle feuille excel automatiquement qui copie le contenu d'une autre feuille et initialise les contrôles. La nouvelle feuille prend alors le nom "FP_Ld" & I ; I étant chiffre qui change en fonction du nombre de feuille (première feuille créée = FP_Ld1, 2e feuille crée = FP_Ld2,...).
Ce code fonctionne très bien pour la première feuille créée. Pour ce qui est de la 2e, le début du script fonctionne bien (copie-colle la feuil8 dans une nouvelle feuille nommée FP_Ld2) mais bug à partir de mon contrôle Optionbutton4 avec comme message d'erreur :
Erreur d'exécution '438' :
Propriété ou méthode d'exécution non gérée par cet objet
En me rendant sur FP_Ld2, lorsque je clique droit sur l'Optionbutton en question, je me rends compte que je n'ai plus les onglets "Priorités" et "Visualiser le code" comme dans les contrôles Active X mais bien "Affecter une macro" comme dans les contrôles de formulaires... J'en déduis qu'il y a eu ce changement mais je ne comprends pas pourquoi et cela vaut pour tous les contrôles après cet optionbutton4! Mais ceux d'avant (Label1,2,3 et Optionbutton 1,2,3) restent Active X et fonctionnent à merveille....
Ce n'est pas tout, lorsque je crée tout de même une 3e feuille ("FP_Ld3" ), le même bug apparait mais à partir de Label1... Donc tous mes contrôles sont passés de Active X à formulaires...
Dans ma feuille8 ce sont pourtant bien des contrôles active X qui doivent être copier-coller (et ça marche dans le premier copier-coller...).
Ce problème me perturbe fortement car il est à la base du formulaire que je veux créer...
Je vous remercie d'avance pour votre aide, quelle qu’elle soit!