Excel Format de cellules

Résolu
ella12_12 Messages postés 99 Statut Membre -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
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. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  2. ella12_12 Messages postés 99 Statut Membre 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
    0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  4. ella12_12 Messages postés 99 Statut Membre 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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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