Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

code VBA qui fonctionne bizarement

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 !

titom59280

XLDnaute Junior
Bonjour a tous
J'ai ce bout de code qui fonctionne mais ce que je voudrais c'est avoir une liste déroulante sur la cellule K4 seulement si la celulle M1 est égale a EQUIPE A et que la cellule M2 est égale à JANVIER et d'autre liste déroulante selon d'autre critére
mais bizarrement les listes déroulante de la cellule K4 sont toujours affiché quelque soit la valeur des celulle M1 et M2
Je pense que le probléme vient de Workbook_SheetChange mais je ne vois pas comment modifié ca

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
With Range("$M$1").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="EQUIPE A, EQUIPE B, EQUIPE C, EQUIPE D"
End With
With Range("$M$2").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="JANVIER, FÉVRIER, MARS, AVRIL, MAI, JUIN, JUILLET, AOÛT, SEPTEMBRE, OCTOBRE, NOVEMBRE, DÉCEMBRE"
End With
If Range("$M$1").Value = "EQUIPE A" Then
    If Range("$M$2").Value = "JANVIER" Then
        With Range("$K$4").Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="01/01/2014 au 05/01/2014,27/01/2014 au 02/02/2014"
        End With
    ElseIf Range("$M$2").Value = "FÉVRIER" Then
        Range("$K$4").Value = "24/02/2014 au 02/03/2014"
    ElseIf Range("$M$2").Value = "MARS" Then
        Range("$K$4").Value = "24/03/2014 au 30/03/2014"
    ElseIf Range("$M$2").Value = "AVRIL" Then
        Range("$K$4").Value = "22/04/2014 au 27/04/2014"
    ElseIf Range("$M$2").Value = "MAI" Then
        Range("$K$4").Value = "19/05/2014 au 25/05/2014"
    ElseIf Range("$M$2").Value = "JUIN" Then
        Range("$K$4").Value = "16/06/2014 au 22/06/2014"
    ElseIf Range("$M$2").Value = "JUILLET" Then
        Range("$K$4").Value = "15/07/2014 au 20/07/2014"
    ElseIf Range("$M$2").Value = "AOÛT" Then
        Range("$K$4").Value = "11/08/2014 au 17/08/2014"
    ElseIf Range("$M$2").Value = "SEPTEMBRE" Then
        Range("$K$4").Value = "08/09/2014 au 14/09/2014"
    ElseIf Range("$M$2").Value = "OCTOBRE" Then
        Range("$K$4").Value = "06/10/2014 au 12/10/2014"
    ElseIf Range("$M$2").Value = "NOVEMBRE" Then
        Range("$K$4").Value = "03/11/2014 au 09/11/2014"
    ElseIf Range("$M$2").Value = "DÉCEMBRE" Then
        With Range("$K$4").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="01/12/2014 au 07/12/2014,29/12/2014 au 31/12/2014"
        End With
    End If
ElseIf Range("$M$1").Value = "EQUIPE B" Then
    If Range("$M$2").Value = "JANVIER" Then
        Range("$K$4").Value = "06/01/2014 au 12/01/2014"
    ElseIf Range("$M$2").Value = "FÉVRIER" Then
        Range("$K$4").Value = "03/02/2014 au 09/02/2014"
    ElseIf Range("$M$2").Value = "MARS" Then
        Range("$K$4").Value = "03/03/2014 au 09/03/2014"
    ElseIf Range("$M$2").Value = "AVRIL" Then
        With Range("$K$4").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="31/03/2014 au 06/04/2014,28/04/2014 au 04/05/2014"
        End With
    ElseIf Range("$M$2").Value = "MAI" Then
        Range("$K$4").Value = "26/05/2014 au 01/06/2014"
    ElseIf Range("$M$2").Value = "JUIN" Then
        Range("$K$4").Value = "23/06/2014 au 29/06/2014"
    ElseIf Range("$M$2").Value = "JUILLET" Then
        Range("$K$4").Value = "21/07/2014 au 27/07/2014"
    ElseIf Range("$M$2").Value = "AOÛT" Then
        Range("$K$4").Value = "18/08/2014 au 24/08/2014"
    ElseIf Range("$M$2").Value = "SEPTEMBRE" Then
        Range("$K$4").Value = "15/09/2014 au 21/09/2014"
    ElseIf Range("$M$2").Value = "OCTOBRE" Then
        Range("$K$4").Value = "13/10/2014 au 19/10/2014"
    ElseIf Range("$M$2").Value = "NOVEMBRE" Then
        Range("$K$4").Value = "10/11/2014 au 16/11/2014"
    ElseIf Range("$M$2").Value = "DÉCEMBRE" Then
        Range("$K$4").Value = "08/12/2014 au 14/12/2014"
    End If
ElseIf Range("$M$1").Value = "EQUIPE C" Then
    If Range("$M$2").Value = "JANVIER" Then
        Range("$K$4").Value = "13/01/2014 au 19/01/2014"
    ElseIf Range("$M$2").Value = "FÉVRIER" Then
        Range("$K$4").Value = "10/02/2014 au 16/02/2014"
    ElseIf Range("$M$2").Value = "MARS" Then
        Range("$K$4").Value = "10/03/2014 au 16/03/2014"
    ElseIf Range("$M$2").Value = "AVRIL" Then
        Range("$K$4").Value = "07/04/2014 au 13/04/2014"
    ElseIf Range("$M$2").Value = "MAI" Then
        Range("$K$4").Value = "26/05/2014 au 01/06/2014"
    ElseIf Range("$M$2").Value = "JUIN" Then
        Range("$K$4").Value = "30/06/2014 au 06/07/2014"
    ElseIf Range("$M$2").Value = "JUILLET" Then
        Range("$K$4").Value = "28/07/2014 au 03/08/2014"
    ElseIf Range("$M$2").Value = "AOÛT" Then
        Range("$K$4").Value = "25/08/2014 au 31/08/2014"
    ElseIf Range("$M$2").Value = "SEPTEMBRE" Then
        Range("$K$4").Value = "22/09/2014 au 28/09/2014"
    ElseIf Range("$M$2").Value = "OCTOBRE" Then
        Range("$K$4").Value = "20/10/2014 au 26/10/2014"
    ElseIf Range("$M$2").Value = "NOVEMBRE" Then
        Range("$K$4").Value = "17/11/2014 au 23/11/2014"
    ElseIf Range("$M$2").Value = "DÉCEMBRE" Then
        Range("$K$4").Value = "15/12/2014 au21/12/2014"
    End If
