Bonjour ,j'ai crée (avec l'aide de certain utilisateur du forum) un fichier qui permet grace a une macro ,de convertir un fichier xls en .csv.
Pour faire simple ma conversion prend différentes variables (code barre,code magasin etc ) dont une variable prix dans 2 colonnes le hic c'est qu'il est possible que l'une des deux colonnes soit vide ,et quand celle-ci est vide cela convertit quand même (normale car je n'ai rien spécifier )
Ce que je voudrais: C'est que ma macro detecte lorsque l'une de mes deux colonnes prix (içi colonne E ou F ) na pas de valeur la conversion ne soit effectué que pour la colonne ayant une valeur.
Pour faire sipmple, si la colonne E est vide je ne veux pas ques'effectue
Code : Sélectionner tout - Visualiser dans une fenêtre à part Print #1, Destinataire & EAN_convert & First_concurrent & PRICE_convert
si la colonne f est vide je ne veux pas ques'effectue
Code : Sélectionner tout - Visualiser dans une fenêtre à part Print #1, Destinataire & EAN_convert & Second_concurrent & PRICE_convert2
Malheuresement mes très faibles connaissances en vba, me limite grandement.
J'espère avoir était clair,si vous avez des questions n'hésitez pas.
Voici mon code:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 Sub Convert_File() 'Définition des variables Dim chemin_acces_fichier As String Dim xfile_source As Excel.Application Dim donnees As Range Dim donnees2 As Range Dim EAN As String Dim EAN_convert As String Dim PRICE As Double Dim PRICE_convert As String Dim PRICE2 As Double Dim PRICE_convert2 As String Dim Destinataire As String Dim First_concurrent As String Dim Second_concurrent As String Dim path_fichier path_fichier = ThisWorkbook.Path & "\" & "Res.csv" 'Initialisation des variables Set xfile_source = CreateObject("Excel.Application") EAN = "" EAN_convert = "" PRICE = 0 PRICE_convert = 0 PRICE2 = 0 PRICE_convert2 = 0 'Récupération du fichier à convertir Application.FileDialog(msoFileDialogOpen).Show chemin_acces_fichier = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1) xfile_source.Workbooks.Open (chemin_acces_fichier) xfile_source.Visible = True 'Zone de manipulation des donnee présentes dans le fichier Set donnees = xfile_source.Range(xfile_source.Range("B3"), xfile_source.Range("E65000").End(xlUp)) donnees.Interior.ColorIndex = 3 Set donnees2 = xfile_source.Range(xfile_source.Range("B3"), xfile_source.Range("F65000").End(xlUp)) donnees.Interior.ColorIndex = 3 'Ouverture du fichier de destination pour integration sur serveur Open path_fichier For Output As #1 Destinataire = "000160" First_concurrent = "RANG01" Second_concurrent = "RANG02" 'Parcourir la plage de données pour récupérer convertir les EAN et les prix For i = 1 To donnees.Rows.Count EAN = donnees.Cells(i, 1) PRICE = donnees.Cells(i, 4) PRICE2 = donnees2.Cells(i, 5) EAN_convert = String(13 - Len(Trim(EAN)), "0") & EAN PRICE_convert = String(6 - Len(Trim(PRICE * 100)), "0") & PRICE * 100 PRICE_convert2 = String(6 - Len(Trim(PRICE2 * 100)), "0") & PRICE2 * 100 Print #1, Destinataire & EAN_convert & First_concurrent & PRICE_convert Print #1, Destinataire & EAN_convert & Second_concurrent & PRICE_convert2 Next Close #1 xfile_source.Application.DisplayAlerts = False xfile_source.Application.Quit End Sub
Merci pour votre aide.
Partager