Macro un peu plus lente

Résolu
achgel Messages postés 113 Statut Membre -  
achgel Messages postés 113 Statut Membre -
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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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. achgel Messages postés 113 Statut Membre 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. achgel Messages postés 113 Statut Membre 1
       
      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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > achgel Messages postés 113 Statut Membre
       
      Bonjour
      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. achgel Messages postés 113 Statut Membre 1
       
      Bonjour michei_m,

      j'ai suivi votre conseille il marche parfaitement bien

      Merci beaucoup
      0
    5. achgel Messages postés 113 Statut Membre 1
       
      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
  3. ThauTheme Messages postés 1564 Statut Membre 160
     
    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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour,

      ????
      j'ai mis un ou des select ?
      0
      1. ThauTheme Messages postés 1564 Statut Membre 160 > michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonjour le fil, bonjour le forum,

        Mais cette remarque ne s'adressait pas à toi, bien sûr !... Regarde le premier code d'Achgel...
        0
    2. achgel Messages postés 113 Statut Membre 1
       
      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