Macro qui ne fonctionne pas

  • Initiateur de la discussion Initiateur de la discussion palikao
  • 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 !

P

palikao

Guest
Voilà ma macro ne fonctionne pas et je ne vois pas pourquoi. Pouvez vous m'aider ?


Sub SélectionnerEpreuves()

Dim Lieu As String
Dim Cat As String
Dim Sexe As String

Lieu = Sheets("Annexe").Range("A2").Value
Cat = Sheets("Annexe").Range("B2").Value
Sexe = Sheets("Annexe").Range("A1").Value

If Lieu = Salle Then
If Sexe = M Then
If Cat = "BENJAMINS" Then
Sheets("Annexe").Range("B4:B11").Value = Sheets("Stade").Range("C11:C18").Value
Else
If Cat = "MINIMES M" Then
Sheets("Annexe").Range("B4:B11").Value = Sheets("Stade").Range("C29:C36").Value
Else
If Cat = "CADETS" Then
Sheets("Annexe").Range("B4:B13").Value = Sheets("Stade").Range("C50:C59").Value
Else
If Cat = "JUNIORS M" Then
Sheets("Annexe").Range("B4:B7").Value = Sheets("Stade").Range("C63:C66").Value
Else
If Cat = "SENIORS M" Then
Sheets("Annexe").Range("B4:B5").Value = Sheets("Stade").Range("C68:C69").Value
Else
If Cat = "VETERANS" Then
Sheets("Annexe").Range("B4:B11").Value = Sheets("Stade").Range("C71:C74").Value
End If
End If
End If
End If
End If
End If
If Sexe = F Then
If Cat = BENJAMINES Then
Sheets("Annexe").Range("B4:B11").Value = Sheets("Stade").Range("C2:C9").Value
Else
If Cat = "MINIMES F" Then
Sheets("Annexe").Range("B4:B11").Value = Sheets("Stade").Range("C20:C27").Value
Else
If Cat = "CADETTES" Then
Sheets("Annexe").Range("B4:B14").Value = Sheets("Stade").Range("C38:C48").Value
Else
If Cat = "JUNIORS F" Then
Sheets("Annexe").Range("B4:B4").Value = Sheets("Stade").Range("C61:C61").Value
End If
End If
End If
End If
End If
End If
End If


End Sub
 
Re : Macro qui ne fonctionne pas

Bonjour à tous,

Merci d'utiliser les balises "Code " (# en mode avancé) quand tu déposes et de joindre un fichier anonymisé.

VB:
Sub SélectionnerEpreuves()

    Dim Lieu As String
    Dim Cat As String
    Dim Sexe As String

    Lieu = Sheets("Annexe").Range("A2").Value
    Cat = Sheets("Annexe").Range("B2").Value
    Sexe = Sheets("Annexe").Range("A1").Value

    If Lieu = "Salle" Then
        If Sexe = "M" Then
            If Cat = "BENJAMINS" Then
                Sheets("Annexe").Range("B4:B11").Value = Sheets("Stade").Range("C11:C18").Value
            Else
                If Cat = "MINIMES M" Then
                    Sheets("Annexe").Range("B4:B11").Value = Sheets("Stade").Range("C29:C36").Value
                Else
                    If Cat = "CADETS" Then
                        Sheets("Annexe").Range("B4:B13").Value = Sheets("Stade").Range("C50:C59").Value
                    Else
                        If Cat = "JUNIORS M" Then
                            Sheets("Annexe").Range("B4:B7").Value = Sheets("Stade").Range("C63:C66").Value
                        Else
                            If Cat = "SENIORS M" Then
                                Sheets("Annexe").Range("B4:B5").Value = Sheets("Stade").Range("C68:C69").Value
                            Else
                                If Cat = "VETERANS" Then
                                    Sheets("Annexe").Range("B4:B11").Value = Sheets("Stade").Range("C71:C74").Value
                                End If
                            End If
                        End If
                    End If
                End If
            End If
            If Sexe = "F" Then
                If Cat = BENJAMINES Then
                    Sheets("Annexe").Range("B4:B11").Value = Sheets("Stade").Range("C2:C9").Value
                Else
                    If Cat = "MINIMES F" Then
                        Sheets("Annexe").Range("B4:B11").Value = Sheets("Stade").Range("C20:C27").Value
                    Else
                        If Cat = "CADETTES" Then
                            Sheets("Annexe").Range("B4:B14").Value = Sheets("Stade").Range("C38:C48").Value
                        Else
                            If Cat = "JUNIORS F" Then
                                Sheets("Annexe").Range("B4:B4").Value = Sheets("Stade").Range("C61:C61").Value
                            End If
                        End If
                    End If
                End If
            End If
        End If
    End If
