Bonjour,

Afin d'alimenter un vieux gestionnaire de contacts (pas le choix sigh), je cherche à générer un fichier CSV à l'aide d'une macro.
Cette dernière doit reprendre juste 2 colonnes ("nom", "numero") en provenance d'un gros annuaire au format excel.

J'ai essayé de me dépatouiller en pondant quelques bribes de codes et quelques recherches, mais mon niveau en vba nécessite quelques lumières ><

Plusieurs contraintes viennent en effet pimenter l'opération :

• Les colonnes "nom" et "numero" ne se trouve pas toujours au même endroit, ne sont pas forcément adjacents et la macro doit "parcourir" la feuille afin de repérer les 2 colonnes à traiter.

• Le classeur excel peut contenir plusieurs onglets (à traiter également donc, et à placer dans le même fichier CSV).

Voila un début de code, je ne sais pas si on peut en faire quelques chose. Ca a l'air tout bête, pourtant mes différents essais n'étaient pas concluant, et je commence à désespérer.



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
31
32
 
Sub RunForrestRun()
 
    Dim ligne As Integer
    Dim colonne As Integer
    Dim i As Integer
    Dim first As Boolean
    Dim result As String
    Dim d As String
    Dim o As Worksheet
 
    Dim fso As New FileSystemObject
    Dim t As TextStream
 
    Set t = fso.OpenTextFile(ActiveWorkbook.Path & "\listing_numero.csv", ForWriting, True)
 
    Dim col_titre As New Collection
    Dim col_valeur As New Collection
 
    ' écriture entete 
    t.Write "Nom;Fax"
    t.Write vbCrLf
 
 
 
    ' boucle sur les onglets
    For Each o In ActiveWorkbook.Worksheets
        o.Select
        ligne = LIGNE_INIT
        colonne = COLONNE_LIGNE_SENS + 1
 
 ...
Si vous avez quelques tuyaux, je suis preneur

Merci,

Zelnist.