Bonjour à tous,

Novice en VBA, je cherche de l'aide pour écrire le code manquant dans ma macro pour deux tâches spécifiques. Ayant découvert votre communauté, je me permets de m'adresser à vous afin d'obtenir les informations qui me manque. D'avance, je vous remercie de votre aide.

La situation est la suivante. La macro va chercher des valeurs spécifiques dans une feuille précise et copie un certain nombre de cellules adjacentes souhaité dans une autre feuille. Sauvegarde est ensuite faite de cette feuille en format .csv.

Deux problèmes se posent à moi:

En premier lieu, je souhaite que la macro, pour une colonne précise, ne copie pas simplement les données contenues mais une part précise de celle-ci.

Exemple

Donnée initiale: XXX AAA XXX > Donnée copiée: AAA
Donnée initiale: BBB XXX > Donnée copiée: BBB
etc...

Je pensais utiliser pour ceci la fonction InStr mais je peine à l'insérer dans mon code.

Deuxièmement, j'ai des données prises sur 2 colonnes différentes dans mon fichier d'origine. J'aimerais tout d'abord transformer ceux-ci en une autre valeur donnée.

Exemple

Donnée initiale: jan > Donnée à copier: 01
Donnée initiale: fev > Donnée à copier: 02
etc...

Le problème est ici similaire au premier.

L'idée est d'ensuite coller cette valeur sur la nouvelle feuille en y joignant, dans la même cellule, la copie d'une autre cellule de la feuille initiale en séparant les 2 par le caractère "/".

Exemple

Données initiales: cellule 1; avr cellule 2; 2012 Données collées dans la cellule respective du nouveau fichier: 04/2012

Merci d'avance pour votre aide.

Le code actuel est le suivant:


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
33
34
Sub ExportationCSV()
    Set SourceRange = Worksheets("XXX").Range("A4:V1004")
 
    Dim currentLineExport As Integer
    currentLineExport = 1
 
    For currentLine = 1 To 1001
        If SourceRange.Cells(currentLine, 7) = "Data1" Then
            Worksheets("ExportationCSV").Cells(currentLineExport, 1).Value = SourceRange.Cells(currentLine, 2)
            Worksheets("ExportationCSV").Cells(currentLineExport, 2).Value = SourceRange.Cells(currentLine, 16))
            Worksheets("ExportationCSV").Cells(currentLineExport, 3).Value = SourceRange.Cells(currentLine, 11)
            Worksheets("ExportationCSV").Cells(currentLineExport, 4).Value = SourceRange.Cells(currentLine, 12)
            Worksheets("ExportationCSV").Cells(currentLineExport, 5).Value = SourceRange.Cells(currentLine, 13)
            Worksheets("ExportationCSV").Cells(currentLineExport, 6).Value = SourceRange.Cells(currentLine, 14)
            Worksheets("ExportationCSV").Cells(currentLineExport, 7).Value = SourceRange.Cells(currentLine, 15)
            Worksheets("ExportationCSV").Cells(currentLineExport, 8).Value = SourceRange.Cells(currentLine, 25)
            Worksheets("ExportationCSV").Cells(currentLineExport, 9).Value = SourceRange.Cells(currentLine, 26)
            Worksheets("ExportationCSV").Cells(currentLineExport, 10).Value = SourceRange.Cells(currentLine, 24)
            currentLineExport = currentLineExport + 1
        End If
    Next
End Sub
 
Sub ExportationCSV2()
'
' ExportationCSV2 Macro
' Exportation finale csv
'
 
'
    ChDir "X:\XXX\XXX"
    ActiveWorkbook.SaveAs Filename:="X:\XXX\XXX\XXX.csv", _
        FileFormat:=xlCSV, CreateBackup:=False
End Sub