• Initiateur de la discussion Initiateur de la discussion ananar
  • 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 !

A

ananar

Guest
Bonjour à toutes et à tous,

J'essaie d'optimiser une partie de mon code (qui fonctionne très bien actuellement) en supprimant les Select et Paste.
C'est plus court, ça ne provoque pas de mouvement de feuille et n'implique pas la sélection d'une feuille quand je parcours les cellules d'une autre.
Enfin, c'est ce que j'ai compris en parcourant le forum.

- Macro sélection des données [à partir de la celulle A3] pour copier / coller dans l'onglet [Données] à partir de la celulle A3

Code:
Sub maMacro1()
Derlign = Range("A65536").End(xlUp).Row
Range("A3:AD" & Derlign).Select
    Selection.Copy
    ThisWorkbook.Activate
    Sheets("Données").Select
    Range("A3").Select
    ActiveSheet.Paste
End Sub

Le code après simplification :

Code:
Sub maMacro1()
Range("A3:AD" & Cells(65536, 1).End(xlUp).Row).Copy _
ThisWorkbook.Sheets("Données").Cells(Cells(65536, 1).End(xlUp).Row + 1, 1)
End Sub

Les données sont bien copiées, mais pas à partir de la cellule A3 ...

Ci-dessous, les 2 autres macros que je souhaite simplifiée :

- Macro sélection des données [à partir de la celulle A3] pour copier / coller dans l'onglet [Données] à partir de la celulle la 1ère celulle vide dans la colonne A

Code:
Sub maMacro2()
Derlign = Range("A65536").End(xlUp).Row
Range("A3:AD" & Derlign).Select
    Selection.Copy
    ThisWorkbook.Activate
    Sheets("Données").Select
    Range("A3").End(xlDown).Offset(1, 0).Select
    ActiveSheet.Paste
End Sub

- Macro sélection des données [à partir de la celulle A1] pour copier / coller dans l'onglet [Image de SysRailData] à partir de la celulle A3

Code:
Sub maMacro3()
 Derlign = Range("A65536").End(xlUp).Row
Range("A1:AD" & Derlign).Select
    Selection.Copy
    ThisWorkbook.Activate
    Sheets("Image de SysRailData").Select
    Range("A1").Select
    ActiveSheet.Paste
End Sub

D'avance merci pour les réponses qui me parviendront.

Bien cordialement.

ananar
 
Re : Optimisation code

Bonjour ananar,

Tu peux simplifier ton 1er code comme suit :

Code:
Sub maMacro1()
ActiveSheet.Range("A3:AD" & UsedRange.Rows.Count + 2).Copy
ActiveSheet.Paste Destination:=Sheets("Données").Range("A3")
End Sub

Il ne reste plus qu'à l'adapter aux autres cas.

Espérant avoir répondu.

Cordialement.
 
- 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
3
Affichages
333
Réponses
5
Affichages
915
Réponses
10
Affichages
792
Retour