Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Cazinos

XLDnaute Occasionnel
Bonsoir le forum,

J'ai un classeur avec pas mal de macro et de ligne à traiter alors quand je lance une macro ca rame pas mal.

J'aimerai savoir comment faire pour éviter cela

J'ai windows xp avec excel 2002
2 g de mémoire vive

merci

Cazinos
 
Re : Excel qui rame

Re tous, bonsoir jeanpierre, le forum


Je ne comprends pas, car plusieurs sources disent qu'éviter les Selection
dans le code VBA accélère celui-ci.

Je n'ai fait que modifié en ce sens.

Normalement, cela devrait moins ramer.

Si des gens du forum adeptes des macros VBA pouvaient jeter un coup et me dire si j'ai commis des erreurs de code.

Merci

A
+
 
Re : Excel qui rame

bonsoir le fil, vbacrumble,

tu as parfaitement appliqué la règle 5 de Dave Hawley mais à mon sens la règle n°1 est également très importante, il faut placer Option Explicit dans tous les modules et déclarer toutes les variables et quand je dis déclarer il faut éviter au maximum les variables de type variant qui bouffent beaucoup de ressource.

Le pb est que toutes les variables définissant des plages multiples qui sont utilisées dans les differentes macros sont forcement à déclarer en variant
pour pallier le problème réinitialiser ces variables en fin de code (exemple tabfeuilles = Nothing) ,ci-joint une correction de fichier, reste à tester le temps d'execution
a+
 

Pièces jointes

Dernière édition:
Re : Excel qui rame

Bonsoir,

Merco pour vos réponses
J'ai testé les macros mais avant j'ai copié sur vos idées pour corriger toutes mes macros
Effectivement avec "option explicit" et les select en moins c'est mieux
Par contre avec la macro ci-dessous est toujours longues ;

Merci

Cazinos

Option Explicit

Sub InsererLigneVideBX()
Sheets("BX").Select
On Error Resume Next
'à cause de la dernière ligne de la colonne A
Dim c As Range
For Each c In Range("A:A")
'écrire TOTAL en majuscule
If UCase(Left(c, 5)) = "TOTAL" And c.Offset(1, 0) <> "" Then
c.Offset(1, 0).EntireRow.Insert
End If
Next
End Sub
 
Re : Excel qui rame

Bonsoir à tous
En écrivant
Code:
Sub InsererLigneVideBX()
    Sheets("BX").Select
Dim c As Range
    For Each c In Range([COLOR="Red"][B]"A1:A" & Cells(Rows.Count, 1).End(xlUp).Row[/B][/COLOR])
        If UCase(Left(c, 5)) = "TOTAL" And c.Offset(1, 0) <> "" Then c.Offset(1, 0).EntireRow.Insert
    Next
End Sub
et si la feuille n'a pas 40 000 lignes utiles, on devrait avoir une amélioration.​
Bonne continuation,
ROGER2327
 
Re : Excel qui rame

Bonsoir à tous


Cazinos:

A quoi cela sert-il que je modifie tes codes ???? 😡


Voici la macro modifiée telle qu'elle était dans ma dernière pièce jointe
Code:
Sub InsererLigneVideBX()
Dim c As Range
'On Error Resume Next
'à cause de la dernière ligne de la colonne A
With Sheets("BX")
For Each c In .Range("A1:A" & .[A65536].End(xlUp).Row)
' écrire TOTAL en majuscule
If UCase(Left(c, 5)) = "TOTAL" And c.Offset(1, 0) <> "" Then
c.Offset(1, 0).EntireRow.Insert
End If
Next
End With
c = Nothing
End Sub

Et tu poses une question sur ton ancien code

C'est décourageant !


Merci à ledzep et Roger2327 d'avoir pris le temps de lire mes modifications.

C'est vrai que j'avais oublié Option Explicit

A+
 
Re : Excel qui rame

Bonsoir à tous,

Si j'ai bien compris ?

Enlever l'affichage, surtout avec des insertions de lignes devrait largement accélérer le processus.

Sub InsererLigneVideBX()
Dim i As Integer
Application.ScreenUpdating = False
With Sheets("BX")
For i = 2 To .Range("A65536").End(xlUp).Row
If UCase(Left(.Cells(i, 1), 5)) = "TOTAL" And .Cells(i + 1, 1) <> "" Then
.Cells(i + 1, 1).EntireRow.Insert
End If
Next
End With
End Sub

Cordialement

Bernard
 
Re : Excel qui rame

Bonjour et merci pour vos réponses

J'ai testé toutes les versions "Sub InsererLigneVideBX()
que tu as corriger mais ca rame quand même.
J'ai pris le temps de lire toutes les macros puisque j'ai travaillé à partir de tes corrections pour corriger les miennes.
Je vais testé les nouvelles versions ci-dessus aujourd'hui.

merci

Cazinos
 
Re : Excel qui rame

re,

J'ai testé les macros Sub InsererLigneVideBX() elles fonctionnent toutes même celles qui lance les 4 onglets "bx cf cp sg" j'avais mal copier scuses.
Par contre le fait d'ajouter "option explicit" c'est top

merci pour votre aide

Cazinos
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
266
Retour