Excel - Copier le contenu de cellule active [Résolu/Fermé]

Signaler
-
 anonymike -
Bonjour,

je suis débutant avec excel et après quelques jours de recherche (je vous rassure, pas à temps complet), je me décide à vous exposer mon problème...

J'ai besoin d'afficher le contenu de la cellule active dans une autre cellule bien définie. C'est à dire que peu importe où je clique sur ma feuille excel, le contenu de cette cellule sélectionnée doit apparaître dans mon autre cellule.

J'ai bien essayé avec la fonction CELLULE("contenu";K12) mais cela ne me donne que le contenu de la cellule K12.

Dans la fonction CELLULE, est-il possible de remplacer K12 par quelque chose faisant référence à la cellule active?

Si non, y-a-t'il une fonction qui pourrait solutionner mon problème?

Si non, j'imagine que c'est possible avec une macro, mais n'y connaissant rien, si c'est possible d'avoir le code...

Merci d'avance...


Noibeu

2 réponses

Messages postés
1271
Date d'inscription
jeudi 3 août 2006
Statut
Membre
Dernière intervention
16 février 2010
102
Alors voici une solution, pas à pas. Dans Excel :
- clique sur le menu Outils, puis sur Macro et dans la liste qui apparaît, sur "Visual Basic Editor",
- dans l'explorateur de projets VBAProject à gauche de l'écran, tu as tes différentes feuilles de ton classeur Excel. Prenons par exemple la feuille intitulée Feuil1 dans Microsoft Excel Objects. Double-clique sur "Feuil1 (feuil1)"
- une page de code vierge s'ouvre alors devant toi. Juste en haut de celle-ci, tu as marqué dans une liste déroulante "Général". Clique sur ce dernier et choisis plutôt "Worksheet". La liste déroulante de droite s'est alors mise à jour : ouvre-la et choisis "SelectionChange". SelectionChange est en fait une macro qui s'exécute à chaque fois que tu changes de cellule active dans ta feuille Excel. Tu n'as plus qu'à y intégrer le code pour copier le contenu de la cellule active dans chaque nouvelle cellule où tu cliqueras.
- dans la nouvelle page, tu as le contenu suivant :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub


Private Sub etc. est l'entête/le nom/le début de ta macro et End Sub indique la fin de celle-ci. Tout le contenu de ta macro est donc à écrire entre cet entête et le End Sub.

- pour en venir à l'instruction de copie de cellule, la cellule active se dit ActiveCell en VBA Excel. La valeur contenue dans cette cellule se dit ActiveCell.Value. Une cellule quelconque en Excel s'écrit Cells(ligne,colonne), sa valeur étant Cells(ligne,colonne).Value.
Donc, si par exemple tu veux copier le contenu de la cellule A1,B1 dans une cellule sur laquelle tu as cliqué (et qui devient du coup active), voici l'instruction à insérer dans le corps de la macro :
ActiveCell.Value = Cells(1, 1).Value

Au final ta macro sera comme suit :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveCell.Value = Cells(1, 1).Value
End Sub


Ensuite sauvegarde la macro, puis fais un test en écrivant ce que tu veux dans la cellule A1,B1, en validant, puis en cliquant n'importe où ailleurs sur la feuille. Puis je te laisse adapter la cellule que tu souhaites copier ;-)

Voilà, j'espère t'avoir aidé. Si ce n'est pas exactement ce que tu recherchais, n'hésite pas à me corriger.
12
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 64225 internautes nous ont dit merci ce mois-ci

Messages postés
1271
Date d'inscription
jeudi 3 août 2006
Statut
Membre
Dernière intervention
16 février 2010
102 > Noibeu
De rien ;-) N'oublie pas de cocher "Résolu" au-dessus de ton premier post !
Il y a des gens qui savent expliquer et qui en prennent le temps...Bravo et merci beaucoup

PourApprendre : Bravo à PtiDavid car en lisant uniquement tout est parfaitement clair.
Merci et ce don doit être cultivé et dupliquer .
Messages postés
379
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
1 juillet 2020
8
Même des années après ça sert encore.
Merci !
Je confirme que même, pratiquement 10 ans après, ça fonctionne toujours. Lol. merci ptdavid
Messages postés
379
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
1 juillet 2020
8
Bonjour la communauté.

Pardon de déterrer ce sujet un peu poussiéreux qui reste toutefois d'actualité.

Dans le même genre, j'aurais besoin de réaliser une simple copie de l'ActiveCell dans le presse-papier (pour aller le coller ailleurs).
De plus, j'aurais besoin de limiter cette fonction aux cellules B3:B20 sur les feuilles "Soudure" et "Collage".

J'en suis là :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ("B3:B20")
Then Range.ActiveCell.Value.Select
Selection.Copy
End Sub

Puis-je vous demander un coup de main ?

Merci d'avance !

------------Sujet déplacé vers nouveau post -------