Sélection automatique liste déroulante

Où est ton code ?

Bonjour,

Vous faites

image

Et vous obtenez

image

"Case Else" doit être toujours mis en dernier

Ensuite avec un code bien indenté (pensez à Rubberduck), on voit ou cela manque

Function MajTypeDiffusion(ByVal DateEmission As Variant, ByVal TimeIn As Date, ByVal DateJournee As Date, ByVal TitreEmission As String) As String
  MajTypeDiffusion = ""

  Select Case TitreEmission
  Case "Météo"
    Select Case TimeIn * 24
    Case Is <= 20.5
      MajTypeDiffusion = "1ere Diff"
    Case Is > 20.5
      MajTypeDiffusion = "Rediff"
    End Select

  Case TitreEmission = "Ça bouge à la maison"
    MajTypeDiffusion = "1ere Diff"
  Case Else

    Select Case DateEmission
    Case "-"
      MajTypeDiffusion = "-"
    Case "A remplir"
      MajTypeDiffusion = "Erreur"
    Case Else
      Select Case TimeIn * 24
      Case Is < 18.5
        MajTypeDiffusion = "Rediff"
      Case 18.5 To 20.5
        Select Case TitreEmission
        Case "Sport Passion"
          MajTypeDiffusion = "1ere Diff"
        Case "XXXXX"
          MajTypeDiffusion = "AAAAA"
        Case "YYYYY"
          MajTypeDiffusion = "BBBB"
        Case Is > 20.5
          MajTypeDiffusion = "Rediff"
        Case Else
          MajTypeDiffusion = "1ere Diff"
        End Select
      End Select
    End Select

    If MajTypeDiffusion = "" Then MajTypeDiffusion = "Inconnue"

  End Function

Je dis ça, je dis rien

Je teste ça merci beaucoup Bruno

Même erreur

Function MajTypeDiffusion(ByVal DateEmission As Variant, ByVal TimeIn As Date, ByVal DateJournee As Date, ByVal TitreEmission As String) As String
  MajTypeDiffusion = ""

  Select Case TitreEmission
  Case "Météo"
    Select Case TimeIn * 24
    Case Is <= 20.5
      MajTypeDiffusion = "1ere Diff"
    Case Is > 20.5
      MajTypeDiffusion = "Rediff"
    End Select

  Case TitreEmission = "Ça bouge à la maison"
    MajTypeDiffusion = "1ere Diff"
  Case Else

    Select Case DateEmission
    Case "-"
      MajTypeDiffusion = "-"
    Case "A remplir"
      MajTypeDiffusion = "Erreur"
    Case Else
      Select Case TimeIn * 24
      Case Is < 18.5
        MajTypeDiffusion = "Rediff"
      Case 18.5 To 20.5
        Select Case TitreEmission
        Case "Sport Passion"
          MajTypeDiffusion = "1ere Diff"
        Case "XXXXX"
          MajTypeDiffusion = "AAAAA"
        Case "YYYYY"
          MajTypeDiffusion = "BBBB"
        Case Is > 20.5
          MajTypeDiffusion = "Rediff"
        Case Else
          MajTypeDiffusion = "1ere Diff"
        End Select
      End Select
    End Select

    If MajTypeDiffusion = "" Then MajTypeDiffusion = "Inconnue"

  End Function

Je compte 5 select case et 4 end

capture d ecran 2022 02 18 a 10 26 36

Re,

Et donc...

Chez moi, je n'ai pas d'erreur :

Function MajTypeDiffusion(ByVal DateEmission As Variant, ByVal TimeIn As Date, ByVal DateJournee As Date, ByVal TitreEmission As String) As String

    MajTypeDiffusion = ""

    Select Case TitreEmission
           Case "Météo"
                   Select Case TimeIn * 24
                        Case Is <= 20.5
                             MajTypeDiffusion = "1ere Diff"
                        Case Is > 20.5
                                MajTypeDiffusion = "Rediff"
                   End Select

           Case TitreEmission = "Ça bouge à la maison"
                MajTypeDiffusion = "1ere Diff"
    Case Else

       Select Case DateEmission
              Case "-"
                   MajTypeDiffusion = "-"
              Case "A remplir"
                   MajTypeDiffusion = "Erreur"
              Case Else
                   Select Case TimeIn * 24
                          Case Is < 18.5
                             MajTypeDiffusion = "Rediff"
                          Case 18.5 To 20.5
                               Select Case TitreEmission
                                      Case "Sport Passion"
                                            MajTypeDiffusion = "1ere Diff"
                                      Case "XXXXX"
                                            MajTypeDiffusion = "AAAAA"
                                      Case "YYYYY"
                                           MajTypeDiffusion = "BBBB"
                                      Case Else
                                           MajTypeDiffusion = "1ere Diff"
                              End Select
                        Case Is > 20.5
                                MajTypeDiffusion = "Rediff"
                   End Select
        End Select

    End Select

    If MajTypeDiffusion = "" Then MajTypeDiffusion = "Inconnue"

