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

  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
    0
    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


      0
      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
        0
      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
        0
      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
        0
      4. Bonjour michei_m,

        j'ai suivi votre conseille il marche parfaitement bien

        Merci beaucoup
        0
      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
        0
    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.
      0
      1. Contributeur
        Bonjour,

        ????
        j'ai mis un ou des select ?
        0
      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...
        0
      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
        0