Copies de cellules optimisées

  • Initiateur de la discussion Initiateur de la discussion magoo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

magoo

Guest
Bonjour à tous,

J'ai besoin de copier les cellules d'une feuille, ou je fais mes calculs, dans une autre ou je n'affiche que les résultats (sans formule).

Je voulais savoir si il y avait des solutions pour optimiser le code suivant qui correspond à la copie de une cellule dans mon formulaire alors que j'en ai une cinquantaine

Sub CopieCellule()
'
Sheets("CalculeCompteContact").Select
Range("H8").Select
Selection.Copy

Sheets("Formulaire").Select
Range("G5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False

End Sub

Il y a sûrement plus simple
Merci à vous d'avance

Magoo
 
Bonjour, magoo, bonjour léa,

On n'a pas besoin de passer par des select ou des activate pour faire des copies de cellules. Essaye le code ci-dessous.

Sub CopieCellule()
  Sheets("CalculeCompteContact").Range("H8").Copy
  Sheets("Formulaire").Range("G5").PasteSpecial Paste:=xlPasteValues, _
  Operation:=xlNone, SkipBlanks :=False, Transpose:=False
End Sub


De plus si ta feuille active est la première, tu peux aussi de passer de Sheets("CalculeCompteContact"). sur la première instruction et laisser le Range directement.

Bonne fin de journée.

José
 
Bonjour José,

Absolument d'accord avec toi
Mais Magoo désire en plus d'optimiser son code, l'étendre à une "cinquantaine de cellules".
Voila pourquoi il serait peut-être intéressant de voir comment son disposeées ces fameuses 50 cellules afin d'intégrer ton bout de code dans une boucle ....

A+
Léa
 
Bonjour,

Pour copier la valeur d'une cellule, le code le plus optimisé que je connaisse ressemble à ça :
[G5] = [H8]
et d'une feuille à l'autre ça donnerait :
Sheets("Formulaire").[G5] = Sheets("CalculeCompteContact").[H8]

---------

Pour ce qui est de copier 50 cellulles, je suis d'accord, cela dépend de la forme de la zone de départ, et de celle d'arrivée

Pour l'instant on peut considérer que la sélection désigne les cellules à copier, et que le résultat sera collé sur des cellules contigues :

For Each c In Selection
Sheets("Formulaire").[G5].Offset(Lig, Col) = c
Lig = Lig + 1
'remplacer Lig par Col pour un déplacement horizontal
Next c

Ce qui continue à être 'optimisé'.

Mais attendons d'en savoir plus ;o))


A bientôt

Rai
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
661
Réponses
18
Affichages
445
Réponses
2
Affichages
352
Réponses
17
Affichages
1 K
Retour