Excel - Copier le contenu de cellule active
Résolu/Fermé
A voir également:
- Cellule active excel formule
- Formule excel pour additionner plusieurs cellules - Guide
- Formule excel si et - Guide
- Formule excel moyenne - Guide
- Formule excel - Guide
- Excel cellule couleur si condition texte - Guide
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
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.
- 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.
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
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 -------
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 -------
3 déc. 2009 à 16:55
ç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
3 déc. 2009 à 16:59
20 mars 2013 à 21:06
22 déc. 2014 à 11:43
Merci et ce don doit être cultivé et dupliquer .
24 déc. 2015 à 14:58
Merci !