End Function

Bonjour Eric,

Tu sais le CRTL+C et CTRL+V c'est compliqué

En H3, tu dois avoir 4 paramètres à rentrer :

=MajTypeDiffusion([@Date];[@[Heure IN]];$F$1;[@[Titre Emission]])

Alors je n'ai plus d'erreur, toutefois j'ai des résultats plutôt incohérents qui sont renvoyés avec cette fonction.

capture d ecran 2022 02 18 a 10 55 03 capture d ecran 2022 02 18 a 10 55 27 capture d ecran 2022 02 18 a 10 55 51

Je vous met une version légère du fichier pour que vous puissiez vous faire une idée

6test-grille2.zip (686.20 Ko)

Et en effet c'est du pur copier coller donc pas la peine de remettre le code j'imagine.

Attention, ton clavier ne doit pas être le même que Français-Français. Il te faut vérifier dans le code ci-dessous une fois collé que Météo est correctement écrit et pour les autres émissions également.

Function MajTypeDiffusion(ByVal DateEmission As Variant, ByVal TimeIn As Date, ByVal DateJournee As Date, ByVal TitreEmission As String) As String

    MajTypeDiffusion = ""

    Select Case TitreEmission
           Case "Météo"
                   Select Case TimeIn * 24
                        Case Is <= 20.5
                             MajTypeDiffusion = "1ere Diff"
                        Case Is > 20.5
                                MajTypeDiffusion = "Rediff"
                   End Select

           Case TitreEmission = "Ca bouge à la maison"
                MajTypeDiffusion = "1ere Diff"
    Case Else

       Select Case DateEmission
              Case "-"
                   MajTypeDiffusion = "-"
              Case "A remplir"
                   MajTypeDiffusion = "Erreur"
              Case Else
                   Select Case TimeIn * 24
                          Case Is < 18.49
                             MajTypeDiffusion = "Rediff"
                          Case 18.49 To 20.51
                               Select Case TitreEmission
                                      Case "Le Journal", "Les yeux dans les yeux", "Genève à chaud"
                                            MajTypeDiffusion = "Direct"
                                          '  Debug.Print MajTypeDiffusion
                                      Case "XXXX"
                                            MajTypeDiffusion = "AAAAA"
                                      Case "YYYYY"
                                           MajTypeDiffusion = "BBBB"
                                      Case Else
                                           MajTypeDiffusion = "1ere Diff"
                              End Select
                        Case Is > 20.51
                                MajTypeDiffusion = "Rediff"
                   End Select
        End Select

    End Select

    If MajTypeDiffusion = "" Then MajTypeDiffusion = "Inconnue"

End Function

Bonjour Bruno

Petite adaptation des horaires mais ça fonctionne !!!

Merci infiniment pour votre patience !

Function MajTypeDiffusion(ByVal DateEmission As Variant, ByVal TimeIn As Date, ByVal DateJournee As Date, ByVal TitreEmission As String) As String

    MajTypeDiffusion = ""

    Select Case TitreEmission
           Case "Météo"
                   Select Case TimeIn * 24
                        Case Is <= 20.5
                             MajTypeDiffusion = "1ere Diff"
                        Case Is > 20.5
                                MajTypeDiffusion = "Rediff"
                   End Select

           Case TitreEmission = "Ca bouge à la maison"
                MajTypeDiffusion = "1ere Diff"
    Case Else

       Select Case DateEmission
              Case "-"
                   MajTypeDiffusion = "-"
              Case "A remplir"
                   MajTypeDiffusion = "Erreur"
              Case Else
                   Select Case TimeIn * 24
                          Case Is < 18.49
                             MajTypeDiffusion = "Rediff"
                          Case 18.49 To 20.49
                               Select Case TitreEmission
                                      Case "Le Journal", "Les yeux dans les yeux", "Genève à chaud"
                                            MajTypeDiffusion = "Direct"
                                          '  Debug.Print MajTypeDiffusion
                                      Case "XXXX"
                                            MajTypeDiffusion = "AAAAA"
                                      Case "YYYYY"
                                           MajTypeDiffusion = "BBBB"
                                      Case Else
                                           MajTypeDiffusion = "1ere Diff"
                              End Select
                        Case Is > 20.49
                                MajTypeDiffusion = "Rediff"
                   End Select
        End Select

    End Select

    If MajTypeDiffusion = "" Then MajTypeDiffusion = "Inconnue"

End Function
Rechercher des sujets similaires à "selection automatique liste deroulante"