incrémenter une date (x) fois

titof

XLDnaute Nouveau
Bonjour tout le monde
Je suis bloqué sur excel !

J'ai une date de debut connue dans une cellule. je veux incrémenter cette au dessous en nbre de fois (x) , tout dépend du besoin?

Je m'explique:

Date de début: 01/01/2013
X= 3
Résultat:
* 01/01/2013 " date départ"
02/01/2013
03/01/2013.

Si j'ai x = 6

Le résultat:
* 01/01/2013 " date départ"
02/01/2013
03/01/2013
04/01/2013
05/01/2013
06/01/2013

Et ainsi de suite...
Merci pour votre aide

Titof
 

MichD

XLDnaute Impliqué
Re : incrémenter une date (x) fois

Bonjour,

Par macro, c'est possible d'utiliser ceci :

En A1 : cellule de départ contenant la date
L'incrémentation se fait de A1 à A3

Tu n'as qu'à modifier le 3 pour le chiffre que tu désires!

'--------------------------
Sub test()
With Range("A1")
.AutoFill Destination:=.Resize(3), Type:=xlFillDays
End With
End Sub
'--------------------------
 

vgendron

XLDnaute Barbatruc
Re : incrémenter une date (x) fois

hello MichD

Je me suis permis d'intégrer ta solution (plus simple et rapide) dans le fichier (bouton 2)
 

Pièces jointes

  • Incrémente.xls
    31.5 KB · Affichages: 32
  • Incrémente.xls
    31.5 KB · Affichages: 39
  • Incrémente.xls
    31.5 KB · Affichages: 37

titof

XLDnaute Nouveau
Re : incrémenter une date (x) fois

Merci à MichD et Vgen
Mais le x est une variable, pour la solution de MichD je dois changer le code à chaque fois que le x change.
Donc je préfère le code de vgen qui met NB comme donné d'entrée variable. Mais mon nb se trouve à une cellule bien précise par exemple: N6 car il s'agit d'un formulaire et les emplacements sont étudiés, ainsi pour la date de départ qui se trouve à : A14

Comment dois-je changer le code au niveau de:
Cells(1, 1)
Cells(1, 2)
Cells(i, 1) = Cells(i - 1, 1) + 1

Je pense qu'il me reste que cette modification pour cloturer le sujet parfaitement
je vous remercie d'avance
 

vgendron

XLDnaute Barbatruc
Re : incrémenter une date (x) fois

Dans le code: Cells(1,2) ca veut dire: cellule ligne1 colonne 2: donc. cellule B1
Cells(1,2) est équivalent à range("B1")

donc. si tu veux récupérer le nombre d'itérations en N6 il suffit de mettre: Cells(6,14) ou range("N6")
 

titof

XLDnaute Nouveau
Re : incrémenter une date (x) fois

Bonjour
Je pense dans mon contexte, cette boucle ne peut pas s'éxécuter !
For i = 2 To Nb
Cells(i, 1) = Cells(i - 1, 1) + 1

Puisque le i est récupéré de cells(6,14) et on suppose qu'il est i=5
la datedepart est à cells(14,1) !! donc, les résultats ne s'afficheront pas après la date de départ !

Dans l'exemple que vous avez donné , ok. Mais dans mon contexte le code peut être différent

Merci pour votre réponse
 

titof

XLDnaute Nouveau
Re : incrémenter une date (x) fois

Bonjour
je pense que le code serait comme suit :

Sub incrémente()

DateDepart = Cells(14, 1) 'en cellule A14
Nb = Cells(6, 14) 'en cellule N6
L=ligne(A14)

For i = 2 To Nb
Cells(L+1, 1) = Cells(L, 1) + 1
Next i

End Sub
 

titof

XLDnaute Nouveau
Re : incrémenter une date (x) fois

bonjour
en fait voici le code final testé:

Sub incrémente()

