Copier/coller à partir d'un csv

Bonjour,

c'est toujours à propos de mes macros de traduction.

Ci joint deux fichiers. Le premier (format csv) est un extrait de l'export des traduction et le deuxième (format excel) est ce que je voudrait en faire sous Excel.

Le problème c'est que lorsque je fais ouvrir mon csv avec Excel il se trouve que certaines lignes ne vont pas à la ligne (c'est pas le cas pour le fichier joint) et que les numéros de la première colonne se mettent au format nombre ce qui enlève les espaces entre les groupe de chiffres et cela m'embête fortement.

En faisant un copier/collage spécial avec l'utilitaire et en choisissant les points virgules comme séparateurs les deux problème sont réglés. Le truc c'est que j'aimerais que ça le fasse automatiquement

Comment faire pour effectuer le copier ? car le collage spéciale ne sera pas le plus dur ^^

Cordialement.

24trad.csv (966.00 Octets)
26trad.xlsx (9.85 Ko)

Grâce à ce code je peux ouvrir mon fichier csv mais derrière c'est le copier qui veut pas. J'ai essayé d'avoir le code en enregistrant mais il me prend que le coller.

Sub OuvrirFichier()

Dim Stueckliste As String

    MsgBox ("Die Stückliste zu überzsetzen wählen")
    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = False
        .Show
        Stueckliste = .SelectedItems(1)
    End With

    Set wshell = CreateObject("WScript.Shell")
        wshell.Run Stueckliste
End Sub

Bonjour

Je n'ai pas tout compris

A voir

Option Explicit

Sub OuvrirFichier()
Dim Wb As Workbook

  Cells.Clear
  Set Wb = ThisWorkbook
  MsgBox ("Die Stückliste zu überzsetzen wählen")
  With Application.FileDialog(msoFileDialogOpen)
    .AllowMultiSelect = False
    If .Show = -1 Then
      Application.ScreenUpdating = False
      Workbooks.OpenText Filename:=.SelectedItems(1), DataType:=xlDelimited, _
                         semicolon:=True, local:=True, FieldInfo:=Array(1, xlTextFormat)
      Cells.Copy Destination:=Wb.Sheets("Feuil1").Range("A1")
      ActiveWorkbook.Close False
    Else
      MsgBox "Abandon"
    End If
  End With
End Sub

Merci ça correspond à ce que je veux mis à part le problème de lignes non séparées évoqué dans mon premier message. Il y a un exemple du problème en pièce jointe.

Est-ce possible de régler ce problème ou non ?

S'il n'y a pas de solutions, j'expliquerais la procédure aux personnes utilisant le module de traduction.

Cordialement.

Bonjour

Je ne sais pas si il y a une solution dans ce cas

Mais il faudrait que tu fournisses le fichier CSV en cause pour l'étudier

Voilà le csv en question. Il est pas en entier mais dans cet extrait, il y a des lignes qui s'inscrivent correctement (par ex. : 813 252 511) et d'autres qui ne marchent pas.

Bonjour

Une autre méthode à tester

Parfait c'est presque exactement ce qu'il me faut .

Il faudrait que j'arrive à conserver le format texte de la première colonne. Les espaces entre les chiffres sont importants car ces nombres sont des références articles. Par exemple : 1000100105 devrait être 100 010 0105.

J'ai déjà fait un programme pour remettre tous les plans au bon format mais si on peut garder leur forme originale c'est mieux car ils ont pas tous le même format donc trouver tous les cas n'est pas simple

Par rapport à ton code, j'ai essayé :

- en rajoutant un argument à la ligne :

 Range("A1:A" & Ligne).TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
           TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
           Semicolon:=True, Comma:=False, Space:=False, Other:=False, _
           FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True,Format:="Texte Unicode"

- en changeant les types de variable dans la déclaration

Dim Wb As Workbook
Dim Canal As Integer
Dim InputData as String
Dim Ligne As Long

Mais ça n'a rien changé.

Une idée ?

En tout cas merci beaucoup pour le coups de main.

Bonjour

Modifies cette partie de code (surlignée)

      Range("A1:A" & Ligne).TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
                TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
                Semicolon:=True, Comma:=False, Space:=False, Other:=False, _
                FieldInfo:=Array(Array(1, xlTextFormat), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True

Parfait c'est ça.

Encore une fois merci beaucoup.

Rechercher des sujets similaires à "copier coller partir csv"