Problème de format après insertion

Résolu
fandaor Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
fandaor Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
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'
A voir également:

3 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Il faut mettre :

For n = 1 To 361

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

Voilà
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
fandaor Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Super !

Merci bien pour vos réponses.

Je viens de tester et cela fonctionne impeccable !


Fand'
0