Date et VBA
Résolu/Fermé
Macij
Messages postés
1130
Date d'inscription
jeudi 30 avril 2009
Statut
Membre
Dernière intervention
13 mars 2023
-
25 mai 2017 à 21:00
Macij Messages postés 1130 Date d'inscription jeudi 30 avril 2009 Statut Membre Dernière intervention 13 mars 2023 - 28 mai 2017 à 10:15
Macij Messages postés 1130 Date d'inscription jeudi 30 avril 2009 Statut Membre Dernière intervention 13 mars 2023 - 28 mai 2017 à 10:15
5 réponses
yg_be
Messages postés
22723
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
25 mai 2017 à 22:07
25 mai 2017 à 22:07
bonsoir, suggestion:
Option Explicit Private Sub Auto_Open() Dim Datejour As String Dim jourdate As Date 'SŽlectionner la case Range("N1:S1").Select ' Ajouter la date Datejour = InputBox("Date dŽbut souhaitŽe", "Date") If IsDate(Datejour) Then jourdate = Datejour Else jourdate = 0 End If Range("N1:S1") = jourdate 'Voir sur un forum pour le pb de date Selection.NumberFormat = "[$-F800]jjjj, mmmm jj, aaaa" 'Pour enregistrer, faire une nouvelle macro End Sub
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 684
25 mai 2017 à 22:03
25 mai 2017 à 22:03
Bonjour,
Il me semble que ton code fonctionne mais
- il faudrait vérifier que la saisie est bien une date (isdate)
- utiliser Cdate pour valoriser ta cellule sinon le 5/12 se transforme en 12/5
C'est bien NumberFormat qui met le format souhaité.
Il me semble que ton code fonctionne mais
- il faudrait vérifier que la saisie est bien une date (isdate)
- utiliser Cdate pour valoriser ta cellule sinon le 5/12 se transforme en 12/5
C'est bien NumberFormat qui met le format souhaité.
Mike-31
Messages postés
18313
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 avril 2024
5 073
25 mai 2017 à 22:14
25 mai 2017 à 22:14
Bonsoir
Private Sub Auto_Open()
Dim Datejour As String
' Ajouter la date
Datejour = InputBox("Date dŽbut souhaitŽe", "Date", "mois/jour/année")
Range("N1") = Datejour
'Voir sur un forum pour le pb de date
Range("N1").NumberFormat = "dd mmmm yyyy"
End Sub
dans l'inputbox saisir le mois/le jour/l'année
Private Sub Auto_Open()
Dim Datejour As String
' Ajouter la date
Datejour = InputBox("Date dŽbut souhaitŽe", "Date", "mois/jour/année")
Range("N1") = Datejour
'Voir sur un forum pour le pb de date
Range("N1").NumberFormat = "dd mmmm yyyy"
End Sub
dans l'inputbox saisir le mois/le jour/l'année
Macij
Messages postés
1130
Date d'inscription
jeudi 30 avril 2009
Statut
Membre
Dernière intervention
13 mars 2023
39
26 mai 2017 à 19:38
26 mai 2017 à 19:38
Merci pour vos messages...ça marche :)
Bonne soirée
Bonne soirée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Macij
Messages postés
1130
Date d'inscription
jeudi 30 avril 2009
Statut
Membre
Dernière intervention
13 mars 2023
39
26 mai 2017 à 22:39
26 mai 2017 à 22:39
J'ai encore besoin de votre aide...j'essaie d'ajouter un jour supplémentaire mais je n'arrive pas...malgré les recherches...des essais avec la fonction dateadd . Quand j'ai rentré la fonction après avoir programmé la duplication de la feuille, celui-ci laisse la case vide après le lancement de la macro.
Merci encore pour votre aide & bonne soirée
P.S Voici l'adresse du lien : http://www.cjoint.com/c/GEAuMyD4Ejj
Merci encore pour votre aide & bonne soirée
P.S Voici l'adresse du lien : http://www.cjoint.com/c/GEAuMyD4Ejj
yg_be
Messages postés
22723
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
Modifié le 26 mai 2017 à 22:52
Modifié le 26 mai 2017 à 22:52
pas certain d'avoir compris ce que tu veux faire.
à tout hasard:
à tout hasard:
Option Explicit Private Sub Auto_Open() Dim Datejour As String Dim jourdate As Date 'SŽlectionner la case Range("N1:S1").Select ' Ajouter la date Datejour = InputBox("Date dŽbut souhaitŽe", "Date") If IsDate(Datejour) Then jourdate = Datejour jourdate = jourdate + 1 Else jourdate = 0 End If Range("N1:S1") = jourdate 'Voir sur un forum pour le pb de date Selection.NumberFormat = "[$-F800]jjjj, mmmm jj, aaaa" 'Pour enregistrer, faire une nouvelle macro End Sub
Macij
Messages postés
1130
Date d'inscription
jeudi 30 avril 2009
Statut
Membre
Dernière intervention
13 mars 2023
39
>
yg_be
Messages postés
22723
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
27 mai 2017 à 13:18
27 mai 2017 à 13:18
Ce que j'aimerais faire c'est que vba puisse ajouter une copie de la dernière feuille tout en ajoutant un jour supplémentaire. Exemple : 1ère feuille 1/01/2017...2ème feuille 2/01/2017...
Je mets ce que je fais qui est le même que sur le dernier lien :
Private Sub Auto_Open()
Dim Datejour As String
Dim jourdate As Date
Dim nouvelled
'Sélectionner la case
Range("N1:S1").Select
' Ajouter la date
Datejour = InputBox("Date début souhaitée", "Date")
If IsDate(Datejour) Then
jourdate = Datejour
Else
jourdate = 0
End If
Range("N1:S1") = jourdate
Sheets("Vierge").Select
Sheets("Vierge").Copy After:=Sheets(1)
Sheets("Vierge (2)").Select
Sheets("Vierge (2)").Name = "1"
'Additionner la date
Range("N1:S1").Clear
Range("N1:S1").Select
Datejour = DateAdd("d", 1, jourdate)
'Mise en page de la cellule avec la date
Range("N1:S1").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Merge
With Selection.Font
.Name = "Papyrus"
.Size = 40
.StrikeThrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.Color = -16764007
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With Selection.Font
.Color = -16764007
.TintAndShade = 0
Selection.Font.Bold = True
End With
End Sub
----------------------
Merci & bon après-midi
M
Je mets ce que je fais qui est le même que sur le dernier lien :
Private Sub Auto_Open()
Dim Datejour As String
Dim jourdate As Date
Dim nouvelled
'Sélectionner la case
Range("N1:S1").Select
' Ajouter la date
Datejour = InputBox("Date début souhaitée", "Date")
If IsDate(Datejour) Then
jourdate = Datejour
Else
jourdate = 0
End If
Range("N1:S1") = jourdate
Sheets("Vierge").Select
Sheets("Vierge").Copy After:=Sheets(1)
Sheets("Vierge (2)").Select
Sheets("Vierge (2)").Name = "1"
'Additionner la date
Range("N1:S1").Clear
Range("N1:S1").Select
Datejour = DateAdd("d", 1, jourdate)
'Mise en page de la cellule avec la date
Range("N1:S1").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Merge
With Selection.Font
.Name = "Papyrus"
.Size = 40
.StrikeThrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.Color = -16764007
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With Selection.Font
.Color = -16764007
.TintAndShade = 0
Selection.Font.Bold = True
End With
End Sub
----------------------
Merci & bon après-midi
M
yg_be
Messages postés
22723
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
27 mai 2017 à 13:29
27 mai 2017 à 13:29
suggestion:
au lieu de
essaie
au lieu de
Datejour = DateAdd("d", 1, jourdate)
essaie
Range("N1:S1") = jourdate+1
Macij
Messages postés
1130
Date d'inscription
jeudi 30 avril 2009
Statut
Membre
Dernière intervention
13 mars 2023
39
>
yg_be
Messages postés
22723
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
27 mai 2017 à 17:15
27 mai 2017 à 17:15
ça marche, je te remercie :)
j'ai une dernière question. J'essaie de dupliquer le nombre de colonnes pour qu'ils correspondent aux jours d'un mois. j'ai réussi à trouver la formule qui permet de dupliquer mais elle duplique juste sans ajouter de jours en plus (je suppose qu'il existe une formule exprès dont j'ignore le code...) et existe-il une formule qui permet de mettre un nom à la suite (j'ai bien réussi à renommer la 2ème page mais le reste s'appelle Position 1, Position 2)...pour que ce soit 2,3,4....
Je te mets le code :
Private Sub Auto_Open()
Dim Datejour As String
Dim jourdate As Date
Dim i, z
'Sélectionner la case
Range("N1:S1").Select
' Ajouter la date
Datejour = InputBox("Date début souhaitée", "Date")
If IsDate(Datejour) Then
jourdate = Datejour
Else
jourdate = 0
End If
Range("N1:S1") = jourdate
Sheets("Vierge").Select
Sheets("Vierge").Copy after:=Sheets(1)
Sheets("Vierge (2)").Select
Sheets("Vierge (2)").Name = "2"
'Additionner la date
Range("N1:S1") = jourdate + 1
'Combien de jours
z = InputBox("Nombre de jours souhaités ", "Jours")
For i = 1 To z
Sheets("Vierge").Copy after:=Sheets(2)
ActiveSheet.Name = "Position " & i
Next i
End Sub
-----------
Merci pour ton aide
Bon après-midi
Macij
j'ai une dernière question. J'essaie de dupliquer le nombre de colonnes pour qu'ils correspondent aux jours d'un mois. j'ai réussi à trouver la formule qui permet de dupliquer mais elle duplique juste sans ajouter de jours en plus (je suppose qu'il existe une formule exprès dont j'ignore le code...) et existe-il une formule qui permet de mettre un nom à la suite (j'ai bien réussi à renommer la 2ème page mais le reste s'appelle Position 1, Position 2)...pour que ce soit 2,3,4....
Je te mets le code :
Private Sub Auto_Open()
Dim Datejour As String
Dim jourdate As Date
Dim i, z
'Sélectionner la case
Range("N1:S1").Select
' Ajouter la date
Datejour = InputBox("Date début souhaitée", "Date")
If IsDate(Datejour) Then
jourdate = Datejour
Else
jourdate = 0
End If
Range("N1:S1") = jourdate
Sheets("Vierge").Select
Sheets("Vierge").Copy after:=Sheets(1)
Sheets("Vierge (2)").Select
Sheets("Vierge (2)").Name = "2"
'Additionner la date
Range("N1:S1") = jourdate + 1
'Combien de jours
z = InputBox("Nombre de jours souhaités ", "Jours")
For i = 1 To z
Sheets("Vierge").Copy after:=Sheets(2)
ActiveSheet.Name = "Position " & i
Next i
End Sub
-----------
Merci pour ton aide
Bon après-midi
Macij
yg_be
Messages postés
22723
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
>
Macij
Messages postés
1130
Date d'inscription
jeudi 30 avril 2009
Statut
Membre
Dernière intervention
13 mars 2023
27 mai 2017 à 18:47
27 mai 2017 à 18:47
si j'ai bien compris, ceci devrais faire ce que tu souhaites:
SI tu veux simplement faire une feuille par mois, ceci devrait fonctionner:
Option Explicit Private Sub Auto_Open() Dim Datejour As String Dim jourdate As Date Dim i As Long, z As Long 'Sélectionner la case Range("N1:S1").Select ' Ajouter la date Datejour = InputBox("Date début souhaitée", "Date") If IsDate(Datejour) Then jourdate = Datejour Else jourdate = 0 End If Range("N1:S1") = jourdate 'Combien de jours z = InputBox("Nombre de jours souhaités ", "Jours") For i = 1 To z Sheets("Vierge").Copy after:=Sheets(Sheets.Count) ActiveSheet.Name = i Range("N1:S1") = jourdate + i Next i End Sub
SI tu veux simplement faire une feuille par mois, ceci devrait fonctionner:
Option Explicit Private Sub Auto_Open() Dim Datejour As String Dim jourdate As Date Dim nmois As Integer ' Demander la date Datejour = InputBox("Un jour du mois souhaité", "Date") If IsDate(Datejour) Then jourdate = Datejour Else jourdate = 0 End If nmois = Month(jourdate) jourdate = DateSerial(Year(jourdate), nmois, 1) Sheets("Vierge").Range("N1:S1") = jourdate Do While Month(jourdate) = nmois Sheets("Vierge").Copy after:=Sheets(Sheets.Count) ActiveSheet.Name = Day(jourdate) Range("N1:S1") = jourdate jourdate = jourdate + 1 Loop End Sub