Excel - Copier le contenu de cellule active

Résolu/Fermé
Noibeu - 3 déc. 2009 à 12:27
 anonymike - 1 avril 2019 à 02:37
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

ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104
3 déc. 2009 à 14:31
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 beaucoup Ptidavid,

ça fonctionne parfaitement!! Il y avait juste un petit pb, c'est qu'avec ce que tu m'as donné, le contenu de la cellule A1 allait dans la cellule active. Je voulais le contraire (que le contenu de la cellule active aille en A1).

Mais comme tu as été très clair et précis dans ton explication, ça n'a pas été dur de comprendre qu'au lieu de ActiveCell.Value = Cells(1, 1).Value, il fallait mettre Cells(1, 1).Value = ActiveCell.Value.

Merci encore d'avoir pris du temps pour me répondre et pour la clarté de tes explications!!


Noibeu
0
ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104 > Noibeu
3 déc. 2009 à 16:59
De rien ;-) N'oublie pas de cocher "Résolu" au-dessus de ton premier post !
0
Il y a des gens qui savent expliquer et qui en prennent le temps...Bravo et merci beaucoup
0
PourAprendre
22 déc. 2014 à 11:43
PourApprendre : Bravo à PtiDavid car en lisant uniquement tout est parfaitement clair.
Merci et ce don doit être cultivé et dupliquer .
0
touroul Messages postés 472 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 19 octobre 2024 16
24 déc. 2015 à 14:58
Même des années après ça sert encore.
Merci !
1
touroul Messages postés 472 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 19 octobre 2024 16
Modifié par touroul le 3/11/2014 à 11:11
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 -------
0