Accélération de procédure

Résolu/Fermé
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015 - 5 avril 2013 à 10:46
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 5 avril 2013 à 13:55
Bonjour,

J'utilise le code ci-dessous et celui-ci met plus de 10 secondes à s'éxécuter... J'ai essayer de placer screenUpdating mais rien n'a changé... (Peut-être que je l'ai mal fait)...

Auriez-vous une meilleure idée, car il me semble qu'en 2 secondes maximum cette procédure doit s'éxécuter normalement...

Merci de votre aide

 Public Sub commandbutton1_click()

ScreenUpdating = False

'Incremente automatiquement la ligne suivante
      Dim Wks As Worksheet
      Dim Ligne As Long
            
            Set Wks = Sheets(NomUtilisateur) '
            Ligne = Sheets(NomUtilisateur).[A65000].End(xlUp).Offset(1, 0).Row
              With Sheets(NomUtilisateur)
                .Cells(Ligne, 1) = NomUtilisateur '
                '.Cells(Ligne, 2) =  '
                .Cells(Ligne, 3) = Me.Label6 'MAJ
                .Cells(Ligne, 4) = Me.ComboBox1 'Client
                .Cells(Ligne, 5) = Me.ComboBox2 '
                .Cells(Ligne, 6) = Me.ComboBox3 'Civilité
                .Cells(Ligne, 7) = Me.TextBox1 'Prénom
                .Cells(Ligne, 8) = Me.TextBox2 'Nom
                .Cells(Ligne, 9) = Me.TextBox3 'Fonction
                .Cells(Ligne, 10) = Me.ComboBox4 '
                .Cells(Ligne, 11) = Me.ComboBox5 'DPT

              End With
 
    Creer.Hide
    Contact.Show
 
 ScreenUpdating = True
 End Sub


Ci-dessous le code de la MAJ :
Private Sub Worksheet_Change(ByVal sel As Range)
 ScreenUpdating = False
    Application.EnableEvents = False
    Cells(sel.Row, "C").Value = Date
    Application.EnableEvents = True
  ScreenUpdating = True
End Sub


1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
5 avril 2013 à 11:27
bonjour

la syntaxe est

Application.Screenupdating=False

Mais je vois mal le pourquoi du comment de la MAJ
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
5 avril 2013 à 11:51
Bonjour Michel_m,

La mise à jour permet de savoir quand on a fait une modification.
Mais en y pensant tu as raison elle ne sert à rien dans cette partie du code... Un peu fatigué moi aujourd'hui.
Je test avec Application, merci !
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
Modifié par Co_nexion le 5/04/2013 à 11:55
Michel_m,

Ça ralentit moins la procédure mais cela dure tout de même 5-6 secondes...
Aurais-tu une autre solution pour que cela aille plus vite ? Merci d'avance
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
5 avril 2013 à 13:55
re,

Ta macro est simple :affectation des données de ton usf sur 1 ligne et je comprend mal pourquoi elle dure 5 secondes avec la syntaxe que je t'ai rectifié + haut et m^me sans, d'ailleurs

C'est pëut-être l'activation de l'usf Contact qui est lente Mais...
fais un essai sans activer "contact
0