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. 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
  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. 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