Ajouter le contenu du Presse-papier aux cellules actives

Bonjour le Forum !

J’utilise pas mal de boutons prédéfinis qui ajoutent une valeur immuable au contenu des cellules, ex :

ActiveCell = ActiveCell & " xxx"

Pour assouplir et amplifier ce système, j’aimerais pouvoir « ajouter » le contenu du presse-papier aux cellules actives.

Exemples :

1/ je copie une cellule contenant le mot « toto ». Je sélectionne d'autres cellules (sélection discontinue si possible). Je lance la macro. Le mot « toto » est « ajouté » au contenu déjà présent dans les cellules sélectionnées :

si une cellule contenait « titi » avant l’exécution de la macro, elle devient « tititoto »

2/ dito, mais le texte « toto » n’est pas la valeur d’une cellule entière, c'est une chaîne de caractères copiée dans une cellule, ou dans une autre application qu’Excel

En revanche, je suis bien incapable de concevoir le code qui ferait ça…

Quelqu’un pourrait-il m’aider ?

Merci !!!

PS : si c’est trop compliqué d’écrire une macro qui gère les 2 fonctionnements, c’est surtout le 2ème qui m’intéresse.

Bonjour

Essaie ce code :

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

    ActiveSheet.Paste
End Sub

Si tu copies une cellules entière, tu peux avec un clic droit la coller dans une sélection de cellules discontinues.

Mais si tu copies une partie d'une cellule, tu ne peux la coller que dans une seule cellule.

Bye :

Merci pour ta réponse super-rapide.

Je ne sais pas utiliser ton code...

J'ai successivement tenté de le coller dans le code de la feuille, dans un module, dans ThisWorkbook, mais ça ne me permet pas de la lancer...

(tu l'auras compris, je ne suis pas un as du VBA)

Il faut le coller dans la feuille VBA/

Exemple :

16classeur1-v1.xlsm (13.14 Ko)

Ok ?

Bye !

Re-merci pour ta reréponse rerapide.

J'obtiens un résultat, mais pas celui que j'attendais : au lieu d' "ajouter" le contenu du presse-papiers aux cellules actives, ça les remplace.

Exemple :

1/ je copie une cellule contenant "toto"

2/ je sélectionne une cellule contenant "titi"

3/ je clique-droit → la cellule devient "toto" au lieu de devenir "tititoto"

Ou alors j'ai mal compris un truc.

(cela dit, si c'est possible, je préfère lancer l'exécution la macro avec un bouton ou un raccourci-clavier plutôt qu'avec un clic-droit)

En tous cas, merci pour ton aide.

A la main, tu copies toto, tu double-cliques sur titi pour l'éditer, tu positionnes le curseur à la fin et tu peux coller toto à la suite.

En VBA, il est plus simple de concaténer les deux éléments.

Bon dimanche

Alors, essaie cela, un peu tiré par les cheveux mais ... à tester.

Ne marche que si on copie dans la barre de formules, tout ou partie du contenu.

Collage toujours avec le clic droit.

Bye !

16classeur2-v.xlsm (14.73 Ko)

Ça marche en effet, merci beaucoup !!!

Y a-t-il un moyen pour que ça marche dans toutes les feuilles ?

Petit problème quand même : la macro monopolise l'usage du clic-droit, et empêche de l'utiliser dans son fonctionnement habituel.

Y a-t-il un moyen de contourner ça ?

Sinon, je m'en contenterai, c'est déjà une amélioration pour moi.

gloub a écrit :

Y a-t-il un moyen pour que ça marche dans toutes les feuilles ?

En la mettant dans la feuille VBA de ThisWorkbook , et en changeant son nom.

la macro monopolise l'usage du clic-droit, et empêche de l'utiliser dans son fonctionnement habituel.

Y a-t-il un moyen de contourner ça ?

En adaptant la macro pour la mettre dans un module et en l'actionnant avec un bouton, peut-être ?

Voir nouvelles versions :

23classeur3-v.xlsm (17.21 Ko)

Bye !

Merci beaucoup gmb d'avoir persévéré à m'aider : c'est parfait !

(message personnel à Bill Gates) : Microsoft devrait inclure cette fonction en base dans Excel !

Cerise sur le gâteau : si quelqu'un sait comment faire pour faire fonctionner cette macro (ou une autre) de façon que ce soit le contenu d'une cellule entière (ou des données copiées dans une autre application) qui se concatène (et non qqch copié dans la barre de formules), ça me serait utile, mais comme ça c'est déjà génial !!!

si quelqu'un sait comment faire pour faire fonctionner cette macro (ou une autre)

Une autre oui, avec un autre bouton :

Bye !

TOTAL RESPECT !!!

Merci beaucoup, et bravo !!!!

Edit : euh, en fait, le contenu du presse-papiers se colle avant au lieu de se coller après...

J'ai donc bidouillé le code et remplacé :

        c.Value = c.Value & " " & v

par

        c.Value = v & " " & c.Value

Et bizarrement, ça marche !

Rechercher des sujets similaires à "ajouter contenu presse papier actives"