Macro un peu plus lente

Résolu
Bonjour,

J'ai crée une Macro (Sub Ajout_Info) pour copier des information des cellules de la feuille Saisie-LSP pour les coller dans la Feuille L PS.
Mon problème c'est que je la trouve un peu lente
Je demande votre aide pour que cette Macro soit la plus simple et la plus rapide possible

Merci d'avance

--------------------------------------------------------------------------------------------------------------------
Sub Ajout_Info_LSP()
'
' Ajout_Info_LSP Macro
'

'
Sheets("L S P").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Sheets("Saisie-LSP").Select
Selection.Copy
Sheets("L S P").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("C6").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("C8").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("C2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("C10").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("D2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("C12").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("E2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("C14").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("F2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("C16").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("G2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("C18").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("H2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("C20").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("I2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("C22").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("J2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("C24").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("K2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("C26").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("L2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("C28").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("M2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll ToRight:=6
Sheets("Saisie-LSP").Select
Range("F4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("N2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("F6").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("O2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("F8").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("P2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("F10").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("Q2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("F12").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("R2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("F14").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("S2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("F16").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("T2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("F18").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("U2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("F20").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("V2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("F22").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("W2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("F24").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("X2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("F26").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("Y2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie-LSP").Select
Range("F28").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("L S P").Select
Range("Z2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("A:Z").Select
Range("Z1").Activate
Columns("A:Z").EntireColumn.AutoFit
Range("A1").Select
Sheets("Saisie-LSP").Select
Range("C4").Select
Application.CutCopyMode = False
End Sub

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour

    dans
    Sheets("L S P").Select 
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Sheets("Saisie-LSP").Select
    Selection.Copy


    quelles sont les adresses des cellules à copier ? est ce C4 ?

    déjà commence ta macro par

    Application.screenupdating=false
    qui fige le défilement de l'écran: rapidité et confort pour les yeux...

     Michel
    1. Contributeur
      en supposant qu'il s'agisse bien de C4
      macro un peu plus rapide et plus condensée

      Sub Ajout_Info_LSP()
      Dim Tablo_c, Tablo_f, Tablo_out, cptr As Byte, Cpt_out As Byte

      '---------initialisations
      Application.ScreenUpdating = False
      'mise en mémoire Ram daes éléments en "saisie lsp"
      With Sheets("Saisie-LSP")
      Tablo_c = Application.Transpose(.Range("C4:C28"))
      Tablo_f = Application.Transpose(.Range("F4:F28"))
      'tableau de sortie
      ReDim Tablo_out(1 To 26)
      End With

      '-------transfert des données
      For cptr = 1 To 26 Step 2
      Cpt_out = Cpt_out + 1
      Tablo_out(Cpt_out) = Tablo_c(cptr)
      Tablo_out(Cpt_out + 13) = Tablo_f(cptr)
      Next

      '------ restitution dans la feuille lsp
      With Sheets("L S P")
      .Range("A2").Resize(1, 26) = Tablo_out
      .Columns("A:Z").EntireColumn.AutoFit
      .Activate
      End With
      End Sub


      1. Bonjour michel_m,

        C’était vraiment très gentille de votre part
        Votre Macro fonctionne à merveille
        Elle est vraiment plus rapide que je ne l'ai pensé

        Merci Infiniment
      2. Bonsoir michel_m,

        Est ce que vous pouvez m'aider à changer la Macro
        de façon que la feuille ("L S P") soit toujours caché

        Merci
      3. Contributeur
        @achgelBonjour
        il suffit d'enlever "activate" à la fin du code

        With Sheets("L S P")
        .Range("A2").Resize(1, 26) = Tablo_out
        .Columns("A:Z").EntireColumn.AutoFit
        .ActivateSUPPRIMER CETTE LIGNE
        End With
      4. Bonjour michei_m,

        j'ai suivi votre conseille il marche parfaitement bien

        Merci beaucoup
      5. Bonjour michei_m,

        http://www.cjoint.com/c/FIecJ1HimQQ

        Je vous envoie le ficher (cjoint) que j'utilise pour enregistrer des (Inf) de la Feuille (Saisie-LSP) à la Feuille (L S P)

        Quand (L S P) est visible, je n'ai aucun problème avec l'enregistrement

        Mais puisque je voudrais CACHER la Feuille (L S P) il y a un un problème même si je supprime (.Activate)

        Sachant que j'ai ajouter les lignes 1 - 2 - 3 à la Macro, que vous m'avez envoyer, et cela pour sélectionner la première ligne de la Feuille (L S P) à chaque fois que je clique sur enregistrer

        Merci de me consacrer un peu de votre temps pour remédier à ce problème

        Cordialement
    2. Bonjour le fil, bonjour le forum,

      Je me permet d'intervenir dans ce fil, bien que Michel ait déjà tout dit/fait !...

      je conseille toujours d'éviter les Select dans un code car il ne font que ralentir l'exécution de celui-ci. Il n'est nullement besoin de Sélectionner quoi que ce soit pour faire une Copier/Coller il suffit juste de spécifier l'origine et la destination
      - Copie avec formats :
      Sheets("Feuil1").Range("A1").Copy Sheet("Feuil2").Range("B1")
      

      Copie la cellule A1 de l'onglet Feuil1 dans la cellule B1 de l'onglet Feuil2, avec les formats.

      - Copie sans formats
      Sheets("Feuil2").Range("B1").Value = Sheet("Feuil1").Range("A1").Value

      Récupère dans B1 de l'onglet Feuil2 la valeur de la cellule A1 de l'onglet Feuil1 sans les formats.
      1. Contributeur
        Bonjour,

        ????
        j'ai mis un ou des select ?
      2. @michel_mBonjour le fil, bonjour le forum,

        Mais cette remarque ne s'adressait pas à toi, bien sûr !... Regarde le premier code d'Achgel...
      3. Bonjour ThauTheme

        Devant des experts je ne peut pas me permettre d'intervenir dans les détailles des fonctions et propriétés des Macros.

        Merci pour l'enrichissement du débat