Problème de format après insertion

Résolu
fandaor Messages postés 10 Statut Membre -  
fandaor Messages postés 10 Statut Membre -
Bonjour,
Et bonne année.

Je travaille sous Excel 2007.

Je suis en train de faire une Sub pour créer un calendrier. Une date par colonne.

Mon code est comme suit :

Sub Creation_Calendrier

Dim n As Long
Dim m As Long
Dim myFormul As String

Range ("A1").Select
For n = 1 to 370
m = n - 5

myFormul = "=AUJOURDHUI()+" & n

ActiveCell.Offset(ColumnOffset:=1).Activate
ActiveCell.FormulaR1C1 = myFormul

Next n
End Sub

Cela me propage bien la formule : =AUJOURDHUI()+n sur chaque cellule avec n en valeur numérique, mais mon soucis c'est que cela apparaît comme #NOM? et il faut que j'aille sur la cellule et que j'appuie sur Entrée quand je suis sur la cellule et alors j'ai bien ma date qui s'affiche.

Ma question est en fait multiple :
Comment faire pour que cela affiche bien la date sans avoir à repasser sur chaque cellule ?
J'aimerais dans l'absolu pouvoir faire un range qui va de
AUJOURDHUI()-5 à AUJOURDHUI+365
Mon soucis est pour le next... car je me retrouve avec un AUJOURDHUI()+-5....

Si quelqu'un a une idée simple, sinon je fais une exception sur les 5 premières valeurs.

Je vous remercie par avance de vos conseils.

Fand'

3 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Comme ceci:

    Option Explicit
    Dim n As Long
    Dim myFormul As String
    Private Sub CommandButton1_Click()
    Creation
    Creation_Calendrier
    End Sub
    Sub Creation_Calendrier()
    Range("F1").Select
    For n = 1 To 370 ' a adapter
    ActiveCell.Offset(ColumnOffset:=1).Activate
    ActiveCell.FormulaR1C1 = "=TODAY()+" & n
    Next n
    End Sub
    Sub Creation()
    Range("A1").Select
    For n = 4 To 0 Step -1
    ActiveCell.Offset(ColumnOffset:=1).Activate
    ActiveCell.FormulaR1C1 = "=TODAY()-" & n
    Next n
    End Sub
    

    1
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Il faut mettre :

      For n = 1 To 361

      pour ne pas dépasser l'année 2016

      Voilà
      0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Utilisez FormulaLocal au lieu de FormulaR1C1 :

    Sub Creation_Calendrier()
    Dim n As Long
    
    Range("A1").Select
    For n = 1 To 370
       ActiveCell.Offset(0, n).FormulaLocal = "=AUJOURDHUI()+" & n
    Next n
    End Sub

    0
  3. fandaor Messages postés 10 Statut Membre
     
    Super !

    Merci bien pour vos réponses.

    Je viens de tester et cela fonctionne impeccable !

    Fand'
    0