Petit probléme en VBA

Résolu
tragg Messages postés 55 Statut Membre -  
tragg Messages postés 55 Statut Membre -
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. Morgothal Messages postés 1350 Statut Membre 184
     
    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. tragg Messages postés 55 Statut Membre 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. Morgothal Messages postés 1350 Statut Membre 184
       
      Oui ce serait toujours un plus pour t'aider !
      0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  3. tragg Messages postés 55 Statut Membre 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. Morgothal Messages postés 1350 Statut Membre 184
       
      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. tragg Messages postés 55 Statut Membre 1
       
      j'ai pensé à l'accent. mais j'ai essayer avec mai, et le probléme est le demeure.
      0
    3. tragg Messages postés 55 Statut Membre 1
       
      en le faisant pas à pas, il rentre dans le IF, la boucle next marche, mais rien ne s'écrit....
      0
    4. Morgothal Messages postés 1350 Statut Membre 184
       
      Il faut bien déclarer la variable:
      Dim cell As Range
      pour le For Each
      0
    5. tragg Messages postés 55 Statut Membre 1
       
      bonjour,

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