Partager via

Format CSV pour l'import/export de données

Anonyme
2018-07-20T21:03:16+00:00

Bonjour,

La fonction import/export de fichiers dans les applications Outlook considère que la virgule est le séparateur par défaut dans la base de données des contacts.

Un format qui correspond bien fonctionnellement aux fichiers en langue anglaise, mais pas aux fichiers français ou la virgule est également un signe par exemple qui suit un numéro d'adresse. Le retraitement des fichiers s'en trouve donc exagérément complexifié.

Ne serait-il pas possible d'écrire un convertisseur s'adaptant automatiquement à la langue par défaut définie dans le système d'exploitation ?

Merci de votre réponse.

Gilbert W.

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

9 réponses

  1. DanielCo 107.7K Points de réputation
    2018-07-23T09:17:50+00:00

    Désolé, mais je vais abandonner. Je ne sais pas interprêter :

    "","Thomas","","XXXXX","","","","",,,,,,,,,,,,,,,,,,,,,,,,"",,,,,,"(01)

    alors que LibreOffice le fait sans problème :

    Prénom Deuxième prénom Nom Suffixe Société Service Titre Rue (bureau) Rue (bureau) 2 Rue (bureau) 3 Ville (bureau) Dép/Région (bureau) Code postal (bureau) Pays/Région (bureau) Rue (domicile) Rue (domicile) 2 Rue (domicile) 3 Ville (domicile) Dép/Région (domicile) Code postal (domicile) Pays/Région (domicile) Rue (autre) Rue (autre) 2 Rue (autre) 3 Ville (autre) Dép/Région (autre) Code postal (autre) Pays/Région (autre) Téléphone de l'assistant(e) Télécopie (bureau) Téléphone (bureau) Téléphone 2 (bureau) Rappel Téléphone (voiture) Téléphone société Télécopie (domicile) Téléphone (domicile)
    Thomas XXXXX (01)

    Désolé pour l'image. Il faut retenir la bonne gestion des suites de virgules.

    Daniel

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  2. Anonyme
    2018-07-22T13:12:00+00:00

    Bonjour Daniel,

    Je suis ravi de savoir qu'une solution existe, comme vous le démontrez. Merci de votre aide précieuse.

    Hélas totalement incompétent en matière de macros...  je ne sais pas comment la programmer (dans Excel, fichier.bat, autre ?).

    Par ailleurs je remarque que le test que vous avez effectué est basé sur un export des contacts de Outlook 2016. En ira-t-il de même dans mon cas, à partir des contacts d'Outlook Office 365 ?

    Enfin si chaque champ est entouré de guillemets, je pense pouvoir classiquement les supprimer avec la fonction "recherchez/remplacer", mais si cela pouvait en plus être intégré à la macro, alors là ce serait le gros lot !

    Merci encore.

    Gilbert

    0 commentaires Aucun commentaire
  3. DanielCo 107.7K Points de réputation
    2018-07-21T13:40:32+00:00

    Oui... Ceci dit, on est une minorité à utiliser la virgule. Voici la macro :

    Sub test()

      Dim Fich As String, Enrgt As String, Ligne As Long, Col As Integer

      Fich = Application.GetOpenFilename("Classeurs (*.CSV), *.CSV")

      If Fich <> "Faux" Then

        Set Wbk = Workbooks.Open(Fich)

      Else

        Exit Sub

      End If

      Close #1

      Open Fich For Input As #1

      Do While Not EOF(1)

        Line Input #1, Enrgt

        Ligne = Ligne + 1

        Col = 0

        For Each Item In Split(Enrgt, ",")

          Col = Col + 1

          Cells(Ligne, Col) = Item

        Next Item

      Loop

      Close TextFile

      End Sub

    Tu l'exécutes et elle va te demander de choisir le fichier à traiter. Le résultat s'affichera sur la feuille Excel. J'ai fait un essai avec un export des contacts de Outlook 2016. Chaque champ est encadré de guillemets. Si c'est ton cas également, veux-tu que je les supprime ? Si tu as des problèmes avec les macros, n'hésite pas à le dire.

    Daniel

    0 commentaires Aucun commentaire
  4. Anonyme
    2018-07-21T12:39:45+00:00

    Bonjour,

    Je vous remercie pour votre réponse, ainsi que pour votre réactivité. Je vous respecte à 100% en votre qualité de modérateur bénévole.

    Un peu moins Microsoft en revanche pour les raisons suivantes :

    Le fichier natif "contact".ost est formaté dans Outlook.com avec un délimiteur attribué par le programme : la virgule. La virgule est un séparateur utilisé aussi en français après un numéro de rue, ou dans d'autres rubriques générales. De ce fait la fonction de conversion d'Excel produit un tableau directement inutilisable, certaines données se retrouvant "en lignes" au lieu d'être "en colonnes".

    Si à la limite je peux comprendre la décision politique de Microsoft de limiter ainsi la conversion des fichiers, je ne comprends pas du tout qu'il faille passer par des étapes intermédiaires en format de fichiers "csv" lorsqu'il s'agit d'établir un pont entre deux produits de la même marque : Outlook.com et Outlook Office 365.

    ... Ou alternativement je n'ai pas compris comment importer simplement mon fichier "contact.ost" généré dans Outlook.com dans ma version Office 365.

    Mais si en revanche la conversion n'était pas possible de manière directe, cela me semblerait être la moindre des choses que Microsoft le propose (par exemple d'une manière générale en tenant compte de la localisation du produit, ou par la possibilité de laisser le choix du délimiteur de données à l'utilisateur).

    En conclusion et dans l'immédiat, après avoir peut-être prouvé mon incompétence en informatique, je vous serait reconnaissant de bien vouloir me faire parvenir le schéma de la macro à laquelle vous faites référence afin que je puisse dans l'immédiat trouver une solution à mon problème.

    Merci encore et bien cordialement.

    0 commentaires Aucun commentaire
  5. DanielCo 107.7K Points de réputation
    2018-07-21T07:57:53+00:00

    Bonjour,

    Ça peut se faire dans Excel avec une macro ou directement dans LibreOffice Calc.

    Cordialement.

    Daniel

    0 commentaires Aucun commentaire