| ||||||||
Petit astucien | Bonjour à tous!!! Je l'enregistre dans une variable :
Merci à tous!!!
| |||||||
Publicité | ||||||||
| ||||||||
![]() ![]() | Bonjour, Précise ce que tu veux faire ! ? Classeur qui contient la procédure - Classeur nommé - Classeur qui accueille lien ... ?? Ta variable doit être niveau module, le cas échéant publique, pour récupérer sont contenu dans une autre procédure. | |||||||
Petit astucien | En fait, je fait un copier / coller de certaines cellules d'un premier classeur (celui qui est enregistré dans ma variable) vers un deuxième classeur Windows("Classeur1").Activate Range("D19").Select Application.CutCopyMode = False Selection.Copy Windows("Classeur2").Activate Range("B32").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Windows("Classeur1").Activate Application.CutCopyMode = False Range("D11").Select Selection.Copy Windows("Classeur2").Activate Range("C32").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False etc...... | |||||||
![]() ![]() | Ça du code enregistré, qui mériterait d'être réécrit, mais sans rapport avec un quelconque lien hypertexte ? | |||||||
Petit astucien | j'ai utilisé l'enregistreur car je suis une truffe en vba ... | |||||||
![]() ![]() | Exemple de syntaxe : ActiveSheet.Hyperlinks.Add Range("C32"), "E:\Documents\Classeur1.xls" | |||||||
Petit astucien | ferrand a écrit : Déjà je progresse en comprenant la syntaxe. Quid de ma variable????? | |||||||
Petit astucien | Ca marche!!
Comme quoi les solutions simples ne sautent pas toujours aux yeux
Merci encore | |||||||
![]() ![]() |
Pour simplifier ton code enregistré, exemple : dans une séquence telle que : Windows("Classeur1").Activate VBA n'a nul besoin d'activer ou sélectionner pour mener à terme une action (sauf bien sûr si l'action est justement de sélectionner...). Au contraire, cela ralentit l'exécution. Ce code résulte du fait que c'est chaque mouvement de l'utilisateur qui est enregistré, et de surcroît l'enregistreur reproduit les valeurs par défaut des arguments, ce qui alourdit encore le code. Il suffit donc de : Workbooks("Classeur1.xls").Range("D19").Copy (NB- L'utilisation de l'objet Workbook est préférable à l'objet Window si la commande porte sur le contenu et non l'affichage dans la fenêtre ; "Application.CutCopyMode = False" sert à vider le Presse-papier, ici inutile puisque son contenu va être remplacé par la copie, et généralement inutile sauf avant fermeture pour inhiber le message demandant si l'on veut conserver ou non son contenu ; pour le collage en valeurs, un seul argument utile "Paste:=" qui n'a pas sa valeur par défaut, premier argument : on gagne donc à le fournir par position plutôt que le nommer.)
| |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | ||||||||||||||||||
|