copier / coller avec liaison en VBA

  • Initiateur de la discussion Initiateur de la discussion Didier MAUCOTEL
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

Didier MAUCOTEL

Guest
Bonjour à tous,

Je vous soumets le problème suivant :

Private Sub Worksheet_FollowHyperlink (ByVal Target As Hyperlink)
x = 2
Worksheets("Feuil1").Range(Cells(x, 9), Cells(x, 9)).Copy
Worksheets("Feuil2").Select
Worksheets("Feuil2").Range("I1").Select
Worksheets("Feuil2").Paste
End Sub


Ces quelques lignes fonctionnent très bien (copie la valeur de la cellule I1 de la feuille 1 dans la cellule I1 de la feuille 2 quand le lien hypertexte est activé) mais je cherche quelque chose de plus puissant :

Je souhaiterais :
1 - que la valeur de x soit une variable égale au numéro de ligne de mon lien hypertexte dans la feuille 1 ;
2 - que le numéro de la feuille sélectionnée (la feuil2 dans l'exemple) soit également une variable égale à x ; (donc, si je sélectionne un lien hypertexte à la ligne 143 de la feuil1, alors x = 143 et j’ouvre la feuille 143).
3 - enfin, dernier problème, la fonction "Paste" ne me convient pas car mes cellules de la feuille 1 sont affectées de formules ; je souhaite copier uniquement la valeur et la mise en forme (texte, numérique, dates,...).
J 'ai essayé avec Consolidate, mais ....rien à faire !!

Merci beaucoup pour votre aide.

Mauco

(Au fait, pour les débutants il y a le site www.info-3000.com qui est sympa)
 
bonjour Didier

si j'ai bien compris tes trois demandes , tu peux essayer

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim x As Integer
x = Target.Range.Row
Worksheets("Feuil1").Range(Cells(x, 9), Cells(x, 9)).Copy
'Worksheets(x).Select 'en option (pas necessaire si c'est seulement pour coller les données)
Worksheets(x).Range("I1").PasteSpecial xlPasteFormats
Worksheets(x).Range("I1") = Worksheets("Feuil1").Range(Cells(x, 9), Cells(x, 9))
Application.CutCopyMode = False
End Sub


bonne soiree
MichelXld
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
38
Affichages
1 K
  • Question Question
Microsoft 365 Cpier/coller en VBA
Réponses
7
Affichages
727
Réponses
5
Affichages
649
Retour