ScreenUpdating disfonctionnement

  • Initiateur de la discussion Initiateur de la discussion Darnel
  • Date de début Date de début

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 !

Darnel

XLDnaute Impliqué
Bonjour


J'ai un soucis avec ScreenUpdating :

Je l'ai placé de part et d'autre du code d'une de mes macro, bourrées de If, Then, Else, End If, qu'ils soient successif ou imbriqués, y en a un pacquet

Le problème c'est que qand la macro s'execute, selon l'action à mener (determinée par mon pacquet de If...) j'ai un "pseudo défilement" de l'écran, or j'ai bien : Application.ScreenUpdating = False au début et
Application.ScreenUpdating = True à la fin

J'ai tester en ajoutant un peu partout avant les If "majeurs" des Application.ScreenUpdating = False
C'est un peu mieu mais pas top

Si quelqu'un a une idée du pourquoi du comment ...

Merci
 
Re : ScreenUpdating disfonctionnement

Salut Darnel,

Personnellement, je n'ai jamais rencontré ce genre de problème, donc difficile de t'aider a première vue. PAr contre, est-ce que tu pourrais mettre ton code ou du moins une partie de manière a ce qu'on fasse quelques tests pour voir d'ou peu provenir le problème.

@+
 
Re : ScreenUpdating disfonctionnement

Bonjour,

Cela dépend de ta macro. J'ai quelques fois ce pb aussi malgré la mise en place de cette instruction.

