Format date avec macro
Bonjour
J'ai créée une macro inputbox qui me demande une date, celle ci s'affiche dans une cellule.
Mes problème :
- Après une autre cellule devrais afficher les 3 premières lettre du jour en anglais, mais ceci fonctionne uniquement quand je rentre une date a la main, pas par macro!
- je voudrais que grace a la fonction fillright et left, les jours suivant s'affichent. Dans mon fichier, la copie s'effectue mais avec la meme date
- au débu de macro je voudrais suprimer les dates, mais a la place la ligne se supprime
Pour mes deux premier problème je pense que c'est du au format de la date. (vu que manuellement cela fonctionne)
Pour le troisième problème, je ne sait pas comment faire. pour l'instant c'est "selction.Delete"
Je met mon fichier en pièce jointe.
cordialement vincent
Bonjour,
J'ai un tableau de service pour mon boulot sans macro.
Regarde le et adapte le à tes besoins.
A +
Bonjour,
- au débu de macro je voudrais suprimer les dates, mais a la place la ligne se supprime
Une premier souci dans ton code.
Remplace :
ActiveSheet.Range(Cells(6, 3), Cells(6, 16536)).Deletepar :
ActiveSheet.Range(Cells(6, 3), Cells(6, Columns.Count)).ClearContentsJe reviens sur le coup de midi pour te donner le reste
Amicalement
Edit Dan :
Voici le code complet modifié :
Sub Bouton2_Clic()
'Macro modifiée par Dan le 28/10/10 pour Vinc24
Dim donnee
donnee = InputBox("Date of the beginning of the project? (ex : 09/05/2010)", "Date")
If donnee <> "" And Not IsDate(donnee) Then donnee = InputBox(donnee & " n'est pas une date valide, Saisissez une date", "Date")
jour = Weekday(donnee, vbMonday)
ActiveSheet.Range(Cells(6, 3), Cells(6, Columns.Count)).ClearContents
If jour = 1 Then Range("C6").Value = CDate(donnee)
If jour = 2 Then Range("D6").Value = CDate(donnee)
If jour = 3 Then Range("E6").Value = CDate(donnee)
If jour = 4 Then Range("F6").Value = CDate(donnee)
If jour = 5 Then Range("G6").Value = CDate(donnee)
If jour = 6 Then Range("H6").Value = CDate(donnee)
If jour = 7 Then Range("I6").Value = CDate(donnee)
'recopie sur largeur tableau
Dim v As Byte, c As Byte
v = ActiveSheet.Range("c2").End(xlToRight).Column
c = jour + 2
Select Case c
Case Is <> v
With ActiveSheet
.Cells(6, c).AutoFill Destination:=.Range(Cells(6, c), Cells(6, v)), Type:=xlFillDefault
.Cells(6, c).AutoFill Destination:=.Range(Cells(6, c), Cells(6, 3)), Type:=xlFillDefault
End With
Case Is = v
With ActiveSheet
.Cells(6, c).AutoFill Destination:=.Range(Cells(6, c), Cells(6, 3)), Type:=xlFillDefault
End With
End Select
End SubSi ok, n'oublie pas de cliquer sur le V vert pour cloturer le fil.
Amicalement
Merci beaucoup, ca fonctionne à merveille!
bonne fin de journée
vincent