Optimisation d'une procédure

Bonjour le forum

J'ai une procédure qui dure 3 secondes

Cette procédure me parait avoir un temps anormal.

Peut on optimiser cette procédure (pour continuer la formation que j'ai grâce à ce Forum)

Voici cette procédure

Sub F02_Reactualisation_couleur()

End Sub

Merci d'avance

Annette

5test.xlsx (11.32 Ko)

RE bonjour

NB;

Cette procédure change la couleur de la première ligne vide.Comment y remédier?

Merci

A vous lire

Annette

Bonsoir,

A essayer :

Sub F02_Reactualisation_couleur()
Dim I As Integer, k As Integer
Dim F As Byte
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dim debut As Date
Dim fin As Date
Dim Duree As Date
debut = Time
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ActiveSheet.Unprotect
Application.ScreenUpdating = False

For F = 7 To 200
If Range("C" & F).Text = "" Then Exit For
Next F

On Error GoTo gesterr
For k = 7 To F
I = Cells(k, 1) + 1
Range("BG" & I).Copy
Range("A" & k & ":E" & k).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone
Next k
gesterr:
Resume Next
With ActiveSheet
    .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    .EnableSelection = xlUnlockedCells
End With
Range("c5").Select
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
fin = Time
Duree = fin - debut
MsgBox Duree
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Exit Sub
End Sub

Amicalement

Dan

Edit Dan :

Cette procédure change la couleur de la première ligne vide

Le mieux serait de voir ton fichier.

Dan

Bonsoir à tous,

Annette,

For F = 7 To 200

If Range("C" & F).Text = "" Then Exit For

Next F

Moi j'aurais mis le Next F en dessous du Next k

sinon là je ne vois pas à quoi sert le For F

Amicalement

Claude.

bonsoir,

Faudrait voir le fichier, mébon...

La gestion d'erreur me parait assez zarbi. (en cas d'erreur continuer ? Dans ce cas pas besoin de gestion d'erreur : écrire directement On error resume next)

Quand au Exit sub il sert à rien. (à cet endroit)

Cette procédure ne fait surement pas QUE ce que tu dis (sinon à quoi sert la deuxième boucle For ?

On sait dès la première boucle que la première ligne vide est F donc pas besoin de deuxième boucle.

Pour détecter la première ligne vide cette instruction suffit :

F = Range("C7").End(4).Row + 1

Ensuite pour la colorer ya sans doute pas besoin de boucle...

A+

Rebonsoir

Ci joint la feuille concernée par le code de changement de couleur avec

les deux macro (avant et après)

Fichier trop gros je vous l'envoie par mail

A vous lire

Annette

Je trouve dommage les fichiers envoyés par e-mail. On ne peut plus suivre le déroulement.

Surtout quand il y a possibilité de passer par ICI ou encore de le zipper.

Bonjour

Le fichier d'Annette compressé :

Fichier

Amicalement

Nad

bonjour,

Moi j'y vois comme ça :

Sub galopin()
Dim i%, k%, lR&
ActiveSheet.Protect UserInterfaceOnly:=True
Application.ScreenUpdating = False
lR = Range("C7").End(4).Row
For k = 7 To lR
i = Cells(k, 1)
Range("A" & k & ":E" & k).Interior.ColorIndex = Range("BG" & i + 1).Interior.ColorIndex
Next
End Sub

A+

Bonjour Annette et à tous,

Tel que j'ai compris, tu veux appliquer la couleur en fonction du groupe (colonne A) suivant BG1:BG6

et re-tester tout le tableau.

Remarques :

  • j'ai mis en tête : calcul sur ordre (le calcul Auto ralenti considérablement)
  • La colonne C n'est pas vide jusqu'à ligne 200 ???
à tester :
Sub Claude() '17 Déc 2008
Dim Lc As Range
    ActiveSheet.Unprotect
    Application.ScreenUpdating = False
    Application.Calculation = xlManual
    Range("a7").Select
        Do While ActiveCell <> ""
            Set Lc = Range(ActiveCell, ActiveCell.Offset(0, 4))
            Range("be2") = ActiveCell
            Range("bg" & [MATCH(be2,bg1:bg6,0)]).Copy
                With Lc
                   .PasteSpecial Paste:=xlPasteFormats
                 End With
            ActiveCell.Offset(1, 0).Select
        Loop
    Application.Calculation = xlAutomatic
    ActiveSheet.Protect
End Sub

Bonne journée

Amicalement

Claude.

Bonjour,

Merci à Nad-Dan, dubois, galopin01, EricF dans l'ordre d'apparition pour les réponse apportées.

Le résumé des réponse plus la touche de galopin01 ont ramené à un affichage instantané

Félicitations et merci a tous de partager vo connaissances.

Encore un code à m'imprégner pour mon évolution.

Nb Existe t il un livre qui pourrait me faire progresser sur les basses (livre avec exemples)

J'ai démarré excel en début d'année et je pêche sur les bases.

Je vous encore merci et à bientôt

Annette

re,

Bravo galopin01

Claude.

Rechercher des sujets similaires à "optimisation procedure"