Bonjour, je suis un débutant en macro vb excel et je cherche à faire plusieurs choses...

En effet, je voudrais pouvoir crée une macro excel qui m'enregistre un fichier xls en csv, il doit aussi ajouter une colonne au début et supprimer les accents et espace de ma première ligne.

Pour enregistrer en csv, j'ai un peu magouiller et j'arrive à faire cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 Sub SaveAsCSV()
Dim Range As Object, Line As Object, Cell As Object
' Définition de la conversion
 
Dim StrTemp As String
Dim Separateur As String
Dim Nom As String, Rep
  With ActiveWorkbook
    Nom = .Name
    If .Path <> "" Then Nom = Left$(Nom, InStr(1, Nom, ".") - 1)
  End With
  Rep = Application.GetSaveAsFilename(Nom, "Fichier CSV,*.csv")
    Separateur = ";"
 
    Set Range = ActiveSheet.UsedRange
    Open Rep For Output As #1
 
    For Each Line In Range.Rows
        sansAccents (A1)
        StrTemp = ""
        For Each Cell In Line.Cells
 
            StrTemp = StrTemp & CStr _
                (Cell.Text) & Separateur
 
        Next
        Print #1, StrTemp
    Next
 
    Close
Mais je n'arrive pas à insérer une colonne en A1 en écrivant quelquechose (par exemple "test") avant de convertir, et j'ai également des soucis pour la correction des accents même si j'ai trouvé quelque chose:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
  Const accent As String = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç"
    Const noAccent As String = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc"
 
     ' La fonction :
 
     Private Function sansAccents(ByRef s As String) As String
     Dim i As Integer
     Dim lettre As String * 1
     sansAccents = s
     For i = 1 To Len(accent)
     lettre = Mid$(accent, i, 1)
     If InStr(sansAccents, lettre) > 0 Then
     sansAccents = Replace(sansAccents, lettre, Mid$(noAccent, i, 1))
     End If
     Next i
     End Function
Mais je ne vois pas trés bien comment appliquer tout cela en une et une seule macro... si quelqu'un pourrait m'éclairer..

je vous remercie d'avance

bonne journée