Macro un peu plus lente

Résolu/Fermé
achgel Messages postés 108 Date d'inscription mercredi 26 août 2009 Statut Membre Dernière intervention 25 octobre 2019 - 30 août 2016 à 00:00
achgel Messages postés 108 Date d'inscription mercredi 26 août 2009 Statut Membre Dernière intervention 25 octobre 2019 - 4 sept. 2016 à 13:53
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

A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 312
Modifié par michel_m le 30/08/2016 à 08:36
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 312
30 août 2016 à 09:14
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
achgel Messages postés 108 Date d'inscription mercredi 26 août 2009 Statut Membre Dernière intervention 25 octobre 2019 1
30 août 2016 à 12:25
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
achgel Messages postés 108 Date d'inscription mercredi 26 août 2009 Statut Membre Dernière intervention 25 octobre 2019 1
3 sept. 2016 à 01:21
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 312 > achgel Messages postés 108 Date d'inscription mercredi 26 août 2009 Statut Membre Dernière intervention 25 octobre 2019
3 sept. 2016 à 08:08
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
achgel Messages postés 108 Date d'inscription mercredi 26 août 2009 Statut Membre Dernière intervention 25 octobre 2019 1
3 sept. 2016 à 16:28
Bonjour michei_m,

j'ai suivi votre conseille il marche parfaitement bien

Merci beaucoup
0
achgel Messages postés 108 Date d'inscription mercredi 26 août 2009 Statut Membre Dernière intervention 25 octobre 2019 1
4 sept. 2016 à 05:02
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
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
3 sept. 2016 à 13:55
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 312
3 sept. 2016 à 14:07
Bonjour,

????
j'ai mis un ou des select ?
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
3 sept. 2016 à 14:12
Bonjour le fil, bonjour le forum,

Mais cette remarque ne s'adressait pas à toi, bien sûr !... Regarde le premier code d'Achgel...
0
achgel Messages postés 108 Date d'inscription mercredi 26 août 2009 Statut Membre Dernière intervention 25 octobre 2019 1
3 sept. 2016 à 17:01
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