Comme faire une liste de date automatique ?

* zako
Anonyme
Envoyé le 05/10/2012 à 13:59

Bonjour,
voila dans word 2007 je voudrais savoir comment faire pour passé de ça :

01/10/2012
01/10/2012
01/10/2012
01/10/2012
01/10/2012

à ça :

01/10/2012
02/10/2012
03/10/2012
04/10/2012
05/10/2012

de manière automatique un peu comme une puce.. à chaque fois que vous appuyer sur "entrée"
merci

Bipbipcoyote Bipbipcoyote
3 003 contributions
Membre depuis le 06/03/2001
Envoyé le 06/10/2012 à 14:57


Bonjour,
ceci n'est pas une façon automatique de le faire mais cela évite de taper soi-même les dates
1. faire apparaître le menu "développeur" (pour cela, aller sur la commande fichier puis "options" puis "personnaliser le ruban" ; mettre une coche pour sélectionner le menu "développeur"
2. revenir dans le document, sélectionner ce menu, et dans la partie "contrôle" il y a une icône pour un datepicker (en français un "contrôle du contenu de sélecteur de date", cliquer dessus pour l'insérer dans le document , on obtient alors une liste déroulante, si vous cliquez sur la flèche, un calendrier apparaît, il suffit alors de sélectionner la date que l'on souhaite et elle apparaît dans le document.

Si plus tard, vous souhaitez la modifier faites un clic sur la date, la liste déroulante avec son datepicker réapparaît

Voilà ce n'est pas tout à fait la réponse attendue mais cela peut déjà faciliter la vie de l'utilisateur
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
* zako
Anonyme
Envoyé le 06/10/2012 à 17:23

Bonjour,
c'est gentil, mais ça ne mets d'aucune utilité..


Claude40 Claude40
1 531 contributions
Membre depuis le 24/03/2010
Envoyé le 06/10/2012 à 20:23 Modifié par Claude40


Bonsoir,
Voici une macro qui réalise (à peu près) l’objectif. Différence : la macro demande la première date et l’écrit à l’endroit ou se trouve le curseur.
Les 4 autres dates sont écrites sur les lignes suivantes.
Dans cette macro, l’intervalle est de 1 journée entre les dates, mais il peut être paramétré, en diverses valeurs de la seconde à l’année.
Dans cette macro également, l’incrémentation est limitée à 4 fois à partir de la première date, mais on peut faire plus. La macro peut aussi être plus sophistiquée avec des boucles et un dialogue pour demander , outre la première date , le type d’intervalle et le nombre d’intervalles.

Sub date1()
'
' date1 Macro
'
Dim FirstDate As Date ' Déclare les variables.
Dim Date2 As Date
Dim Date3 As Date
Dim Date4 As Date
Dim Date5 As Date

Dim IntervalType As String
Dim Number As Integer ‘ indique le nombre d’intervalles
Number = 1
IntervalType = "d" ' "d" indique l'intervalle en jours.
FirstDate = InputBox("Entrez la première date")
Date2 = DateAdd(IntervalType, Number, FirstDate)
Date3 = DateAdd(IntervalType, Number, Date2)
Date4 = DateAdd(IntervalType, Number, Date3)
Date5 = DateAdd(IntervalType, Number, Date4)
Selection.TypeText Text:=FirstDate
Selection.TypeParagraph
Selection.TypeText Text:=Date2
Selection.TypeParagraph
Selection.TypeText Text:=Date3
Selection.TypeParagraph
Selection.TypeText Text:=Date4
Selection.TypeParagraph
Selection.TypeText Text:=Date5
Selection.TypeParagraph
End Sub

Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
* zako
Anonyme
Envoyé le 07/10/2012 à 18:16

Bonjour,
merci pour cette réponse très utile !!!
voila de mon coté j'ai voulu rajouter des dates jusqu'au 31, j'ai donc procédé comme tu pourras le voir en dessous, tu me diras si il y avais plus simple ou non..

Par contre je voudrais savoir si il est possible de modifier la macro pour faire afficher la date sous ce format : 07-10-12
et si il est possible de faire ajouter ça derrière : " - "
ce qui donnerait : 07-10-12 -
merci d'avance [:D]
------------------------------------


Sub Date_pour_podcast()
'
' date1 Macro
'
Dim FirstDate As Date ' Déclare les variables.
Dim Date2 As Date
Dim Date3 As Date
Dim Date4 As Date
Dim Date5 As Date
Dim Date6 As Date
Dim Date7 As Date
Dim Date8 As Date
Dim Date9 As Date
Dim Date10 As Date
Dim Date11 As Date
Dim Date12 As Date
Dim Date13 As Date
Dim Date14 As Date
Dim Date15 As Date
Dim Date16 As Date
Dim Date17 As Date
Dim Date18 As Date
Dim Date19 As Date
Dim Date20 As Date
Dim Date21 As Date
Dim Date22 As Date
Dim Date23 As Date
Dim Date24 As Date
Dim Date25 As Date
Dim Date26 As Date
Dim Date27 As Date
Dim Date28 As Date
Dim Date29 As Date
Dim Date30 As Date
Dim Date31 As Date

Dim IntervalType As String
Dim Number As Integer ‘ indique le nombre d’intervalles
Number = 1
IntervalType = "d" ' "d" indique l'intervalle en jours.
FirstDate = InputBox("Entrez la première date")
Date2 = DateAdd(IntervalType, Number, FirstDate)
Date3 = DateAdd(IntervalType, Number, Date2)
Date4 = DateAdd(IntervalType, Number, Date3)
Date5 = DateAdd(IntervalType, Number, Date4)
Date6 = DateAdd(IntervalType, Number, Date5)
Date7 = DateAdd(IntervalType, Number, Date6)
Date8 = DateAdd(IntervalType, Number, Date7)
Date9 = DateAdd(IntervalType, Number, Date8)
Date10 = DateAdd(IntervalType, Number, Date9)
Date11 = DateAdd(IntervalType, Number, Date10)
Date12 = DateAdd(IntervalType, Number, Date11)
Date13 = DateAdd(IntervalType, Number, Date12)
Date14 = DateAdd(IntervalType, Number, Date13)
Date15 = DateAdd(IntervalType, Number, Date14)
Date16 = DateAdd(IntervalType, Number, Date15)
Date17 = DateAdd(IntervalType, Number, Date16)
Date18 = DateAdd(IntervalType, Number, Date17)
Date19 = DateAdd(IntervalType, Number, Date18)
Date20 = DateAdd(IntervalType, Number, Date19)
Date21 = DateAdd(IntervalType, Number, Date20)
Date22 = DateAdd(IntervalType, Number, Date21)
Date23 = DateAdd(IntervalType, Number, Date22)
Date24 = DateAdd(IntervalType, Number, Date23)
Date25 = DateAdd(IntervalType, Number, Date24)
Date26 = DateAdd(IntervalType, Number, Date25)
Date27 = DateAdd(IntervalType, Number, Date26)
Date28 = DateAdd(IntervalType, Number, Date27)
Date29 = DateAdd(IntervalType, Number, Date28)
Date30 = DateAdd(IntervalType, Number, Date29)
Date31 = DateAdd(IntervalType, Number, Date30)
Date32 = DateAdd(IntervalType, Number, Date31)

Selection.TypeText Text:=FirstDate
Selection.TypeParagraph
Selection.TypeText Text:=Date2
Selection.TypeParagraph
Selection.TypeText Text:=Date3
Selection.TypeParagraph
Selection.TypeText Text:=Date4
Selection.TypeParagraph
Selection.TypeText Text:=Date5
Selection.TypeParagraph
Selection.TypeText Text:=Date6
Selection.TypeParagraph
Selection.TypeText Text:=Date7
Selection.TypeParagraph
Selection.TypeText Text:=Date8
Selection.TypeParagraph
Selection.TypeText Text:=Date9
Selection.TypeParagraph
Selection.TypeText Text:=Date10
Selection.TypeParagraph
Selection.TypeText Text:=Date11
Selection.TypeParagraph
Selection.TypeText Text:=Date12
Selection.TypeParagraph
Selection.TypeText Text:=Date13
Selection.TypeParagraph
Selection.TypeText Text:=Date14
Selection.TypeParagraph
Selection.TypeText Text:=Date15
Selection.TypeParagraph
Selection.TypeText Text:=Date16
Selection.TypeParagraph
Selection.TypeText Text:=Date17
Selection.TypeParagraph
Selection.TypeText Text:=Date18
Selection.TypeParagraph
Selection.TypeText Text:=Date19
Selection.TypeParagraph
Selection.TypeText Text:=Date20
Selection.TypeParagraph
Selection.TypeText Text:=Date21
Selection.TypeParagraph
Selection.TypeText Text:=Date22
Selection.TypeParagraph
Selection.TypeText Text:=Date23
Selection.TypeParagraph
Selection.TypeText Text:=Date24
Selection.TypeParagraph
Selection.TypeText Text:=Date25
Selection.TypeParagraph
Selection.TypeText Text:=Date26
Selection.TypeParagraph
Selection.TypeText Text:=Date27
Selection.TypeParagraph
Selection.TypeText Text:=Date28
Selection.TypeParagraph
Selection.TypeText Text:=Date29
Selection.TypeParagraph
Selection.TypeText Text:=Date30
Selection.TypeParagraph
Selection.TypeText Text:=Date31
Selection.TypeParagraph

End Sub

Claude40 Claude40
1 531 contributions
Membre depuis le 24/03/2010
Envoyé le 07/10/2012 à 19:38


Bonsoir,
Oui, il est effectivement possible de faire plus simple avec une itération, comme indiqué dans mon précédent post. Voici une macro plus performante. J’ai ajouté une question pour le nombre de jours afin de générer des dates jusqu’à la fin du mois. Concernant le format de la date, elle dépend du système. Pour obtenir des tirets à la place des slashs, il faut manipuler les résultats. J’y travaille et je reviens.
Voici une nouvelle version de la macro :

Sub date2()
Dim FirstDate As Date
Dim Datesuiv As Date
Dim Nombre As Integer 'Nombre de jours du mois
Dim IntervalType As String
Dim Number As Integer

FirstDate = InputBox("Entrez la première date")
Nombre = InputBox("Entrez le nombre de jours du mois")
Number = 1
IntervalType = "d"

Selection.TypeText Text:=FirstDate
Selection.TypeParagraph
Datesuiv = FirstDate
For i = 1 To Nombre - (1 / Number)
Datesuiv = DateAdd(IntervalType, Number, Datesuiv)
Selection.TypeText Text:=Datesuiv
Selection.TypeParagraph
Next i

End Sub
,

Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
Claude40 Claude40
1 531 contributions
Membre depuis le 24/03/2010
Envoyé le 07/10/2012 à 20:48


Bonsoir,
Voici la macro rectifiée pour modifier la présentation des dates.
Mais attention, ces nouvelles "dates" ne seront peut-être plus reconnues comme telles par un autre logiciel.
Sub date2()
Dim FirstDate As Date
Dim Datesuiv As Date
Dim Nombre As Integer 'Nombre de jours du mois
Dim IntervalType As String
Dim Number As Integer
Dim MyJ As String
Dim MyM As String
Dim MyY As String
Dim MyNewFirst
Dim MyNewsuite
FirstDate = InputBox("Entrez la première date")
Nombre = InputBox("Entrez le nombre de jours du mois")
Number = 1
IntervalType = "d"
MyJ = Mid(FirstDate, 1, 2) ‘ on récupère le jour
MyM = Mid(FirstDate, 4, 2) ‘ on récupère le mois
MyY = Mid(FirstDate, 7, 4) ‘on récupère l’année
MyNewFirst = MyJ & "-" & MyM & "-" & MyY & "-" ‘on reconstitue une date avec les tirets
Selection.TypeText Text:=MyNewFirst
Selection.TypeParagraph
Datesuiv = FirstDate
For i = 1 To Nombre - (1 / Number)
Datesuiv = DateAdd(IntervalType, Number, Datesuiv)
MyJ = Mid(Datesuiv, 1, 2)
MyM = Mid(Datesuiv, 4, 2)
MyY = Mid(Datesuiv, 7, 4)
MyNewsuite = MyJ & "-" & MyM & "-" & MyY & "-"
Selection.TypeText Text:=MyNewsuite
Selection.TypeParagraph
Next i

End Sub

Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
* zako
Anonyme
Envoyé le 14/10/2012 à 08:30

Bonjour,
désoler du retard mais je n'avais plus internet sous la main..
merci beaucoup on y est presque ^^
il reste un problème :
quand je tape la 1ère date je rentre donc 01-03-2012 et le nombre de jours 31 Une fois la macro exécuté, la liste commence par 02-03-2012..

Ps:
Pourrais tu stp m'expliquer un peu les lignes d'indication ci-dessous et comment les modifier :
______________________________________________________________________________
MyJ = Mid(FirstDate, 1, 2) ‘ on récupère le jour
MyM = Mid(FirstDate, 4, 2) ‘ on récupère le mois
MyY = Mid(FirstDate, 7, 4) ‘on récupère l’année
MyNewFirst = MyJ & "-" & MyM & "-" & MyY & "-" ‘on reconstitue une date avec les tirets
______________________________________________________________________________

Merci ^^

Claude40 Claude40
1 531 contributions
Membre depuis le 24/03/2010
Envoyé le 14/10/2012 à 13:14


Bonjour,

Bonjour,
il reste un problème :
quand je tape la 1ère date je rentre donc 01-03-2012 et le nombre de jours 31 Une fois la macro exécuté, la liste commence par 02-03-2012..

Ps:
Pourrais tu stp m'expliquer un peu les lignes d'indication ci-dessous et comment les modifier :
______________________________________________________________________________
MyJ = Mid(FirstDate, 1, 2) ‘ on récupère le jour
MyM = Mid(FirstDate, 4, 2) ‘ on récupère le mois
MyY = Mid(FirstDate, 7, 4) ‘on récupère l’année
MyNewFirst = MyJ & "-" & MyM & "-" & MyY & "-" ‘on reconstitue une date avec les tirets
______________________________________________________________________________

Merci ^^


Deux questions, donc deux réponses :

a) Je n’ai pas réussi à reproduire chez moi, l’anomalie signalée, c'est-à-dire la liste qui débute à 02-03-2012. Il faudrait me refaire un copier/coller de la macro utilisée pour que je vérifie si elle n’a pas été légèrement modifiée.
b) Les lignes d’indication sont destinées à transformer les slashs par des tirets, comme demandé dans un de tes posts. Même si la saisie est faite avec des tirets à la place des slashs, Excel transforme la date dans le format prévu dans les paramètres régionaux du système, et donc remet des slashs à la place des tirets. Il faut donc intervenir avant d’écrire. Sauf pour ce qui est dit en a) pour la première « anomalie », la macro ne doit pas être modifiée.
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc

Discussion trop ancienne

Cette discussion a été automatiquement fermée car elle n'a plus reçue de nouveau message depuis trop longtemps.

Nous vous suggérons de créer un nouveau message

« Retour sur la liste des messages de ce forum