Je pense que cette instruction est plutôt à comprendre dans le sens où tu ne vois pas ce que ta macro fait exactement (donc gain de temps pour l'exécution) plutôt que de penser à ne pas voir l'écran "flasher" en quelque sorte.

Peut être en essayant de raccourcir le code de ta macro ?

D'autre part, est-ce que ton fichier n'est pas sur server ?


Bon ap.
 
Re : ScreenUpdating disfonctionnement

Darnel à dit:
Bonjour


J'ai un soucis avec ScreenUpdating :

Je l'ai placé de part et d'autre du code d'une de mes macro, bourrées de If, Then, Else, End If, qu'ils soient successif ou imbriqués, y en a un pacquet

Le problème c'est que qand la macro s'execute, selon l'action à mener (determinée par mon pacquet de If...) j'ai un "pseudo défilement" de l'écran, or j'ai bien : Application.ScreenUpdating = False au début et
Application.ScreenUpdating = True à la fin

J'ai tester en ajoutant un peu partout avant les If "majeurs" des Application.ScreenUpdating = False
C'est un peu mieu mais pas top

Si quelqu'un a une idée du pourquoi du comment ...

Merci
Salut
Tu pourrais pas mettre ta macro en pièce jointe ?
Sinon, dans ta macro, tu n'as pas de select ou activate ?
A+
 
Re : ScreenUpdating disfonctionnement

Bonjour à vous

Merci de vous pencher sur mon problème

Voici la bête, (soyez indulgents pour la qualité du code, ça fait pas si longtemps que je m'y suis mis...😛 )

Code:
Sub Valide_modif()
' Macro enregistrée le 30/11/05 par S574180
'Contrôle des champs de saisie obligatoires
Application.ScreenUpdating = False
Sheets("modifications").Select
If IsEmpty(Range("B4")) Then
    MsgBox "Numéro de police manquant"
    Exit Sub
End If
If IsEmpty(Range("E3")) Then
    MsgBox "ETAT MANQUANT"
    Exit Sub
End If
If IsEmpty(Range("B5")) Then
    MsgBox "Nom client manquant"
    Exit Sub
End If
If IsEmpty(Range("B7")) Then
    MsgBox "Nom courtier manquant"
    Exit Sub
End If
If IsEmpty(Range("B9")) Then
    MsgBox "Type de Garantie manquant"
    Exit Sub
End If
If IsEmpty(Range("B10")) Then
    MsgBox "Matériel assuré manquant"
    Exit Sub
End If
If IsEmpty(Range("B27")) Then
    MsgBox "Prime TTC Pa025 manquante"
    Exit Sub
End If
If Range("E20").Value = "Date d'effet" Then
    If IsEmpty(Range("F20")) Then
        MsgBox "Date d'effet manquante"
        Exit Sub
    End If
Else
    If IsEmpty(Range("F20")) Then
        MsgBox "Date de début des travaux manquante"
        Exit Sub
    End If
End If
If Range("E21").Value = "Date prévis°lle réception" Then
    If IsEmpty(Range("F21")) Then
        MsgBox "Date prévisionnelle de reception des travaux manquante"
        Exit Sub
    End If
End If
If Range("A20").Value = "Echéance" Then
    If IsEmpty(Range("B20")) Then
        MsgBox "Echéance manquante"
        Exit Sub
    End If
End If
If IsEmpty(Range("B2")) Then
    MsgBox "Date de création manquante"
    Exit Sub
End If
If IsEmpty(Range("B3")) Then
    MsgBox "Date de modification manquante"
    Exit Sub
End If
If IsEmpty(Range("B39")) Then
    MsgBox "Résumé Garanties manquant"
    Exit Sub
End If
If Range("A21").Value = "Préavis" Then
    If IsEmpty(Range("B21")) Then
        MsgBox "Préavis manquant"
        Exit Sub
    End If
End If
 
'champs en majuscule
Range("B5") = UCase(Range("B5"))
Range("B7") = UCase(Range("B7"))
Sheets("modifications").Select
'orientation en fonction de la modifictation de l'Etat du contrat
If Range("N3").Value = Range("M3").Value Then
'orientation base de données fonction Résils ou non
        If Range("E3").Value = "EN COURS" Then
        'Copie des données de la feuille Stock vers la feuille Données.
        'On remplace les infos enregistrées précedemment par les nouvelles.
        Sheets("Données").Select
        ActiveSheet.Unprotect
        Sheets("Stock").Select
        Range("A5:BU5").Select
        Selection.Copy
        Sheets("Données").Select
        ActiveCell.Select
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone
        Màjlist_inter
        'On reprend les champs renseignés dans la Fiche que l'on veut modifier.
        Sheets("modifications").Select
        ActiveSheet.Unprotect
        feuille_modif
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        Sheets("Données").Select
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        Range("b2").Select
 
        Else
 
            If Range("E3").Value = "A L' ETUDE" Then
            Sheets("Données études").Select
            ActiveSheet.Unprotect
            Sheets("Stock").Select
            Range("A5:BU5").Select
            Selection.Copy
            Sheets("Données études").Select
            ActiveCell.Select
            Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone
            Màjlist_inter
            'On reprend les champs renseignés dans la Fiche que l'on veut modifier.
            Sheets("modifications").Select
            ActiveSheet.Unprotect
            feuille_modif
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
            Sheets("Données études").Select
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
            Range("b2").Select
 
            Else
 
            Sheets("Données résils").Select
            ActiveSheet.Unprotect
            Sheets("Stock").Select
            Range("A5:BU5").Select
            Selection.Copy
            Sheets("Données résils").Select
            ActiveCell.Select
            Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone
            Màjlist_inter
            'On reprend les champs renseignés dans la Fiche que l'on veut modifier.
            Sheets("modifications").Select
            ActiveSheet.Unprotect
            feuille_modif
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
            Sheets("Données résils").Select
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
            Range("b2").Select
            End If
        End If
 
Else
 
        'orientation base de données fonction Résils , étude, ou En cours
        If Range("E3").Value = "EN COURS" Then
        'Enregistrement de la fiche dans la base (feuille Données)
        Sheets("Données").Select
            If IsEmpty(Range("B3")) Then
            Sheets("Données").Select
            ActiveSheet.Unprotect
            Sheets("Stock").Select
            Range("A5:BU5").Select
            Selection.Copy
            Sheets("Données").Range("B1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
            Màjlist_inter
            Sheets("Données").Select
            Range("a1").Select
            Else
            Sheets("Données").Select
            ActiveSheet.Unprotect
            Sheets("Stock").Select
            Range("A5:BU5").Select
            Selection.Copy
            Sheets("Données").Range("B2").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
            Màjlist_inter
            Sheets("Données").Select
            Range("a1").Select
            End If
            Sheets("modifications").Select
            'On efface la fiche précédente de la base de données
            If Range("N3").Value = "EN COURS" Then
            Sheets("Données").Select
            ActiveSheet.Unprotect
            Sheets("Données").Select
            ActiveCell.Select
            Selection.EntireRow.Delete
            tri_num
            Range("A1").Select
            Else

La suite du code dans le prochain post car je depasse en nombre de caractères

pour le fichier, ça va etre dur de vous le donner intégralement, il fait, sans les données, plus de 6 200 Ko, donc..., soit 783 ko en zip
Je vais voir ce que je peux faire

Enfin, le fichier est destiné à etre sur serveur, mais les tests que j'ai fait on eu lieu sur mon Pc au boulot.
N'hésitez pas si vous avez d'autres questions.
Merci
 
Dernière édition:
Re : ScreenUpdating disfonctionnement

re


La suite du code donc

Code:
                If Range("N3").Value = "A L' ETUDE" Then
                Application.ScreenUpdating = False
                Sheets("Données études").Select
                ActiveSheet.Unprotect
                Sheets("Données études").Select
                ActiveCell.Select
                Selection.EntireRow.Delete
                tri_num
                Range("A1").Select
                Else
                Sheets("Données résils").Select
                ActiveSheet.Unprotect
                Sheets("Données résils").Select
                ActiveCell.Select
                Selection.EntireRow.Delete
                tri_num
                Range("A1").Select
                End If
            End If
        Sheets("Données").Select
        tri_num
        Range("A1").Select
        'On reprend les champs renseignés dans la Fiche que l'on veut modifier.
        Sheets("modifications").Select
        ActiveSheet.Unprotect
        feuille_modif
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        Sheets("Données").Select
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        Range("b2").Select
 
        Else
 
            If Range("E3").Value = "A L' ETUDE" Then
            Application.ScreenUpdating = False
            Sheets("Données études").Select
                If IsEmpty(Range("B3")) Then
                Sheets("Données études").Select
                ActiveSheet.Unprotect
                Sheets("Stock").Select
                Range("A5:BU5").Select
                Selection.Copy
                Sheets("Données études").Range("B1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
                Sheets("Données études").Select
                Range("a1").Select
                Else
                Sheets("Données études").Select
                ActiveSheet.Unprotect
                Sheets("Stock").Select
                Range("A5:BU5").Select
                Selection.Copy
                Sheets("Données études").Range("B2").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
                Sheets("Données études").Select
                Range("a1").Select
                End If
                Sheets("modifications").Select
                'On efface la fiche précédente de la base de données
                If Range("N3").Value = "EN COURS" Then
                Sheets("Données").Select
                ActiveSheet.Unprotect
                Sheets("Données").Select
                ActiveCell.Select
                Selection.EntireRow.Delete
                tri_num
                Range("A1").Select
                Else
 
                    If Range("N3").Value = "A L' ETUDE" Then
                    Application.ScreenUpdating = False
                    Sheets("Données études").Select
                    ActiveSheet.Unprotect
                    Sheets("Données études").Select
                    ActiveCell.Select
                    Selection.EntireRow.Delete
                    tri_num
                    Range("A1").Select
                    Else
                    Sheets("Données résils").Select
                    ActiveSheet.Unprotect
                    Sheets("Données résils").Select
                    ActiveCell.Select
                    Selection.EntireRow.Delete
                    tri_num
                    Range("A1").Select
                    End If
                End If
 
            Sheets("Données études").Select
            tri_num
            Range("A1").Select
            'On reprend les champs renseignés dans la Fiche que l'on veut modifier.
            Sheets("modifications").Select
            ActiveSheet.Unprotect
            feuille_modif
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
            Sheets("Données études").Select
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
            Range("b2").Select
            Else
 
            'Enregistrement de la fiche dans la base données résils
            Sheets("Données résils").Select
                If IsEmpty(Range("B3")) Then
                Sheets("Données résils").Select
                ActiveSheet.Unprotect
                Sheets("Stock").Select
                Range("A5:BU5").Select
                Selection.Copy
                Sheets("Données résils").Range("B1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
                Sheets("Données résils").Select
                Range("a1").Select
                Else
                Sheets("Données résils").Select
                ActiveSheet.Unprotect
                Sheets("Stock").Select
                Range("A5:BU5").Select
                Selection.Copy
                Sheets("Données résils").Range("B2").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
                Sheets("Données résils").Select
                Range("a1").Select
                End If
                Sheets("modifications").Select
                'On efface la fiche précédente de la base de données
                If Range("N3").Value = "EN COURS" Then
                Sheets("Données").Select
                ActiveSheet.Unprotect
                Sheets("Données").Select
                ActiveCell.Select
                Selection.EntireRow.Delete
                tri_num
                Range("A1").Select
                Else
 
                    If Range("N3").Value = "A L' ETUDE" Then
                    Application.ScreenUpdating = False
                    Sheets("Données études").Select
                    ActiveSheet.Unprotect
                    Sheets("Données études").Select
                    ActiveCell.Select
                    Selection.EntireRow.Delete
                    tri_num
                    Range("A1").Select
                    Else
                    Sheets("Données résils").Select
                    ActiveSheet.Unprotect
                    Sheets("Données résils").Select
                    ActiveCell.Select
                    Selection.EntireRow.Delete
                    tri_num
                    Range("A1").Select
                    End If
                End If
            Sheets("Données résils").Select
            tri_num
            Range("A1").Select
            'On reprend les champs renseignés dans la Fiche que l'on veut modifier.
            Sheets("modifications").Select
            ActiveSheet.Unprotect
            feuille_modif
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
            Sheets("Données résils").Select
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
            Range("b2").Select
            End If
        End If
End If
Application.ScreenUpdating = True
End Sub
 
Re : ScreenUpdating disfonctionnement

Re,

Bon en vitesse car je suis au boulot.
Déjà un truc que tu peux faire seul. Partout où tu as ceci, remplace :
Code:
 Sheets("Stock").Select
Range("A5:BU5").Select
et mets ceci :
Code:
Sheets("Stock").Range("A5:BU5").activate
et aussi
Code:
 Sheets("Stock").select
Range("A5:BU5").Select
Selection.Copy
par
Code:
 Sheets("Stock").Range("A5:BU5").Copy

A te lire
 
Re : ScreenUpdating disfonctionnement

Re,

Je t'ajoute des infos en plus.

Remplace :
Code:
 [FONT=Verdana]Sheets("Données études").Select[/FONT]
[FONT=Verdana]ActiveSheet.Unprotect[/FONT]

Par :
Code:
[FONT=Verdana]Sheets("Données études").Unprotect[/FONT]
Remplace :
Code:
 [FONT=Verdana]Sheets("Données études").Select[/FONT]
[FONT=Verdana]ActiveSheet.Unprotect[/FONT]
[FONT=Verdana]Sheets("Stock").Select[/FONT]
[FONT=Verdana]Range("A5:BU5").Select[/FONT]
[FONT=Verdana]Selection.Copy[/FONT]
[FONT=Verdana]Sheets("Données études").Select[/FONT]
[FONT=Verdana]ActiveCell.Select[/FONT]
[FONT=Verdana]Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone[/FONT]

Remplace par :
Code:
 [FONT=Verdana]With Sheets("Données")[/FONT]
[FONT=Verdana].Unprotect[/FONT]
[FONT=Verdana]Sheets("Stock").Range("A5:BU5").Copy: ActiveCell.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _[/FONT]
[FONT=Verdana]       False, Transpose:=False[/FONT]
[FONT=Verdana]End With[/FONT]

@+
 
Re : ScreenUpdating disfonctionnement

re

Lol
Merci Dan,

Je vais m'y atteler

j'ai déjà bien réduit le code avec ton premier conseil, et déjà, le problème était moindre

Je vais continuer et je te donne des nouvelles
Merci de ta patience
 
Re : ScreenUpdating disfonctionnement

bonjour à tous

Bon après une première cure d'amincissement j'ai ça :

J'ai enlevé des bouts inutiles, y en a même peut etre encore quelques un qui trainent, et j'ai fait ce que tu m'as dit Dan
Cependant : Les commandes

Sheets("Stock").Range("A5:BU5").activate

Ne semblent pas passer sur mon fichier, j'ai donc mis des

Application.Goto Sheets("Stock").Range("A2")

De même, il est des cas ou j'applique la deprotection a des feuilles que je doit selectionner car je les utilise par la suite dans mon code

Code:
Sub Valide_modif()

'a cause de la longueur pour le post, j'ai enlever le control des champs de 'saisie

 If Range("N3").Value = Range("M3").Value Then
'orientation base de données fonction Résils ou non
        If Range("E3").Value = "EN COURS" Then
        'Copie des données de la feuille Stock vers la feuille Données.
        'On remplace les infos enregistrées précedemment par les nouvelles.
        Sheets("Données").Unprotect
        Sheets("Stock").Range("A5:BU5").Copy
        Sheets("Données").Select
        ActiveCell.Select
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone
        Màjlist_inter
        'On reprend les champs renseignés dans la Fiche que l'on veut modifier.
        feuille_modif
        Sheets("Données").Protect
        Application.Goto Sheets("Données").Range("b2")
        
        Else
            If Range("E3").Value = "A L' ETUDE" Then
            Sheets("Données études").Unprotect
            Sheets("Stock").Range("A5:BU5").Copy
            Sheets("Données études").Select
            ActiveCell.Select
            Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone
            Màjlist_inter
            'On reprend les champs renseignés dans la Fiche que l'on veut modifier.
            feuille_modif
            Sheets("Données études").Protect
            Application.Goto Sheets("Données études").Range("b2")
        
            Else
        
            Sheets("Données résils").Unprotect
            Sheets("Stock").Range("A5:BU5").Copy
            Sheets("Données résils").Select
            ActiveCell.Select
            Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone
            Màjlist_inter
            'On reprend les champs renseignés dans la Fiche que l'on veut modifier.
            feuille_modif
            Sheets("Données résils").Protect
            Application.Goto Sheets("Données résils").Range("b2")
            End If
        End If
    
Else
        'orientation base de données fonction Résils , étude, ou En cours
        If Range("E3").Value = "EN COURS" Then
        'Enregistrement de la fiche dans la base (feuille Données)
        Sheets("Données").Select
            If IsEmpty(Range("B3")) Then
            Sheets("Données").Unprotect
            Sheets("Stock").Range("A5:BU5").Copy
            Sheets("Données").Range("B1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
            Màjlist_inter
            Application.Goto Sheets("Données").Range("a1")
            Else
            Sheets("Données").Unprotect
            Sheets("Stock").Range("A5:BU5").Copy
            Sheets("Données").Range("B2").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
            Màjlist_inter
            Application.Goto Sheets("Données").Range("a1")
            End If
            Sheets("modifications").Select
            'On efface la fiche précédente de la base de données
            If Range("N3").Value = "EN COURS" Then
            Sheets("Données").Unprotect
            Sheets("Données").Select
            ActiveCell.Select
            Selection.EntireRow.Delete
            tri_num
            Range("A1").Select
            Else
                If Range("N3").Value = "A L' ETUDE" Then
                Sheets("Données études").Unprotect
                Sheets("Données études").Select
                ActiveCell.Select
                Selection.EntireRow.Delete
                tri_num
                Range("A1").Select
                Else
                Sheets("Données résils").Unprotect
                Sheets("Données résils").Select
                ActiveCell.Select
                Selection.EntireRow.Delete
                tri_num
                Range("A1").Select
                End If
            End If
        Sheets("Données").Select
        tri_num
        Range("A1").Select
        'On reprend les champs renseignés dans la Fiche que l'on veut modifier.
        feuille_modif
        Sheets("Données").Protect
        Application.Goto Sheets("Données").Range("b2")
        Else
            If Range("E3").Value = "A L' ETUDE" Then
            Sheets("Données études").Select
                If IsEmpty(Range("B3")) Then
                Sheets("Données études").Unprotect
                Sheets("Stock").Range("A5:BU5").Copy
                Sheets("Données études").Range("B1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
                Application.Goto Sheets("Données études").Range("a1")
                Else
                Sheets("Données études").Unprotect
                Sheets("Stock").Range("A5:BU5").Copy
                Sheets("Données études").Range("B2").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
                Application.Goto Sheets("Données études").Range("a1")
                End If
                Sheets("modifications").Select
                'On efface la fiche précédente de la base de données
                If Range("N3").Value = "EN COURS" Then
                Sheets("Données").Unprotect
                Sheets("Données").Select
                ActiveCell.Select
                Selection.EntireRow.Delete
                tri_num
                Range("A1").Select
                Else
                    If Range("N3").Value = "A L' ETUDE" Then
                    Sheets("Données études").Unprotect
                    Sheets("Données études").Select
                    ActiveCell.Select
                    Selection.EntireRow.Delete
                    tri_num
                    Range("A1").Select
                    Else
                    Sheets("Données résils").Unprotect
                    Sheets("Données résils").Select
                    ActiveCell.Select
                    Selection.EntireRow.Delete
                    tri_num
                    Range("A1").Select
                    End If
                End If
            Sheets("Données études").Select
            tri_num
            Range("A1").Select
            'On reprend les champs renseignés dans la Fiche que l'on veut modifier.
            feuille_modif
            Sheets("Données études").Protect
            Application.Goto Sheets("Données études").Range("b2")
            Else
            'Enregistrement de la fiche dans la base données résils
            Sheets("Données résils").Select
                If IsEmpty(Range("B3")) Then
                Sheets("Données résils").Unprotect
                Sheets("Stock").Range("A5:BU5").Copy
                Sheets("Données résils").Range("B1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
                Application.Goto Sheets("Données résils").Range("a1")
                Else
                Sheets("Données résils").Unprotect
                Sheets("Stock").Range("A5:BU5").Copy
                Sheets("Données résils").Range("B2").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
                Application.Goto Sheets("Données résils").Range("a1")
                End If
                Sheets("modifications").Select
                'On efface la fiche précédente de la base de données
                If Range("N3").Value = "EN COURS" Then
                Sheets("Données").Unprotect
                Sheets("Données").Select
                ActiveCell.Select
                Selection.EntireRow.Delete
                tri_num
                Range("A1").Select
                Else
                    If Range("N3").Value = "A L' ETUDE" Then
                    Sheets("Données études").Unprotect
                    Sheets("Données études").Select
                    ActiveCell.Select
                    Selection.EntireRow.Delete
                    tri_num
                    Range("A1").Select
                    Else
                    Sheets("Données résils").Unprotect
                    Sheets("Données résils").Select
                    ActiveCell.Select
                    Selection.EntireRow.Delete
                    tri_num
                    Range("A1").Select
                    End If
                End If
            Sheets("Données résils").Select
            tri_num
            Range("A1").Select
            'On reprend les champs renseignés dans la Fiche que l'on veut modifier.
            feuille_modif
            Sheets("Données résils").Select
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
            Range("b2").Select
            End If
        End If
End If
Application.ScreenUpdating = True
End Sub

je passe à la deuxième de tes instructions dès que j'ai 5 minutes

Encore merci
 
Re : ScreenUpdating disfonctionnement

Bonjour Darnel et à tous les intervenat de ce fil.

C'est juste pour te parler de la méthode: UserInterfaceOnly

Car j'ai cru voir dans ton code que tu faisais pas mal de "unprotect" afin que les macros puissent s'executer. La méthode UserInterfaceOnly permet de ne pas déprotéger tes feuilles et que les macros puissent quand même s'executer. Apparemment, tu cherche à allèger ton code, cela te permettrait il de l'améliorer encore.

Thierry m'avait donné un lien sur ce sujet. Je le cherche et te le donne

A +

Zeltron
 
Re : ScreenUpdating disfonctionnement

Autant pour moi, il s'agissait de Pascal76 qui m'avait donné ce lien où Thierry donnait une explication sur cette méthode.
Voici le lien, j'espère que cela te sera utile:

Lien supprimé

Bon week end à tous

Cordialement

Zeltron
 
Re : ScreenUpdating disfonctionnement

Bonjour,

Ok Darnel.
Concernant l'instruction Application.goto, il est assez curieux que ce que je t'ai proposé ne fonctionne pas.
Quel est ta version d'excel. De mon coté, avec Excel 2000 et 2004 sous MAC cela fonctionne parfaitement.
bien que je n'aime pas le "select" essaie également en remplaçant "activate" par "select".
Dès que tu auras fait les modifications, place ta macro finale et je regarderai si on peut encore l'améliorer.
Je suppose également que les instructions "miseàj_Inter" et "feuimodif" sont des macros auquelles tu fais appel ?
Si oui, tu peux aussi pour une question de lisibilité mettre "CALL" devant. Cela n'apporte rien au point de vue fonctionnement mais pour comprendre et suivre la lecture du code je mets souvent cette instruction.

A te lire
 
- 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

H
  • Question Question
Réponses
4
Affichages
1 K
Hamadouche
H
I
Réponses
2
Affichages
1 K
isataz
I
B
Réponses
10
Affichages
2 K
P
Réponses
0
Affichages
2 K
plouff
P
B
Réponses
5
Affichages
1 K
billpancho
B
Réponses
17
Affichages
9 K
Compte Supprimé 979
C
L
Réponses
5
Affichages
28 K
L
Retour