DateDepart = Cells(14, 1) 'en cellule A14
Nb = Cells(6, 14) 'en cellule N6
L=14

For i = 2 To Nb
Cells(L+1, 1) = Cells(L, 1) + 1
l=l+1
Next i

End Sub

MERCI POUR VOTRE AIDE ET COLLABORATION
 

vgendron

XLDnaute Barbatruc
Re : incrémenter une date (x) fois

bonjour,

Ta macro ne fera pas ce que tu veux. elle copie toujours sur la meme cellule..

Ci dessous
la date de départ est en A14
le nombre d'itérations en N6
les dates à créer en dessous de A14

Code:
Sub incrémente()

DateDepart = Cells(14, 1) 'récupère la première date en cellule A14
Nb = Cells(6, 14) 'récupère le nombre d'itérations en cellule N6
L=ligne(A14) 'récupère le numéro de ligne de A14 

For i = L To L+Nb 'boucle pour aller de la ligne 14 jusqu'à la ligne 14+Nb
Cells(i+1, 1) = Cells(i, 1) + 1
Next i

End Sub
 

MichD

XLDnaute Impliqué
Re : incrémenter une date (x) fois

Le 3 peut-être remplacé par une variable

Tu n'as qu'à modifier le 3 pour le chiffre que tu désires!

'--------------------------
Sub test()
Dim X As Integer
X = Range("G10") 'La cellule de ton choix
With Range("A1")
.AutoFill Destination:=.Resize(x), Type:=xlFillDays
End With
End Sub
'--------------------------
 

titof

XLDnaute Nouveau
Re : incrémenter une date (x) fois

bonjour,
j'ai met L=14 comme constante car il me donne erreur quand je met: L=ligne(A14) !!
L'erreur VBA est:
"erreur de compilation, Sub ou Fonction non définie, Ok/Aide" !!

Donc j'ai défini l=14 ( numéro de ligne de la datedepart)
puis j'ai aussi une boucle pour l=l+1 pour passer à la ligne suivante

J'ai testé et ça fonctionne trés bien, maintenant sur le plan optimisation du code , je ne sais pas s'il est le plus optimisé.

-----------------
Pour michD:
il y'a aussi erreur VBA dans le code :

"erreur d'éxécution '1004':
erreur définie par l'application ou par l'objet"

Sinon je suis d'accord pour la variable x.

Une question SVP :
- j'ai ouvert mon fichier excel
-je suis passé sur vba
- j'ai collé le code vba
- j'ai exécuté et ça a fonctionné

Comment intégré maintenant cette macro ou ce code au fichier excel ??? comment dois-je l'enregistrer pour ce classeur ??
sachant que j'ai crée un bouton genre: "afficher les dates"

Merci pour vous deux
Cordialement,
Titof
 

vgendron

XLDnaute Barbatruc
Re : incrémenter une date (x) fois

Re

alors;. pour le code en fait il faut mettre
Code:
Sub incrémente3()

DateDepart = [A14] 'récupère la première date en cellule A14
Nb = [N6] 'récupère le nombre d'itérations en cellule N6
L = [A14].Row 'récupère le numéro de ligne de A14

For i = L To L + Nb 'boucle pour aller de la ligne 14 jusqu'à la ligne 14+Nb
Cells(i + 1, 1) = Cells(i, 1) + 1
Next i

End Sub

tu remarqueras que j'ai changé Cells(14,1) par [A14], c'est strictement la meme chose, tu pourrais aussi mettre range("A14")
idem pour N6
pour l'erreur à cause de ligne.. c'est ma faute.. l'équivalent en vba c'est .row

pour enregistrer ton fichier, tu es sous Xl2010. je suppose que c'est pareil que XL2007, il faut prendre le format xlsm (m comme macro)
voila ;-)
 

Discussions similaires

Réponses
10
Affichages
321

Statistiques des forums

Discussions
312 913
Messages
2 093 534
Membres
105 751
dernier inscrit
fred13340