exécution automatique d'une macro si changement de valeur d'une cellule

  • Initiateur de la discussion Initiateur de la discussion FloreR
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

FloreR

XLDnaute Nouveau
Bonjour à tous,

j'ai un fichier dans lequel deux critères sont rentrés, respectivement en E5:F5 (cellules fusionnées) et E7:F7 (même chose).
La valeur de ces critères peut varier, et les choix sont conditionnées par une liste de validation de données. En gros, dans E5, je peux choisir "N" ou "T", et dans E7 "avec" ou "sans".

Selon les valeurs de ces deux cellules, j'aimerais que le reste de ma feuille soit classé différemment. J'applique un critère de tri des lignes qui sont situées en dessous différent, selon que j'ai N-avec, N-sans, T-avec, T-sans.

Je n'arrive pas à automatiser cela.
D'après ce que j'ai réussi à glaner par ailleurs sur le forum, je suppose que c'est quelque chose comme cela qu'il faudra écrire :

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("E5") = "T" & Range("E7") = "avec" Then
'j'exécute mon tri avec une formule du genre application("mamacrodetriT").run
End If
If Range("E5") = "N" & range("E7") = "sans" Then
'j'exécute un autre tri
'etc etc
End If
End Sub

Seulement, ce que j'ai testé pour l'instant (à savoir quelque chose d'un peu plus simple pour une première étape, histoire de voir si la méthode est bonne, en l'occurrence simplement changer la valeur d'une autre cellule, dans laquelle je n'ai aucune information - voir le code ci-dessous) ne fonctionne pas, et ça me fait systématiquement planter excel sur mon PC...


Private Sub Worksheet_Change(ByVal Target As Range)
If Range("E5") = "propriétés de danger T (toxicité humaine)" Then
Cells(5, 7) = "T"
End If
If Range("E5") = "propriétés de danger N (danger pour l'environnement)" Then
Range("G5") = "N"
End If
End Sub

Pourriez-vous m'aider ?
Merci d'avance !!!
Flore
 
Re : exécution automatique d'une macro si changement de valeur d'une cellule

Sans un bout de fichier, voilà le code de mon imagination
Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Crit
If Target.Address = "$E$5" Or Target.Address = "$E$7" Then
Crit = Range("e5").Value & Range("e7").Value
    Select Case Crit
        Case "Navec"
            MsgBox "Tri selon E5=N et E7=avec"
            'Exemple de tri :
            Range("A10:C20").Select
                ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
                ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("B11:B20") _
                    , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
                With ActiveWorkbook.Worksheets("Feuil1").Sort
                    .SetRange Range("A10:C20")
                    .Header = xlYes
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
                End With
            'Fin de l'exemple de tri
        Case "Tavec"
            MsgBox "Tri selon E5=T et E7=avec"
            '...
        Case "Nsans"
            MsgBox "Tri selon E5=N et E7=sans"
            '...
        Case "Tsans"
            MsgBox "Tri selon E5=T et E7=sans"
            '...
        Case Else
            MsgBox "E5 et E7 différents de N/T - avec/sans"
    End Select
End If
End Sub
 
Re : exécution automatique d'une macro si changement de valeur d'une cellule

Merci beaucoup !
En faisant un petit mélange de ton code et de mes anciennes macros, j'ai réussi à obtenir ce que je voulais...

Encore merci pour cette réponse qui m'a aidée à trouver la solution... Que deviendrait-on sans excel-downloads et tous ses contributeurs ? 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
223
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
317
Réponses
14
Affichages
469
  • Question Question
Microsoft 365 modifier un code
Réponses
1
Affichages
464
Retour