Macro... rapidité à améliorer
Résolu/Fermé
Anthonnyy
-
2 févr. 2013 à 18:51
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 3 févr. 2013 à 13:11
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 3 févr. 2013 à 13:11
A voir également:
- Macro... rapidité à améliorer
- Test rapidité pc - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro logiciel - Télécharger - Organisation
6 réponses
f894009
Messages postés
17229
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2025
1 712
Modifié par f894009 le 3/02/2013 à 09:38
Modifié par f894009 le 3/02/2013 à 09:38
Bonjour,
Que faites vous des lignes cachees ????????
Que faites vous des lignes cachees ????????
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
3 févr. 2013 à 11:34
3 févr. 2013 à 11:34
Bonjour,
regarde si ça va :
eric
regarde si ça va :
Sub mef_RPORDO() Dim c As Range, adr1 As String, lig As String, CalcStatus As Long lig = 5 Application.ScreenUpdating = False CalcStatus = Application.Calculation Application.Calculation = xlCalculationManual With [C4].Resize(Cells(Rows.Count, "C").End(xlUp).Row - 3) Set c = .Find("Livraisons", LookIn:=xlValues, lookat:=xlWhole) If Not c Is Nothing Then Do ' si trouvé c.Offset(0, -1) = c.Offset(2, -1) Range(lig & ":" & c.Row - 1).Delete lig = c.Row + 1 Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> "$C$5" End If End With Range(lig & ":" & lig + 20).Delete Application.ScreenUpdating = True Application.Calculation = CalcStatus End Sub
eric
Bonjour,
en fait cette feuille est mise à jour par un collègue et j'en fais une copie. Du coup je ne touche à rien sur la feuille mais la macro me permet de la mettre au format pour me permettre de l'exploiter. les lignes cachées ont une incidence ? je pensais qu'elles subissaient le même traitement que les autres lignes.
en fait cette feuille est mise à jour par un collègue et j'en fais une copie. Du coup je ne touche à rien sur la feuille mais la macro me permet de la mettre au format pour me permettre de l'exploiter. les lignes cachées ont une incidence ? je pensais qu'elles subissaient le même traitement que les autres lignes.
Bonjour Eric,
je viens de tester et c'est le jour et la nuit ^^
1s top chrono
je vais me plonger dans le pas à pas pour m'approprier le code afin de pouvoir l'adapter si jamais mon collègue faisait évoluer ses feuilles
Merci encore, ça va me faire gagner du temps
je viens de tester et c'est le jour et la nuit ^^
1s top chrono
je vais me plonger dans le pas à pas pour m'approprier le code afin de pouvoir l'adapter si jamais mon collègue faisait évoluer ses feuilles
Merci encore, ça va me faire gagner du temps
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
3 févr. 2013 à 11:57
3 févr. 2013 à 11:57
Bonjour,
En décortiquant ce que tu fais dans ta macro, je t'en ai écrit une plus compacte "selection_livraisons" qui fait la même chose :
Pas facile, lorsque l'on supprime des lignes de gagner du temps. La mienne va plus vite mais si tu rajoutes les 2 lignes en gras à la tienne , les temps sont identiques !
à toi de voir... mais ces 2 lignes divisent le temps par 5 tout de même !
En décortiquant ce que tu fais dans ta macro, je t'en ai écrit une plus compacte "selection_livraisons" qui fait la même chose :
Public Sub selection_livraisons() Dim Lig As Long, mnt As Variant, vlB As Variant Application.ScreenUpdating = False Application.Calculation = xlCalculationManual For Lig = Cells(Rows.Count, "C").End(xlUp).Row To 2 Step -1 vlB = Cells(Lig, "B").Value If IsNumeric(vlB) And vlB > 0 Then mnt = vlB If Not (Cells(Lig, 3) Like ("Livraisons")) Then Rows(Lig).Delete Else Cells(Lig, "B").Value = mnt: mnt = "" End If Next Lig Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub
Pas facile, lorsque l'on supprime des lignes de gagner du temps. La mienne va plus vite mais si tu rajoutes les 2 lignes en gras à la tienne , les temps sont identiques !
à toi de voir... mais ces 2 lignes divisent le temps par 5 tout de même !
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
Modifié par eriiic le 3/02/2013 à 13:12
Modifié par eriiic le 3/02/2013 à 13:12
Re,
Je faisais mes tests sur un fichier sur lequel j'avais démasqué toutes les lignes.
Je ne l'ai pas intégré à la macro, il faudrait l'ajouter.
@gb, salut,
tu as ajouté ça aussi :
... And vlB > 0 Then ...
C'est aussi là que se situe la différence je pense, les cellules vides étaient traitées.
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Je faisais mes tests sur un fichier sur lequel j'avais démasqué toutes les lignes.
Je ne l'ai pas intégré à la macro, il faudrait l'ajouter.
@gb, salut,
tu as ajouté ça aussi :
... And vlB > 0 Then ...
C'est aussi là que se situe la différence je pense, les cellules vides étaient traitées.
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
3 févr. 2013 à 12:35
Cells.Select
Selection.EntireColumn.Hidden = False
Selection.EntireRow.Hidden = False