Macro pour recopier une CelluleX vers une CelluleY sans passer par la procédure hab.

Cide

XLDnaute Nouveau
J’ai une feuille Excel où je suis souvent amené à recopier des cellules

Aussi plutôt que de faire
1) Clic Droit Copier
2) Clic Droit collé

Je souhaiterais avoir une macro qui me permettrait de faire la même chose en cliquant juste une fois sur la macro à copier, puis ensuite sur la cellule de destination.

Faire une macro pour recopier la cellule B4 en B7, c’est à la porté de tout le monde
Mais faire une macro pour recopier une CellueX vers une CelluleY ? c’est plus difficile !

Merci pour votre aide

A+
 

Pièces jointes

  • CopieCellulesXY.xlsm
    8.4 KB · Affichages: 34
  • CopieCellulesXY.xlsm
    8.4 KB · Affichages: 39
  • CopieCellulesXY.xlsm
    8.4 KB · Affichages: 37
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : Macro pour recopier une CelluleX vers une CelluleY sans passer par la procédure

Bonjour à tous,

Bienvenue sur XLD

Bonjour à toi aussi.
Il est de bon ton de dire Bonjour lorsque l'on arrive chez "quelqu'un"....


Tu souhaites un Ctrl+c pour lancer la macro.
Tu es donc à mi chemin du Ctrl+C et Ctrl+V.

Pourquoi faire une usine à gaz ?

A+ à tous
 

Cide

XLDnaute Nouveau
Re : Macro pour recopier une CelluleX vers une CelluleY sans passer par la procédure

Bonjour à tous

Bonjour à toi aussi.
Il est de bon ton de dire Bonjour lorsque l'on arrive chez "quelqu'un"....

Très effectivement, mais ce n'est qu'un oubli, car ce n'est pas du tout dans mon habitude
Pour vous en convaincre, vous pourrez remarquer que j'ai dit "A plus"
Les gens impolis qui ne disent pas bonjour, ne disent pas non plus en-revoir !
Mais je m'excuse fortement pour cet oubli.

Je signale que j'ai même dit aussi
Merci pour votre aide
Là aussi les gens impolis n'emploient guère cette phrase !

Revenons à ma macro
Je ne pense pas personnellement qu'une macro pour faire ce que je veux faire fasse de mon fichier une usine à gaz
Par contre comme je l'ai dit
je suis souvent amené à recopier des cellules
Et à la force de faire Ctrl C Ctrl V c'est la touche Ctrl de mon clavier qui lâche
Cela fait déjà mon 3ème clavier

Je ne cherche pas une macro pour le plaisir d'avoir une macro
C'est que cette macro me serait très utile pour l'utilisation de mon fichier.
Donc si il y a une personne qui est prête à m'aider à la réaliser
je la remercie d'avance

A+
 

ROGER2327

XLDnaute Barbatruc
Re : Macro pour recopier une CelluleX vers une CelluleY sans passer par la procédure

Bonjour à tous.


Une proposition dans le classeur joint.
Testez soigneusement et précautionneusement, à vos risques et périls, sans garantie, ni du gouvernement, ni de moi-même : personnellement, je ne suis pas certain que j'utiliserais une telle méthode en production...


Bonne nuit.


ℝOGER2327
#7440


Samedi 7 Gidouille 141 (Saint Bébé Toutout, évangéliste - fête Suprême Quarte)
3 Messidor An CCXXII, 9,6561h - oignon
2014-W25-6T23:10:28Z
 

Pièces jointes

  • CopieCellulesXY.xlsm
    16.8 KB · Affichages: 46
  • CopieCellulesXY.xlsm
    16.8 KB · Affichages: 53
  • CopieCellulesXY.xlsm
    16.8 KB · Affichages: 52

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Macro pour recopier une CelluleX vers une CelluleY sans passer par la procédure

Bonjour Cide, JCGL, ROGER2327,

