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
Partager