Excel - Copier le contenu de cellule active
Résolu
Noibeu
-
anonymike -
anonymike -
A voir également:
- Copier cellule excel
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Proteger cellule excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Word et excel gratuit - Guide
2 réponses
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.
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 -------
ç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
Merci et ce don doit être cultivé et dupliquer .
Merci !