End Sub

A + à tous
 
Dernière édition:
Re : Macro qui ne fonctionne pas

Bonsoir, salut JC 🙂,
Autrement
Code:
Sub SélectionnerEpreuves()
Dim Lieu$, Cat$, Sexe$
With Sheets("Annexe")
    Lieu = .Range("A2").Value
    Cat = .Range("B2").Value
    Sexe = .Range("A1").Value
    
    Select Case Lieu
    Case "Salle"
        Select Case Sexe
        Case "M"
            Select Case Cat
            Case "BENJAMINS"
                .Range("B4:B11").Value = Sheets("Stade").Range("C11:C18").Value
            Case "MINIMES M"
                .Range("B4:B11").Value = Sheets("Stade").Range("C29:C36").Value
            Case "CADETS"
                .Range("B4:B13").Value = Sheets("Stade").Range("C50:C59").Value
            Case "JUNIORS M"
                .Range("B4:B7").Value = Sheets("Stade").Range("C63:C66").Value
            Case "SENIORS M"
                .Range("B4:B5").Value = Sheets("Stade").Range("C68:C69").Value
            Case "VETERANS"
                .Range("B4:B11").Value = Sheets("Stade").Range("C71:C74").Value
            End Select
        Case "F"
            Select Case Cat
            Case CatBENJAMINES
                .Range("B4:B11").Value = Sheets("Stade").Range("C2:C9").Value
            Case "MINIMES F"
                .Range("B4:B11").Value = Sheets("Stade").Range("C20:C27").Value
            Case "CADETTES"
                .Range("B4:B14").Value = Sheets("Stade").Range("C38:C48").Value
            Case "JUNIORS F"
                .Range("B4:B4").Value = Sheets("Stade").Range("C61:C61").Value
            End Select
        End Select
    End Select
End With
End Sub
A+
kjin
 
Re : Macro qui ne fonctionne pas

Bonjour a tous


A tester avec chaines de caractères et Array

Code:
Sub SélectionnerEpreuves()
Dim r As Boolean, s%, v
Dim Lieu$, Cat$, Sexe$
chaineM = ";BENJAMINS ;;MINIMES M ;;CADETS    ;;JUNIORS M ;;SENIORS M ;;VETERANS  ;": chaineF = ";BENJAMINES;;MINIMES F ;;CADETTES  ;;JUNIORS F ;"
v = Array("C11:C18", "C29:C36", "C50:C59", "C63:C66", "C68:C69", "C71:C74", "C2:C9", "C20:C27", "C38:C48", "C61:C61")
With Sheets("Annexe")
Cat = ";" & .Range("B2") & Space(10 - Len(.Range("B2"))) & ";": Lieu = .Range("A2").Value: Sexe = .Range("A1").Value
s = InStr(1, chaineM, Cat): r = s: s = (s + 11) / 12 - 1
If Not r Then s = InStr(1, chaineF, Cat): r = s: s = (s + 11) / 12 - 1 + 6
If r and Lieu = "Salle" Then .Range("B4").Resize(.Range(v(s)).Count, 1) = .Range(v(s)).Value
End With
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
411
Réponses
4
Affichages
736
Réponses
4
Affichages
756
Réponses
5
Affichages
418
Réponses
3
Affichages
924
Retour