Probléme Application.Wait

renoncule62 Messages postés 94 Statut Membre -  
renoncule62 Messages postés 94 Statut Membre -
Bonjour,
Je souhaite, aprés la saisie dans une cellule, vérifier que celle ci ne contient pas une valeur incluse dans une liste. Si c'est le cas, je souhaite afficher, dans cette cellule, une petite image d'alerte pendant 3 seconde puis, celle-ci disparait.
ci dessous mon code qui ne fonctionne pas puisque ne se déroulant pas comme je le souhaiterais car la tempo s'execute, puis l'image apparait et disparait furtivement.
toujours pas incollable en vba, je vous propose mon code.
Je sais qu' excel ne peut pas faire plusieurs choses à la fois mais dans la chronologie du code ci dessous, j' appelle bien l' image, execute la tempo et suprime l'image non?
et quand je regarde le résultat, j'ai l'impression que l'image s'affiche aprés la tempo et disparait, du coup, tout de suite?


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, Qui As String, Plage As String

Qui = Target
Plage = "b4:b11"
Set Rg = Range(Plage).Find(Qui)

If Not Rg Is Nothing Then
ActiveSheet.Pictures.Insert("monimage.png" ).Select
           
    With Selection.ShapeRange
        .Left = Target.Left
        .Top = Target.Top
    End With
 
Application.Wait (Now + TimeValue("00:00:03" ))

Selection.delete

Else
MsgBox "Pas trouvé " & Qui
End If

End Sub
 

Merci pour votre aide.
J'en profite pour poser une deuxiéme question:
j'ai une macro avec un "Application.ScreenUpdating = False" en tête de code car un peu longue et disgracieuse lors de son exécution. est il possible d'afficher un userform ou message invitant à patienter pendant l'exécution de la macro en arriére plan ?
pouvez vous m'expliquer cette fonction "Application.ScreenUpdating = False" svp?

Meci encore




6 réponses

chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
Bonjour,

pour répondre à ta seconde question la fonction "Application.ScreenUpdating = False" permet de ne pas voir la macro s'exécuter à l'écran.

Cela évite par exemple de voir défiler les sélections de cellules, les modifications de celles-ci etc.

Cordialement.
0
renoncule62 Messages postés 94 Statut Membre 2
 
Merci pour cette précision chossette9, c' est sympa...
0
chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
De rien.

Par contre pour la première je ne sais pas, alors je laisse la suite à des gens plus compétents.

Bon courage !
0
renoncule62 Messages postés 94 Statut Membre 2
 
Merci encore...
0
renoncule62 Messages postés 94 Statut Membre 2
 
Bonjour,
mais pourqoi ma tempo ne fonctionne pas dans mon code??

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
enzo
 
Bonjour,
Fais un essai de manière à obliger excel à mettre à jour l'affichage avant le tempo.

Application.ScreenUpdating = False
ActiveSheet.Pictures.Insert("monimage.png" ).Select         
    With Selection.ShapeRange
        .Left = Target.Left
        .Top = Target.Top
    End With
Application.ScreenUpdating = True


En espérant que ça fonctionne...
0
renoncule62 Messages postés 94 Statut Membre 2
 
Bonjour,
Excuse la réponse tardive Enzo mais ça marche, merci !
Ceci dit je n'explique pas parfaitement pourquoi ça ne fonctionnait pas mais bon....

Merci encore
0