Un autre essai pour le fun basé sur une fenêtre jaillissante et baladeuse.

Mode d'emploi:

1) tapez Ctrl+o (lettre O) pour faire apparaître la fenêtre.

2) sélectionner la zone à recopier:
soit une cellule
soit une plage de cellules contigües


3) cliquer dans la fenêtre sur le bouton "Cop"
le bouton "Cop" passe au vert​
la zone à copier est entourée de pointillés rouges


4) chaque fois que l'on clique-droit sur une cellule de la feuille ou d'une autre feuille, la zone délimitée en pointillés rouges est copiée vers la cellule où on a cliqué droit.


5) pour réinitialiser la zone à copier et par conséquent récupérer aussi l'action ordinaire du clique-droit, cliquer sur le bouton "X" de la fenêtre.

Edit: préférer la version v2 ici
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Macro pour recopier une CelluleX vers une CelluleY sans passer par la procédure

Bonjour à tous,

Je n'avais pas testé le fichier à l'ouverture. La version v2 outrepasse l'erreur au moment de l'ouverture.
 

Pièces jointes

  • Cide-Copier-coller v2.xlsm
    29.9 KB · Affichages: 29

Cide

XLDnaute Nouveau
Re : Macro pour recopier une CelluleX vers une CelluleY sans passer par la procédure

Bonjour Roger2327, Mapomme, à Tous

Merci pour votre aide

Roger2327 : Cette macro en 7 lignes n’est vraiment pas lourde !
Cela correspond à ce que cherche

personnellement, je ne suis pas certain que j'utiliserais une telle méthode en production...
C'est vrais que à y regarder de près, le risque d'erreur est important !
Pourrait_on déjà pour restreindre ce risque délimiter la zone ?
Les cellules qui sont éventuellement à recopier sont toutes dans des colonnes spécifiques (Colonne N:AB)
Je ne vois pas dans la macro ou se joue le fait d'appuyer sur la touche contrôle pour valider la copie ???
Pour réduire ce risque encore, plutôt que d'appuyer sur la touche contrôle, serait-il possible d'appuyer sur un bouton ?

Merci



Mapomme ; voila une macro beaucoup sophistiquée et aussi très sûre
Mais aussi fatalement plus longue à manipuler
Comme je l'ai dit, je vais utiliser cette macro très souvent
D'autre part, je ne vais jamais procéder à 2 copies consécutives
Même si la macro deviendra moins complète, serait-il possible de la réduire comme ceci ?

1) Le lance la macro "Ctrl O"
2) Je clique sur la cellule à recopier (exemple N4)
3) Je clique droit sur l'emplacement ou je souhaite recopier la cellule C4 (Exemple M6)
et je sort de la macro juste après avoir fait ce clic droit

Merci

PS Mapomme
Je vois que tu as mis une nouvelle version pendant que je répondais
Personnellement je n'ai pas trouvé d'erreur dans la 1ère

A+
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Macro pour recopier une CelluleX vers une CelluleY sans passer par la procédure

Bonjour Cide, JCGL, ROGER2327, à tous,

1) [...] Je lance la macro "Ctrl O"
2) Je clique sur la cellule à recopier (exemple N4)
3) Je clique droit sur l'emplacement ou je souhaite recopier la cellule C4 (Exemple M6)
et je sort de la macro juste après avoir fait ce clic droit [...]

Une nouvelle version v4 sans doute plus pratique et certainement plus simple. J'ai supposé qu'on ne copie qu'une seule cellule, qu'on ne colle la cellule copiée que sur une seule cellule.

"Ctrl O" active ou désactive le copier/coller par clique-droit. Quand le copier/coller par clique-droit est inhibé, on retrouve le comportement normal du clique-droit.

Quand le copier/coller par clique-droit est activé:
  • Un clique-droit sur une cellule la copie et la met en réserve.
  • Un autre clique-droit sur une cellule y colle la cellule mise en réserve.
  • On alterne ces deux actions.

