XL 2010 Raccourci_Collage Valeur via VBA

Olivier34090

XLDnaute Nouveau
Bonjour,
Je souhaite créer un raccourci clavier via une macro permettant de coller une sélection déjà active depuis la cellule active.
Objectif : coller valeur depuis une cellule Excel sélectionnée à la souris les données copiées sur un site ou un autre fichier...

- La zone à coller valeur est déjà active/"copiée" après un CTRL+C ;
- La cellule depuis laquelle la zone dit être collée est déjà sélectionnée à la souris ;
=> A ce moment-là, activation de la macro Collage Spécial Valeur.

j'ai trouvé plusieurs forums évoquant une macro dans le même sens mais aucune restituant un résultat probant.
Je pense notamment du fait que chaque macro comporte en première partie la sélection de la zone à copier.

Ex :
Range("D1 : D10").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Une idée ? Merci !
Je ne souhaite pas utiliser le ALT+E, puis G puis V. Le collage doit pouvoir se faire en une seule action sélectionnant CTRL+MAJ+V par exemple.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Olivier, et bienvenu sur XLD,
On peut le faire via 3 macros.
1- A l'ouverture du fichier dérouter la touche ( moi j'ai choisit ² car souvent inutilisée ) avec dans Thisworkbook :
VB:
Private Sub Workbook_Open()
    ' A l'ouverture du fichier déroute la touche "²" pour lui faire éxécuter CollageValeur
    Application.OnKey "²", "CollageValeur"
End Sub
2- A la fermeture du fichier ne pas oublier de rétablir la touche avec dans Thisworkbook :
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ' A la fermeture du fichier rétablit la touche "²" pour un fonctionnement normal
     Application.OnKey "²", ""
End Sub
3- Le collage lui même avec cette macro :
Code:
Sub CollageValeur()
    On Error GoTo Fin
    ActiveCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Fin:
End Sub

NB : On peut évidemment changer la touche affectée, voir ce Lien .

Voir PJ.
 

Pièces jointes

  • CollerValeur.xlsm
    13.3 KB · Affichages: 6

Olivier34090

XLDnaute Nouveau
Merci beaucoup Sylvanu.
Malheureusement, je dois louper qqchose car cela ne fonctionne pas, la cellule de destination reste vide.
J'ai saisi dans une cellule =3+4, puis ai copié la valeur obtenue 7 via CTRL+C, me suis positionné sur une autre cellule et ai lancé la macro Sub CollageValeur() mais la cellule reste vide.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
J'ai refait quelques tests, et effectivement tout dépend de l'origine du "Copier".
Si ces données viennent d'XL alors ça marche. Si elles viennent d'autres part ( Internet, Office ... ) alors ça coince.
On peut modifier avec :
VB:
Sub CollageValeur()
    On Error GoTo Fin
    ' Si ça vient d'XL
    ActiveCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Exit Sub
Fin:
    On Error GoTo Fin2
    ' Si ça vient d'autre part
    ActiveCell.Select
    ActiveSheet.Paste
Fin2:
End Sub
Testez, et faites un retour. :)
 

Pièces jointes

  • CollerValeur.xlsm
    15.9 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Olivier,
Cela m'étonne car la macro est simple, et je ne vois pas comment elle peut ne pas marcher. Regardez ce GIF:
20220914_105515.gif

Avez vous fait le test sur ma PJ ou votre fichier ?
D'ailleurs un appui sur la touche "²" a le même effet que l'appui sur le bouton de ce GIF.
Qu'entendez vous par :
cela ne fonctionne pas toujours pas pour moi.
La cellule reste vide ?
 

Discussions similaires