Condition macro VBA

Bonjour à tous,

J'ai encore besoin de vous ...

Vous trouverez ci-après un code que j'utilise pour mon fichier :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = "$A$12:$A$15" Then

MsgBox Range("AH12")

End If

If Target.Address = "$A$16:$A$19" Then

MsgBox Range("AH16")

End If

Je souhaiterais que cette macro ne fonctionne que si les cellules $A$12:$A$15 ne soient pas vides.

Comment dois-je faire ?

Bonne réception.

Et si quelqu'un a une idée pour remplacer la forme du message, sans à avoir à cliquer sur "ok" à chaque fois qu'il apparaît ?

Salut VDE,

que penses-tu de ceci?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
UsedRange.ClearComments
If Not Application.Intersect(Target, Range("A12:A15")) Is Nothing Then
    If [AH12] <> "" Then
        Target.AddComment Range("AH12").Value
        Target.Comment.Shape.TextFrame.AutoSize = True
    End If
End If
'
End Sub

A+

76vde.xlsm (14.26 Ko)

Bonjour,

Merci pour ton aide.

Mais ça bug au niveau du :

Target.AddComment Range("AH12").Value

C'est grave docteur ?

Salut VDE,

aucun bug, ici...

Je ne vois donc pas où ça peut foirer chez toi...

Envoie ton fichier!

A+

mot de passe pour déverrouiller : VDE

Problème : ton fichier me demande de créer un compte de connexion... Que nenni!

A+

Bonjour,

On peut supposer que ce sont des cellules fusionnées ?

A+

Oui tu as raison, c'est à cause des cellules fusionnées ....

Ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

Je te remercie pour on aide.

Trop fort, Galopin!

A+

Bonjour à tous,

Je souhaiterais limiter la durée d'affichage d'un msgbox.

Ci-après le code que j'utilise :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = "$A$12:$A$15" Then

MsgBox Range("AH12")

End If

End Sub

Comment dois-je faire ?

D'avance merci.

Bonne réception.

Salut VDE,

toujours avec mon commentaire pour remplacer ta MsgBox...

Ajuster le nombre de secondes souhaité ici...

Application.OnTime Now + TimeValue("00:00:03"), "Rebours"

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
On Error Resume Next
'
UsedRange.ClearComments
Application.OnTime Now + TimeValue("00:00:03"), "Rebours", , False
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("A12:A15")) Is Nothing Then
    If [AH12] <> "" Then
        Target.AddComment Range("AH12").Value
        Target.Comment.Shape.TextFrame.AutoSize = True
        Application.OnTime Now + TimeValue("00:00:03"), "Rebours"
    End If
End If
'
On Error GoTo 0
'
End Sub

A+

2vde.xlsm (15.42 Ko)

Cool, c'est exactement ce que je voulais.

Encore merci pour ton aide.

Bonne journée.

Bonjour à tous,

J'ai encore un sujet à vous soumettre.

Voici le code que j'utilise :

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("N29")) Is Nothing Then Exit Sub

Application.EnableEvents = False

If Target = "Oui" Then Range("C29,M29,N29").ClearContents: Range("AD29").Value = "Oui"

Application.EnableEvents = True

End Sub

Je souhaiterais ajouter une condition une fois que le "Oui" est coché et que la cellule AD29 a affiché "Oui" : que ce "Oui" disparaisse si la case C29 est à nouveau incrémentée, donc plus vide.

Mais impossible à faire ....

Pouvez-vous m'aider ?

Bonne réception.

Salut VDE,

si j'ai bien démêlé l'écheveau...

Private Sub Worksheet_Change(ByVal Target As Range)
'
Application.EnableEvents = False
'
If Not Intersect(Target, [N29]) Is Nothing Then
    If Target = "" Then
        Union([C29], [M29]).ClearContents
        [AD29] = "Oui"
    End If
End If
'
If Not Intersect(Target, [C29]) Is Nothing Then If [C29] <> "" Then [AD29] = ""
'
Application.EnableEvents = True
'
End Sub

A+

Bonjour,

Merci mais ça ne fonctionne plus, plus rien ne s'efface ....

Alors, raconte avec des phrases ce que tu veux faire... et...

A+

Merci pour ta patience ...

Quand tu saisis "A" en C29, tout se calcule.

Quand tu saisis une date en M29 et "Oui" en N29 tout s'efface et "Oui" s'affiche en AD29.

Tout va bien jusqu'ici ...

Je voudrais juste quand tu saisis de nouveau "A" en C29, le "Oui" en C29, le "Oui" en AD29 s'efface.

Le mot de passe est VDE.

Merci ...

oups ......

Je voudrais juste quand tu saisis de nouveau "A" en C29, le "Oui" en AD29 s'efface.

Bonjour;

Merci encore pour ton aide.

J'ai (encore) un petit problème : dans le fichier "Données", je voudrais que la cellule C29 s'efface quand le résultat de la formule en AC29 est "Oui".

J'ai essayé sans succès plusieurs trucs.

Le mot de passe est VDE.

As-tu une solution ?

Bonne réception.

Rechercher des sujets similaires à "condition macro vba"