La barre de statut (en bas à gauche) indique la prochaine action pour le prochain clique-droit.

Le code dans MODmapomme :
VB:
Public CelluleChoisie As Range
Public CliqueDroitCopierColler As Boolean
Public InitDisplayStatusBar
Public StatusBarCourant

Sub ActifInactif()
  If CliqueDroitCopierColler Then
    'desactiver
    CliqueDroitCopierColler = Not CliqueDroitCopierColler
    Set CelluleChoisie = Nothing
    Application.StatusBar = False
  Else
    'activer
    CliqueDroitCopierColler = Not CliqueDroitCopierColler
    Set CelluleChoisie = Nothing
    Application.StatusBar = "Copier/clique-droit Actif - sélectionner"
  End If
End Sub

Le code dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
  InitDisplayStatusBar = Application.DisplayStatusBar
  ActifInactif
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Application.DisplayStatusBar = InitDisplayStatusBar
End Sub

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
  If CliqueDroitCopierColler Then
    If CelluleChoisie Is Nothing Then
      Set CelluleChoisie = ActiveCell
      Application.StatusBar = "Copier/clique-droit Actif - coller"
      Cancel = True
    Else
      CelluleChoisie.Copy ActiveCell
      Set CelluleChoisie = Nothing
      Application.StatusBar = "Copier/clique-droit Actif - sélectionner"
      Cancel = True
    End If
  Else
    Application.StatusBar = False
  End If
End Sub

Nota: le code devrait fonctionner pour toutes les feuilles de calcul et on doit pouvoir copier une cellule d'une feuille pour la coller dans une autre.
 

Pièces jointes

  • Cide-Copier-coller v4.0.xlsm
    25.8 KB · Affichages: 34
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Macro pour recopier une CelluleX vers une CelluleY sans passer par la procédure

Bonjour à tous.


Je n'ai pas encore pris le temps de regarder les travaux de mapomme. Je reviens seulement pour proposer un début de sécurisation de ma proposition initiale.
Voir le classeur joint pour les détails.​


Bon dimanche.


ℝOGER2327
#7441


Dimanche 8 Gidouille 141 (Sainte Boudouille, bayadère - fête Suprême Tierce)
4 Messidor An CCXXII, 4,3327h - véronique
2014-W25-7T10:23:54Z
 

Pièces jointes

  • CopieCellulesXY.xlsm
    19.7 KB · Affichages: 33
  • CopieCellulesXY.xlsm
    19.7 KB · Affichages: 43
  • CopieCellulesXY.xlsm
    19.7 KB · Affichages: 41

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Macro pour recopier une CelluleX vers une CelluleY sans passer par la procédure

(re)Bonjour Cide, JCGL, ROGER2327, à tous,

Une version légèrement améliorée qui rend le contrôle de la barre de statut à Excel quand on referme le classeur ou bien quand on en active un autre.

[...] Je n'ai pas encore pris le temps de regarder les travaux de mapomme. [...]
Je m'en vais faire de même pour les travaux de ta pomme, ROGER2327 :rolleyes:
 

Pièces jointes

  • Cide-Copier-coller v4.1.xlsm
    25.7 KB · Affichages: 28
Dernière édition:

Cide

XLDnaute Nouveau
Re : Macro pour recopier une CelluleX vers une CelluleY sans passer par la procédure

Bonjour Roger2327, Mapomme, à Tous

Mapomme : je viens d'essayer cette nouvelle solution qui répond à ce que je cherchais et qui est effectivement plus simple

J'ai supposé qu'on ne copie qu'une seule cellule, qu'on ne colle la cellule copiée que sur une seule cellule.
C'est exactement ce que je souhaite faire.

