Macro en fonction de la valeur d'une cellule [Résolu/Fermé]

- - Dernière réponse :  bratak67 - 26 mai 2016 à 06:38
Bonjour,

Est ce que quelqu'un sait comment executer une macro en fonction de la valeur d'une cellule?

D'avance merci
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
16980
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 novembre 2019
3674
7
Merci
Salut,

Normal tout texte doit être entre "" c'est à dire "Mecachrome". Ensuite le nom de ta macro ne doit pas être précédé '
C'est à dire que tu dois saisir testtttttt

En fait voila le code que tu dois saisir

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("C10") = "Mecachrome" Then

testtttttt

End If
End Sub

Dès que dans ta cellule C10 tu aura Mecaghrome ta macro testttttt s'exécutera automatiquement

A+

Si ou dès que ton problème sera résolu n'oublis pas de le marquer ton statut résolu

Dire « Merci » 7

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 71266 internautes nous ont dit merci ce mois-ci

2
Merci
Tout d'abord merci de m'aider.

J'ai taper ceci :

Sub test()
'
' test Macro
'
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("E6") = Mecachrome Then
'
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Client")
.PivotItems("Mecachrome").Visible = True

End With
End Sub

Mais lorsque j'execute la macro je reçoit un message me disant qu'il y a une erreur de compilation. As tu une explication?

Encor merci
Messages postés
16980
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 novembre 2019
3674
2
Merci
Salut,

Non tu ne saisis pas une macro dans un module, Tu place l'ensemble du code comme je te l'ai écris dans le code feuille

Places ce code dans le code feuille en faisant clic droit sur l'onglet de ta feuille concernée/visualiser le code, une feuille blanche va s'ouvrir et fais un copier coller de ce code.

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A3") = 10 Then


'ICI PLACE TON CODE MACRO QUE TU SOUHAITES EXECUTER ou simplement le nom de ta macro que tu as créé dans un module par exemple Sub titi () tu saisis simplement titi et la macro titi s'exécutera automatiquement dès que dans ta cellule A3 il y aura 10


End If
End Sub


A+
Merçi
Ca marche
1
Merci
Je suis vraiment désolé mais je dois me planter à un moment,

Je tape :

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("C10") = Mecachrome Then


' testtttttt

End If
End Sub
et rien ne se passe (j'ai vérifier que la macro "testtttttt" fonctionne bien et c'est bon.

Qu'en penses tu?
1
Merci
Bonjour j'ai pour ambition de faire une macro qui nous met sur une autre feuille selon le résultat de la cellule.

Je pense avoir réussit tout ce qui à été dit mais je sais pas comment faire pour l'insérer dans une autre macro. Car le problème c'est que je veut exuter cette macro juste après l'enregistrement du résultat.

Je vous donne la macro avec les If:

"Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "G14" Then
Select Case Target.Value
Case Is = A

Ptouché

End If


If Target.Address = "G14" Then
Select Case Target.Value
Case Is = X
Ptouché

End If

If Target.Address = "G14" Then
Select Case Target.Value
Case Is = O
Ptouché

End If

If Target.Address = "G14" Then
Select Case Target.Value
Case Is = 0
Peau

End If

If Target.Address = "H10" Then
Select Case Target.Value
Case Is = Perdu
Pover

End If
End Sub
"



Que je veux mettre dans la macro suivante:

"Sub Navalrésult()
'
' Navalrésult Macro
' Macro enregistrée le 10/12/2013 par pedago
'


Rows("23:23").Select
Range("E23").Activate
Selection.Insert Shift:=xlDown
Range("G12").Select
Selection.Copy
Range("F23").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("G13").Select
Application.CutCopyMode = False
Selection.Copy
Range("G23").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("G14").Select
Application.CutCopyMode = False
Selection.Copy
Range("H23").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("G14").Select
Application.CutCopyMode = False
Selection.Copy
Range("H23").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("H26").Select

End Sub
"


Voilà le but c'est de faire un sorte d'affichage pour le résultat, car c'est une bataille navale et je voulais mettre les touchés, à l'eau et Game Over. C'est plus pour le fun (oui je sais il y a des trucs plus drôle ^^ ) et pour apprendre des trucs.

Voilà en espérant que ma question soit assez clair :D
Messages postés
16980
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 novembre 2019
3674
0
Merci
Salut,

Place ce code dans le code feuille en faisant clic droit sur la feuille concernée/visualiser le code, une feuille blanche va s'ouvrir et fais un copier coller de ce code.

ensuite tu l'adaptes, dans l'exemple, le déclenchement se fera lorsque la cellule A3 sera = à 10 mais tu peux également dire >= à 10 ou l'inverse ou avec un mot ="titi".
Ensuite dans l'espace vide place le code que tu souhaites exécuter

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A3") = 10 Then

'ICI PLACE TON CODE MACRO QUE TU SOUHAITES EXECUTER


End If
End Sub

A+
Bonjour, Je suis nul en excel et cette procédure m'a été très utile. Mecri
0
Merci
ça fonctionne!!!

Un grand merci à toi d'avoir prit le temps de te pencher sur mon problème.
Trés bonne continuation.

+++