Erreur de syntaxe ou de compilation

martine -  
 martine -
Bonjour, Ci dessous la macro que j'ai voulu reproduire . Mais cela me met "erreur de syntaxe" ou de "compilation". Est ce que quelqu'un pourrait ou se trouve l'erreur. Merci

Sub Masquer_Jour()
Dim Num_col As Long
For Num_col = 30 To 32
If Month(Cells(6, Num_Col))>=cells(1,1) then Columns(Num_col).Hidden = true
Columx(Num_col).Hidden = True
Else
Columns(Num_col).Hidden = False
End If
Next
Range("D6:AH18").ClearContents
End Sub

4 réponses

  1. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour,

    "Un message "elfe sans if" apparait et je n'arrive pas à trouver l'erreur"
    c'est normal, dans la ligne suivante:
    If Month(Cells(6, Num_Col))>=cells(1,1) then Columns(Num_col).Hidden = true , si après "Then" vous appliquez la condition au lieu de l'écrire sur la ligne suivante, dans ce cas il n'y a pas besoin de "End if".
    De plus, pourquoi répéter "Columns(Num_col).Hidden = True "

    Voici en plus court:
    Sub Masquer_Jour()
        Dim Num_col As Long
        For Num_col = 30 To 32
            If Month(Cells(6, Num_col)) >= Cells(1, 1) Then Columns(Num_col).Hidden = True Else: Columns(Num_col).Hidden = False
        Next
        Range("D6:AH18").ClearContents
    End Sub


    Cdlt
    1
    1. Yoyo01000 Messages postés 1720 Date d'inscription   Statut Membre Dernière intervention   168
       
      Salutations Frenchie ,

      je n'avais pas remarqué ta réponse avant de venir de lui répondre !

      C'est allégé, en effet :)
      0
  2. Yoyo01000 Messages postés 1720 Date d'inscription   Statut Membre Dernière intervention   168
     
    Bonjour,

    à tester :

    Sub Masquer_Jour()
    Dim Num_col As Long
    For Num_col = 30 To 32
    If Month(Cells(6, Num_Col))>=cells(1,1) then Columns(Num_col).Hidden = true
    Columns(Num_col).Hidden = True
    Else
    Columns(Num_col).Hidden = False
    End If
    Next
    Range("D6:AH18").ClearContents
    End Sub
    0
  3. martine
     
    Merci pour la formule mais il reste encore un problème. Un message "elfe sans if" apparait et je n'arrive pas à trouver l'erreur. Merci pour votre aide
    0
    1. Yoyo01000 Messages postés 1720 Date d'inscription   Statut Membre Dernière intervention   168
       
      ah ah, je n'avais pas remarqué le code après Then !

      Sub Masquer_Jour()
      Dim Num_col As Long
      For Num_col = 30 To 32
      If Month(Cells(6, Num_col)) >= Cells(1, 1) Then
      Columns(Num_col).Hidden = True
      Else
      Columns(Num_col).Hidden = False
      End If
      Next
      Range("D6:AH18").ClearContents
      End Sub    
      0