Une chose me rendrait encore la tache plus simple si elle est possible bien sûr ?
J'ai besoin de mon clic droit dans les autres colonnes
(autres colonnes que les colonnes N:AB, où j'ai besoin de copier ces cellules comme je le disais ce matin à Roger)
De ce fait si on pouvait lier l'action de la macro uniquement sur ces colonnes N:AB, cela m'éviterait de basculer entre les 2 modes à l'aide de "Ctrl O".


Je m'en vais maintenant aller regarder la nouvelle solution de Roger

A+
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Macro pour recopier une CelluleX vers une CelluleY sans passer par la procédure

Re Cide,
[...] Une chose me rendrait encore la tache plus simple si elle est possible bien sûr ?
J'ai besoin de mon clic droit dans les autres colonnes
(autres colonnes que les colonnes N:AB, où j'ai besoin de copier ces cellules comme je le disais ce matin à Roger)
De ce fait si on pouvait lier l'action de la macro uniquement sur ces colonnes N:AB, cela m'éviterait de basculer entre les 2 modes à l'aide de "Ctrl O".

Un essai dans le fichier joint. Le copier/Coller par clique-droit ne devrait fonctionner que dans la plage N:AB.

Attention! Mes propositions, contrairement à la dernière de ROGER2327, ne sont pas sécurisées!
 

Pièces jointes

  • Cide-Copier-coller v4.2.xlsm
    26.8 KB · Affichages: 28

ROGER2327

XLDnaute Barbatruc
Re : Macro pour recopier une CelluleX vers une CelluleY sans passer par la procédure

Suite... et re-bonjour...


J'ai oublié de prendre en compte la limitation de l'action aux colonnes N à AB !
Je joins une version pour rétablir cet oubli.​


ℝOGER2327
#7442


Dimanche 8 Gidouille 141 (Sainte Boudouille, bayadère - fête Suprême Tierce)
4 Messidor An CCXXII, 6,6513h - véronique
2014-W25-7T15:57:47Z


Pièce jointe supprimée. (Elle apportait plus de problèmes qu'elle n'en résolvait.)
Voir le message #17 pour une tentative de solution.
 
Dernière édition:

Cide

XLDnaute Nouveau
Re : Macro pour recopier une CelluleX vers une CelluleY sans passer par la procédure

Bonsoir Mapomme, Roger, A tous

Merci Mapomme, avec cette version c'est plus sure et je ne suis pas obligé de jonglé avec "Ctrl O"

Mes propositions, contrairement à la dernière de ROGER2327, ne sont pas sécurisées!
Je ne sais pas ce que tu entends par là, mais je la trouve déjà pas mal sécurisée

Cependant j'ai remarqué que si par inadvertance on cliquait sur une cellule vide puis après sur une cellule pleine, on l’effaçait irrémédiablement
J'ai donc modifié
Code:
Set CelluleChoisie = Nothing
par
Code:
If CelluleChoisie.Value > 0 Then CelluleChoisie.Copy ActiveCell

Je me suis rendu compte également que si je cliquais pour la cellule de destination sur une cellule pleine je l'écrasait irrémédiablement

du coup j'ai mis
Code:
If CelluleChoisie.Value > 0 And ActiveCell = "" Then CelluleChoisie.Copy ActiveCell

Cela fonctionne bien, je ne peux plus copier par inadvertance une cellule vide sur une cellule pleine, ni écraser une cellule pleine
Mais mon code n'est pas bon car du coup le fonctionnement de la copie est aléatoire ???

Je continue avec la nouvelle version de Roger que je n'ai pas pu encore essayer et je reviens
 

ROGER2327

XLDnaute Barbatruc
Re : Macro pour recopier une CelluleX vers une CelluleY sans passer par la procédure

Suite...


Je supprime la proposition du message #13. Elle est vraiment défectueuse !​


Bonne nuit !


ℝOGER2327
#7445


Dimanche 8 Gidouille 141 (Sainte Boudouille, bayadère - fête Suprême Tierce)
4 Messidor An CCXXII, 9,3872h - véronique
2014-W25-7T22:31:45Z
 

Discussions similaires