Aide sur le VBA

Coucou tout le monde...

Je connai rien en VB et excel, or je dois faire en sorte que lorsque je modifie une valeur

dans une case (qui est sous forme de validation) cela efface 2 autre case.

Exemple :

A1: une date de début

B2: une date de fin

C3: une liste de validation "valeur1" valeur2" valeur3"

Des que l'on modifie C3, je dois effacé A1 et B2.

Quelqu'un peut il m'aider? Merci

Bonjour dydy,

Voici un code pour faire cela :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" Then
[A1].Clear
[B2].Clear
End If
End Sub

Si tu veux n'effacer que le contenu, tu remplaces "Clear" par "ClearContents"

Pour mettre en place la macro dans ton classeur, tu fais Alt+F11 (ouvre VBEditor)

Tu double cliques sur le nom de ta feuille dans l'explorateur de projets à gauche, et tu colles le code dans la page blanche.

Dans les fenêtres au-dessus, tu dois avoir "Worksheet" et "Change" qui sont apparus, il ne te reste plus qu'à retourner sous Excel et tester.

Modif efface

Bonjour,

Une autre façon qui évite de répéter toute la macro à chaque changement de valeur :

Private Sub Worksheet_Change(ByVal Target As Range)
'Macro par Dan pour dydy77 - XL pratique le 11/08/08
On Error GoTo Message
If Not Application.Intersect(Target, Range("C3")) Is Nothing Then
Application.EnableEvents = False
Range("A1,B2").ClearContents
Application.EnableEvents = True
End If
Exit Sub
Message:
Application.EnableEvents = True
End Sub

A placer en VBA comme Sylvain l'explique

Amicalement

Dan

Merci bien,

mais je voudrai savoir comment faire la meme chose sauf que la macro doit etre effectué sur la case C4 jusqu'a "la derniere valeur de la colonne c"

https://www.excel-pratique.com/~files/doc/exple_VB_v1.xls

voila un fichier exemple

Bonjour,

Code de Dan adapté...

Fichier

Cordialement,

Oups... erreur de post !

re,

V_Elbie, pourquoi erreur de post ?? Tu n'étais pas loin en fait.

La macro adaptée à cette demande et qui fonctionnera jusqu'au bas de la feuille colonne C :

Private Sub Worksheet_Change(ByVal Target As Range)
'Macro par Dan pour dydy77 - XL pratique le 11/08/08
Dim Lig As Integer
On Error GoTo Message
If Not Application.Intersect(Target, Range("C4", Range("C65536").End(xlUp))) Is Nothing Then
Lig = ActiveCell.Row
Application.EnableEvents = False
Range("A" & Lig & ":b" & Lig).ClearContents
Application.EnableEvents = True
End If
Exit Sub
Message:
Application.EnableEvents = True
End Sub

Amicalement

Dan

Re,

J'ai mis erreur de post car j'avais cliqué sur Citer au lieu de Editer... car je voulais mettre mon fichier joint en URL pour que ça soit plus esthétique...

Je n'étais pas loin en effet, c'est toujours avec les commandes du genre .End(xlup) que j'ai du mal, mais grâce au forum, je sens que je fais des progrès de jour en jour.

Merci Dan, et tous les autres... ceux qui répondent des trucs que je peux apprendre, mais aussi ceux qui posent les questions qui suscitent les réponses !

Cordialement,

Merci beaucoup sa fonctionne Mode [Résolu]

Rechercher des sujets similaires à "aide vba"