Petit probléme en VBA

Résolu
Bonjour,

j'ai un probléme sur le bout de macro suivant :

If mois = février Then
Set envoi = range("F3:F34")
For Each Cell In envoi
Cell = Date
Next Cell
end if

le but est d'écrire la date d'execution de la macro dans envoi, c'est à dire dans les cellule F3 à F34.

la macro fonctionne sans message d'erreur, mais probléme, rien ne s'écrit dans les cellules.

Merci d'avance


--
Si le probléme est résolue, mettez votre poste en résolue!

3 réponses

  1. Voici el code en entier, l'erreur se situe sans doute en déclaration de variable dans ce cas :

    Sub dateEnvoie() 
    
    Dim envoi As range 
    Dim annee As String 
    Dim mois As String 
    
    
    
    annee = InputBox("dans quelle année voulez vous travailler (format Suivi AAAA)", "choix année") 
    mois = InputBox("quelle est la campagne (février, mai, août ou novembre)", "campagne") 
    
    
    Worksheets(annee).Select 
    
    
    If mois = "février" Then 
        Set envoi = range("F3:F34") 
        For Each Cell In envoi 
        Cell = Date 
        Next Cell 
         
    If mois = mai Then 
        Set envoi = range("H3:H34") 
        For Each Cell In envoi 
        Cell = Date 
        Next Cell 
         
    If mois = août Then 
        Set envoi = range("J3:J34") 
            For Each Cell In envoi 
        Cell = Date 
        Next Cell 
      
    Else: MsgBox ("la date est fausse") 
    
    End If 
    End If 
    End If 
    
    
    
    End Sub  

    Si le probléme est résolue, mettez votre poste en résolue!
    0
    1. L'erreur est peut-être sur :
      mois = InputBox("quelle est la campagne (février, mai, août ou novembre)", "campagne") 

      Parce que la, il faut écrire exactement "février" pour que le If fonctionne...
      0
    2. j'ai pensé à l'accent. mais j'ai essayer avec mai, et le probléme est le demeure.
      0
    3. en le faisant pas à pas, il rentre dans le IF, la boucle next marche, mais rien ne s'écrit....
      0
    4. Il faut bien déclarer la variable:
      Dim cell As Range
      pour le For Each
      0
    5. bonjour,

      je viens de tester et c'est bon. merci beaucoup
      0
  2. bonjour

    février est elle une variable?
    sinon peut être
    If mois = "février" Then

    RQ1 au cas où. Déclares systématiquement tes variables et met la directive Option Explicit en début de module histoire de t'obliger à le faire
    RQ2. met un point d'arret devant if (clic dans la marge) puis exécutes en mode pas à pas (F8) pour voir ce qui se passe (clic sur les variables pour voir leur valeur).

    bonne suite
    0
    1. Bonjour,
      A mon avis, il ne passe pas dans le If, parce que février est une chaîne de caractères.
      Il faut écrire :
      If mois = "février" Then
      A+!

      -------------------
      Cordialement,
      Clément
      0
      1. Bonjour,

        en effet, mois est en string. J'ai tester les guillemets. Le probléme reste entier!

        dois-je poster tout mon code? il n'est pas trés long
        0
      2. Oui ce serait toujours un plus pour t'aider !
        0