incrémenter une date (x) fois

  • Initiateur de la discussion Initiateur de la discussion titof
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

titof

Guest
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
 
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
'--------------------------
 
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
 
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")
 
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
 
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
 
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
 
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
 
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
'--------------------------
 
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
 
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 ;-)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
20
Affichages
1 K
Réponses
8
Affichages
647
Réponses
2
Affichages
885
Retour