ElseIf Range("$M$1").Value = "EQUIPE D" Then
    If Range("$M$2").Value = "JANVIER" Then
     Range("$K$4").Value = "20/01/2014 au 26/01/2014"
    ElseIf Range("$M$2").Value = "FÉVRIER" Then
        Range("$K$4").Value = "17/02/2014 au 23/02/2014"
    ElseIf Range("$M$2").Value = "MARS" Then
        Range("$K$4").Value = "17/03/2014 au 23/03/2014"
    ElseIf Range("$M$2").Value = "AVRIL" Then
        Range("$K$4").Value = "14/04/2014 au 21/04/2014"
    ElseIf Range("$M$2").Value = "MAI" Then
        Range("$K$4").Value = "26/05/2014 au 01/06/2014"
    ElseIf Range("$M$2").Value = "JUIN" Then
        Range("$K$4").Value = "10/06/2014 au 15/06/2014"
    ElseIf Range("$M$2").Value = "JUILLET" Then
        Range("$K$4").Value = "07/07/2014 au 14/07/2014"
    ElseIf Range("$M$2").Value = "AOÛT" Then
        Range("$K$4").Value = "04/08/2014 au 10/08/2014"
    ElseIf Range("$M$2").Value = "SEPTEMBRE" Then
        Range("$K$4").Value = "01/09/2014 au 07/09/2014"
    ElseIf Range("$M$2").Value = "OCTOBRE" Then
        With Range("$K$4").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="29/09/2014 au 05/10/2014,27/10/2014 au 02/11/2014"
        End With
    ElseIf Range("$M$2").Value = "NOVEMBRE" Then
        Range("$K$4").Value = "24/11/2014 au 30/11/2014"
    ElseIf Range("$M$2").Value = "DÉCEMBRE" Then
        Range("$K$4").Value = "22/12/2014 au 28/12/2014"
    End If
End If
End Sub

Auriez vous une idée pour résoudre ce probléme
 
Re : code VBA qui fonctionne bizarement

Re

titom
Tu as testé ma suggestion ?
A moins que tu n'es pas vu mon message? Celui de 8h25...

EDITION:
Bonjour ROGER2327
Bonjour à toi aussi Dranreb 🙄
 
Dernière édition:
Re : code VBA qui fonctionne bizarement

Bonjour à tous, bonjour Staple1600.


Bonjour à tous

titom
Il serait fort prudent de remettre ceci à True en fin de code non?
Application.EnableEvents = False
Afin de vous évitez de perdre votre temps, voyez cette discussion :

Apparemment, notre ami n'a pas de temps à perdre en lisant les réponses à ses demandes...​


Bonne journée.



ℝOGER2327
#7040


Samedi 7 Sable 141 (Saint Birbe, juge - fête Suprême Quarte)
17 Frimaire An CCXXII, 6,5900h - cyprès
2013-W49-6T15:48:58Z
 
Re : code VBA qui fonctionne bizarement

Bonjour ROGER2327
Je me permettrais juste de microscopiques corrections de ce que vous y décrivez :

  1. l'exécution de la procédure en cours est suspendue, ses paramètres, variables locales et adresse de retour dans le programme appelant demeurent empilés en mémoire ;
  2. une nouvelle procédure Worksheet_Change est déclenchée pour traiter la modification de la valeur de la cellule J4, et pour ce faire un nouveau jeu de toutes ces nécessités est à son tour réservé et empilé en mémoire.
 
Re : code VBA qui fonctionne bizarement

Salut Staple1600
J'avais bien mis a la fin du code ceci :

Application.EnableEvents = False

j'ai surement oublié de le coller en meme temps que le code que g collé mais en tous cas il est présent dans mon code.


Et merci a tous pour vos réponse
 
Re : code VBA qui fonctionne bizarement

Re...


Approuvé !

(J'avais annoncé une description simplifiée du phénomène, ce qui n'empêche pas d'être précis.)


ℝOGER2327
#7041


Dimanche 8 Sable 141 (Conception du Père Ubu (AJ) - fête Suprême Seconde)
18 Frimaire An CCXXII, 0,3865h - lierre
2013-W49-7T00:55:40Z
 
Re : code VBA qui fonctionne bizarement

Salut Staple1600

Je suis désolé j'ai écrit
Application.EnableEvents = False

alors que sur mon code c'était bien
Application.EnableEvents = True

Fatigue quand tu nous tiens hier je faisais vraiment n'importe quoi j'ai passé 45 minutes a essayé de comprendre pk après une modif mon code ne fonctionnait plus pour finalement m'apercevoir que j'avais supprimé une colonne et que les cellules n'était forcement plus les mêmes.
 
- 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
5
Affichages
234
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
649
Réponses
2
Affichages
511
Réponses
3
Affichages
664
Réponses
3
Affichages
298
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…