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

  • Votes
  • Date
  • Date décroissante
  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
    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
    2. Oui ce serait toujours un plus pour t'aider !
  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
    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!
      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...
      2. j'ai pensé à l'accent. mais j'ai essayer avec mai, et le probléme est le demeure.
      3. en le faisant pas à pas, il rentre dans le IF, la boucle next marche, mais rien ne s'écrit....
      4. Il faut bien déclarer la variable:
        Dim cell As Range
        pour le For Each
      5. bonjour,

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