Excel Format de cellules

Résolu
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
Configuration: Windows Vista Internet Explorer 7.0  Excel 2007

5 réponses

  1. 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)
    0
    1. 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
      0
      1. 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)
        0
        1. 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
          0
          1. 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)
            0