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 que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 Print #1, Destinataire & EAN_convert & First_concurrent & PRICE_convert
s'effectue
si la colonne f est vide je ne veux pas que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Print #1, Destinataire & EAN_convert & Second_concurrent & PRICE_convert2
s'effectue


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.