Excel Format de cellules

Résolu/Fermé
Signaler
Messages postés
94
Date d'inscription
samedi 20 octobre 2007
Statut
Membre
Dernière intervention
28 février 2016
-
Messages postés
17713
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
6 décembre 2021
-
Bonjour à tous,

Voilà, chaque semaine je dois télécharger un fichier de notre intranet et ensuite le mettre en forme dans excel.
Je dois pouvoir utilier les données (les cellules nombres doivent pouvoir être calculées, les cellules dates doivent être au format date)

Auriez vous une idée de comment faire cela de manière plus ou moins automatique.
Ci-dessous un exemple
la première colonne doit être au format jj/mm/aaaaa
La deuxième ne doit pas être modifiée
La 2ème, 3ème et 5ème colonne doit être au format nombre 2 décimales
La 4ème colonne, les parenthèses ainsi que le point d'interogation doivent être supprimés


2009-08-24 11:25:45+02 42.00 9.84 (0.00) 51.84
2009-08-24 11:24:00+02 88.00 8.00 (0.00) 96.00
2009-08-24 01:07:48+02 53.00 3.65 (13.25) ? 43.40
2009-08-23 21:25:44+02 44.45 3.40 (0.00) 47.85

Je vous remercie d'avance pour les bons soins que vous porterez à mon e-mail

E

5 réponses

Messages postés
17713
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
6 décembre 2021
4 861
Salut,

Il y a plusieurs possibilités soit formules ou VBA, serait il possible d'avoir un exemple de fichier pour savoir ce qu'il y a exactement dans chaque colonne

pour joindre un exemple de fichier avec ce lien

https://www.cjoint.com/



A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstein)
Messages postés
94
Date d'inscription
samedi 20 octobre 2007
Statut
Membre
Dernière intervention
28 février 2016
31
Bonjour Mike-31,

Un tout grand merci pour ta réponse.

Donc voici en résumé ce qu'il y a à faire sur ce fichier :

la 1ère colonne doit être au format jj/mm/aaaaa
La deuxième ne doit pas être modifiée
La 3ème, 4ème et 6ème colonne doit être au format nombre 2 décimal
La 5ème colonne, les parenthèses ainsi que le point d'interogation doivent être supprimés.

Le lien vers le fichier se trouve ci-dessous

https://www.cjoint.com/?iAohM3qYzZ

Merci encore
E
Messages postés
17713
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
6 décembre 2021
4 861
Re,

Commencer par insérer une colonne entre la A et la B (clic sur l'index de colonne B Insertion/Colonne), mettre en surbrillance la plage de la colonne A et Données/Convertir/cocher Largeur Fixe/Suivant/une flèche vers le haut devrait se positionner entre la date et l'heure, si ce n'est pas le cas clic sur la flèche et la faire glisser afin de la positionner entre 2009 et l'heure/Terminer et OK
la date sera automatiquement au format et l'heure sera en colonne B. Si tu veux remettre l'heure collée à la date il faudra passer par une concaténation et un collage spécial coller valeur, mais nous verrons plus tard

Ensuite surbriller la plage de la colonne Voucher € qui est passée colonne F puisqu'une colonne à été crée
Edition/Remplacer dans Rechercher saisir ) ? ATTENTION ENTRE ) et ? tu as un intervalle et clic sur remplacer tout
Ensuite modifier dans Rechercher saisir ) et clic sur Remplacer tout
Puis modifier Rechercher, saisir ( et clic sur Remplacer tout et Fermer

Dernière modification, mettre en surbrillance les données de la colonne Sales Amount à la fin de la plage Total
Edition/Remplacer dans Rechercher saisir un point . et dans Remplacer une virgule , et remplacer tout et Fermer
Format/Cellule/onglet Nombre la tu as le choix entre le format Monétaire ou le Format Nombre et sélectionnes le nombre de décimale OK

Plus simple en VBA si tu as quelques notions

A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstein)
Messages postés
94
Date d'inscription
samedi 20 octobre 2007
Statut
Membre
Dernière intervention
28 février 2016
31
Bonjour Mike-31,

Je te remercie pour tes précieux conseils. Avec tout ca j'ai fait une petite macro qui fonctionne à 90%
En effet, la dernière étape qui consiste à faire un remplacement des points par une virgule fonctionne lorsque je le fais manuellement mais ne fonctionne pas dans ma macro. J'ai deux ou trois notions seulement de code VBA!!!

Voici la macro

Sub Macro2()
'
' Macro2 Macro
'
'
Columns("B:B").Select
Selection.Insert Shift:=xlToRight
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 4), Array(2, 1)), TrailingMinusNumbers:=True
Columns("B:B").Select
Selection.Delete Shift:=xlToLeft
Range("E2").Select
Cells.Replace What:="(", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:=") ?", Replacement:="", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:=")", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Application.ReplaceFormat.NumberFormat = "0.00"
Cells.Replace What:=".", Replacement:=",", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=True
End Sub
Je suppose qu'il manque un petit truc que je ne connais pas

Merci d'avance
E
Messages postés
17713
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
6 décembre 2021
4 861
Salut,

Remplace ton code par ce dernier et testes le

Sub test()
[B:B].Insert Shift:=xlToRight
[A:A].TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(10, 1)), TrailingMinusNumbers:=True
[B:B].Delete Shift:=xlToLeft
[E2].Select
Cells.Replace What:="(", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:=") ?", Replacement:="", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:=")", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Cells.NumberFormat = "0.00"
End Sub

A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstein)