Problème de format après insertion

Résolu/Fermé
fandaor Messages postés 9 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 12 janvier 2016 - Modifié par pijaku le 6/01/2016 à 08:54
fandaor Messages postés 9 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 12 janvier 2016 - 6 janv. 2016 à 09:43
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 jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
5 janv. 2016 à 17:51
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 jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
5 janv. 2016 à 18:05
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
6 janv. 2016 à 08:58
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 mardi 5 janvier 2016 Statut Membre Dernière intervention 12 janvier 2016
6 janv. 2016 à 09:43
Super !

Merci bien pour vos réponses.

Je viens de tester et cela fonctionne impeccable !


Fand'
0