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,

    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
    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. 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,

          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. 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