Ajout de données par macro dans un csv

totonino Messages postés 2 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 23 février 2011 - 22 févr. 2011 à 18:48
totonino Messages postés 2 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 23 février 2011 - 23 févr. 2011 à 09:46
Bonjour,

Je suis débutant en VB et je code actuellement une macro sous Excel 2003 qui doit convertir un fichier xls en csv.
Dans ce fichier, je dois rajouter une colonne dont les données sont injectées par une macro.
Ces données sont la concaténation d'un champs texte d'une userForm de ma macro et d'une colonne de mon fichier xls.

Format du fichier xls

Colonne A :
A;A;A;A;A;A
B;B;B;B;B
C;C;C;C;C;C
....

Le reste des colonnes est vide. Le passage en csv me permet d'avoir les données dans plusieurs colonnes.

Mon problème, est que lorsque j'ajoute mes données dans une cellule sous format csv, elles sont toutes précédées d'une virgule.
Pouvez-vous m'aider afin d'éviter la présence de ma virgule?

Merci d'avance

Voici mon code
'*******************************************************************************
'* Fonction  : btn_parcourir_Click                                             *
'* Paramètre : aucun                                                           *
'* Cette fonction permet d'aller chercher un fichier xls dans un répertoire    *
'*******************************************************************************
Private Sub btn_parcourir_Click()
    On Error Resume Next
    cleanAll
    fileExcel = Application.GetOpenFilename("Excel Files (*.xls), *.xls")
    tbx_parcourir.Text = fileExcel
    If Err.Number > 0 Then
        Call procErrmsg(Err.Number, Err.Description)
    End If
End Sub

'********************************************************************************************************************
'* Fonction  : convertFile                                                                                          *
'* Paramètre : aucun                                                                                                *
'* Cette fonction convertit un fichier xls en csv. Elle ajoute également le chemin complet de chaque pièce jointe   *
'********************************************************************************************************************
Private Sub convertFile()
    Dim fileExcelName
    Dim lenFileExcel As Integer
    On Error Resume Next
        Workbooks.Open Filename:=fileExcel

        
        addLink
                lenFileExcel = Len(fileExcel) - 3
        fileExcelName = Left(fileExcel, lenFileExcel) & "csv"
        ActiveWorkbook.SaveAs Filename:=fileExcelName, FileFormat:=xlCSV, CreateBackup:=False, local:=True
        ActiveWorkbook.Close
        If lang = "FR" Then
            lbl_traitement.Caption = "Opération terminée!"
        Else
            lbl_traitement.Caption = "Finished!"
        End If
        btn_clear.Enabled = True
        btn_clear.Locked = True
    If Err.Number > 0 Then
        Call procErrmsg(Err.Number, Err.Description)
    End If
End Sub

'****************************************************
'* Fonction  : addLink                              *
'* Paramètre : aucun                                *
'* Créer le chemin complet de chaque pièce jointe   *
'****************************************************
Private Sub addLink()
    Dim line As String
    Dim cptRow As Integer
    Dim cptCol As Integer
    Dim arrayDir
    On Error Resume Next
    cptCol = 1
    cptRow = 2
    
    If Not Right(tbx_way.Text, 1) = "" Then
        tbx_way.Text = tbx_way.Text & ""
    End If
    
    While Not IsEmpty(Cells(1, cptCol))
      cptCol = cptCol + 1
    Wend
    If lang = "FR" Then
        Cells(1, cptCol).Value = "Liens"
    Else
        Cells(1, cptCol).Value = "Link"
    End If
    
    While Not IsEmpty(Cells(cptRow, 1))
        arrayDir = Split(Cells(cptRow, 1).Value, ";")
        line = tbx_way.Text & arrayDir(13) & ""
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(cptRow, cptCol), Address:=line, TextToDisplay:=line
        cptRow = cptRow + 1
    Wend
    If Err.Number > 0 Then
        Call procErrmsg(Err.Number, Err.Description)
    End If
End Sub

1 réponse

totonino Messages postés 2 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 23 février 2011
23 févr. 2011 à 09:46
Un petit up de mon sujet. Je n'ai toujours pas trouvé de solution
0
Rejoignez-nous