Probléme Application.Wait

Fermé
renoncule62 Messages postés 83 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 1 juillet 2012 - 22 nov. 2011 à 14:42
renoncule62 Messages postés 83 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 1 juillet 2012 - 24 nov. 2011 à 17:21
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 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
22 nov. 2011 à 14:46
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 83 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 1 juillet 2012 2
22 nov. 2011 à 14:51
Merci pour cette précision chossette9, c' est sympa...
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
22 nov. 2011 à 14:55
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 83 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 1 juillet 2012 2
22 nov. 2011 à 14:56
Merci encore...
0
renoncule62 Messages postés 83 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 1 juillet 2012 2
23 nov. 2011 à 04:09
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
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 83 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 1 juillet 2012 2
24 nov. 2011 à 17:21
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