[AIDE] Macro commande De date sous excel
Résolu
ribery_7_91
Messages postés
234
Date d'inscription
Statut
Membre
Dernière intervention
-
ribery_7_91 Messages postés 234 Date d'inscription Statut Membre Dernière intervention -
ribery_7_91 Messages postés 234 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous
Je suis etudiant en BTS Informatique et je suis en stage ou je dois faire différentes choses sous excel et la j'ai un petit probléme. Je vous explique
Dans une base de donnée la personne qui a rentré la date l'a rentré comme ça : ( ce que j'ai dans la cellule )
60201 en fait correpond au 01/02/2006 donc voila ce que je voudrais faire
diviser ce chiffre par 10000 ce qui donne 6.0201
je garde uniquement la partie entiére ici 6
je lui rajoute 2000 et la j'ai l'année => 2006
ensuite je reprends le 6 et je le mulitplie par 10000 ce qui me donne 60000
je récupére mon chiffre du début (60201) et je lui soustrait 60000
il me reste donc 201
je divise 201 par cent il me reste 2.01
je garde uniquement la partie entiére ici 2 ce qui correspond au mois => fevrier = 2eme mois
ensuite je reprends le 2 et je le mulitplie par 100 ce qui me donne 200
je fais 201 moins 200 et la il me reste 1 ce qui correspond au premier jour du mois
J'éspére que je me suis bien expliqué. Je souhaite faire une macro qui me ferait ça mais je ne sais pas comment faire alors si vous avez une idée ou si méme vous pouvez me faire cette macro ça serait cool
Merci a tous
Je suis etudiant en BTS Informatique et je suis en stage ou je dois faire différentes choses sous excel et la j'ai un petit probléme. Je vous explique
Dans une base de donnée la personne qui a rentré la date l'a rentré comme ça : ( ce que j'ai dans la cellule )
60201 en fait correpond au 01/02/2006 donc voila ce que je voudrais faire
diviser ce chiffre par 10000 ce qui donne 6.0201
je garde uniquement la partie entiére ici 6
je lui rajoute 2000 et la j'ai l'année => 2006
ensuite je reprends le 6 et je le mulitplie par 10000 ce qui me donne 60000
je récupére mon chiffre du début (60201) et je lui soustrait 60000
il me reste donc 201
je divise 201 par cent il me reste 2.01
je garde uniquement la partie entiére ici 2 ce qui correspond au mois => fevrier = 2eme mois
ensuite je reprends le 2 et je le mulitplie par 100 ce qui me donne 200
je fais 201 moins 200 et la il me reste 1 ce qui correspond au premier jour du mois
J'éspére que je me suis bien expliqué. Je souhaite faire une macro qui me ferait ça mais je ne sais pas comment faire alors si vous avez une idée ou si méme vous pouvez me faire cette macro ça serait cool
Merci a tous
A voir également:
- [AIDE] Macro commande De date sous excel
- Invite de commande - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Commande terminal mac - Guide
9 réponses
non je ne pense pas
on va considérer sue non
si tu peux m'aider pour toutes les dates aprés 2000 ça serait deja cool et sa me donnerais une idée
je te remercie
on va considérer sue non
si tu peux m'aider pour toutes les dates aprés 2000 ça serait deja cool et sa me donnerais une idée
je te remercie
Essaies ca :
'Cellule Supposée en A1, sinon changer ligne = colonne ligne = 1 colonne = 1 Do While Not (IsEmpty(Cells(ligne, colonne))) annee = 2000 + Int(Cells(ligne, colonne).Value / 10000) mois = Int((Cells(ligne, colonne).Value - 60000) / 100) Jour = Cells(ligne, colonne).Value - 60000 - 100 * mois If mois < 10 Then mois = "0" & mois If Jour < 10 Then Jour = "0" & Jour NouvelleDate = Jour & "/" & mois & "/" & annee ' DECOMMENTER LA LIGNE SUIVANTE POUR AFFICHAGE SEULEMENT 'MsgBox NouvelleDate ' DECOMMENTER LA LIGNE SUIVANT POUR METTRE LE RESULTAT EN COLONNE B 'Cells(ligne, colonne + 1).Value = CDate(NouvelleDate) ligne = ligne + 1 Loop
Tu lances l'éditeur Visual Basic (Outils, Macro, Visual Basic Editor ou ALT + F11)
Une fois l'éditeur lancé tu fais Insertion, Module
Et tu y copies le code suivant :
Tu peux ensuite exécuter la macro en faisant Outils, Macro, Macros ... ou ALT + F8
Une fois l'éditeur lancé tu fais Insertion, Module
Et tu y copies le code suivant :
Sub ChangeDate() 'Cellule Supposée en A1, sinon changer ligne + colonne ligne = 1 colonne = 1 Do While Not (IsEmpty(Cells(ligne, colonne))) annee = 2000 + Int(Cells(ligne, colonne).Value / 10000) mois = Int((Cells(ligne, colonne).Value - 60000) / 100) Jour = Cells(ligne, colonne).Value - 60000 - 100 * mois If mois < 10 Then mois = "0" & mois If Jour < 10 Then Jour = "0" & Jour NouvelleDate = Jour & "/" & mois & "/" & annee ' DECOMMENTER LA LIGNE SUIVANTE POUR AFFICHAGE SEULEMENT 'MsgBox NouvelleDate ' DECOMMENTER LA LIGNE SUIVANT POUR METTRE LE RESULTAT EN COLONNE B 'Cells(ligne, colonne + 1).Value = CDate(NouvelleDate) ligne = ligne + 1 Loop End Sub
Tu peux ensuite exécuter la macro en faisant Outils, Macro, Macros ... ou ALT + F8
je ne sais pas comment faire pour l'executer
je suis novice et j'ai office 2007
je met le chiffre 60201 dans une cellule et je fais quoi aprés??
je suis novice et j'ai office 2007
je met le chiffre 60201 dans une cellule et je fais quoi aprés??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour le moment j'ai reussi a creer la macro mais je n'arrive pas a l'affecter a une cellule pour qu'elle me convertisse mon chiffre
j'ai mis 60201 dans une cellule maintenant je dois faire quoi pour que ça convertisse cette valeur??
j'ai mis 60201 dans une cellule maintenant je dois faire quoi pour que ça convertisse cette valeur??
Donc tu as copié la macro dans un nouveau module dans l'editeur Visual Basic, tu dois maintenant y décommenter une des deux lignes (ou les deux) en enlevant l'apostrophe parmi :
' DECOMMENTER LA LIGNE SUIVANTE POUR AFFICHAGE SEULEMENT
'MsgBox NouvelleDate
' DECOMMENTER LA LIGNE SUIVANT POUR METTRE LE RESULTAT EN COLONNE B
'Cells(ligne, colonne + 1).Value = CDate(NouvelleDate)
La premiere commande affiche une boite de dialogue, la seconde transforme la date au format 60201 (de la colonne A) au format date en colonne B
Une fois le commentaire supprimé, tu appuies simultanément sur ALT et F8 , tu sélectionnes la macro ChangeDate et tu cliques sur Executer
' DECOMMENTER LA LIGNE SUIVANTE POUR AFFICHAGE SEULEMENT
'MsgBox NouvelleDate
' DECOMMENTER LA LIGNE SUIVANT POUR METTRE LE RESULTAT EN COLONNE B
'Cells(ligne, colonne + 1).Value = CDate(NouvelleDate)
La premiere commande affiche une boite de dialogue, la seconde transforme la date au format 60201 (de la colonne A) au format date en colonne B
Une fois le commentaire supprimé, tu appuies simultanément sur ALT et F8 , tu sélectionnes la macro ChangeDate et tu cliques sur Executer
c'est bon ça marche
merci
par contre une autre question
je voudrais faire ça pour toute une colonne et je voudrais que la date qui se "transforme" remplace l'ancinne dans la même cellule
comment faire???
merci
par contre une autre question
je voudrais faire ça pour toute une colonne et je voudrais que la date qui se "transforme" remplace l'ancinne dans la même cellule
comment faire???
Ca le fait déjà pour toute une colonne grâce à une boucle
Do While Not(Isempty(Cells(ligne,colonne))) ' Tant que la cellule qui a pour numéro de ligne Ligne et pour une numéro de colonne Colonne n'est pas vide
'Ici le code à executer
Ligne = Ligne + 1 ' On incrémente Ligne pour pouvoir sauter de ligne
Loop
Pour remplacer la date dans la même cellule que celle d'origine, il suffit de remplacer
Cells(ligne, colonne + 1).Value = CDate(NouvelleDate)
par
Cells(ligne, colonne).Value = CDate(NouvelleDate)
Do While Not(Isempty(Cells(ligne,colonne))) ' Tant que la cellule qui a pour numéro de ligne Ligne et pour une numéro de colonne Colonne n'est pas vide
'Ici le code à executer
Ligne = Ligne + 1 ' On incrémente Ligne pour pouvoir sauter de ligne
Loop
Pour remplacer la date dans la même cellule que celle d'origine, il suffit de remplacer
Cells(ligne, colonne + 1).Value = CDate(NouvelleDate)
par
Cells(ligne, colonne).Value = CDate(NouvelleDate)
Quand je mets dans une cellule
80201 par exemple il me met qu'il y a une erreur
il me souligne en jaune cette ligne
Cells(ligne, colonne + 1).Value = CDate(NouvelleDate)
pourquoi??
parce que il peut y avoir des dates différentes dans chaque cellule
80201 par exemple il me met qu'il y a une erreur
il me souligne en jaune cette ligne
Cells(ligne, colonne + 1).Value = CDate(NouvelleDate)
pourquoi??
parce que il peut y avoir des dates différentes dans chaque cellule