Selection d'une variable via Radiobouton afin de l'inclure dans une macro
Bonjour,
Je suis toujours sur ma macro de conversion de fichier xls en fichier csv d'ailleurs au passage je remercie les membres du forum qui ont pris du temps pour m'aider;
- joe.levrai
- rdurupt
- pc75
- patricktoulon
Tout d'abord voici le code de ma macro de conversion.
Code:
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 69 70 71
| ub Convert_File()
'Définition des variables
Dim chemin_acces_fichier As String
Dim xfile_source As Excel.Application
Dim donnees_H1 As Range
Dim donnees_H2 As Range
Dim EAN As String
Dim EAN_convert As String
Dim PRICE As Double
Dim PRICE_convert As String
Dim PRICE_2 As Double
Dim PRICE_convert_2 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
'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_H1 = xfile_source.Range(xfile_source.Range("B3"), xfile_source.Range("E65000").End(xlUp))
donnees_H1.Interior.ColorIndex = 3
'Ouverture du fichier de destination pour integration sur serveur METI
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_H1.Rows.Count
EAN = donnees_H1.Cells(i, 1)
PRICE = donnees_H1.Cells(i, 4)
EAN_convert = String(13 - Len(Trim(EAN)), "0") & EAN
PRICE_convert = String(6 - Len(Trim(PRICE * 100)), "0") & PRICE * 100
Print #1, Destinataire & EAN_convert & First_concurrent & PRICE_convert
'Verification de la présence d'un prix dans la colonne contenant le rang tarifaire numéro 2
'Si il y a un prix alors je l'ajoute au fichier sinon je ne fais rien
'Recherche de la valeur par accès absolue
If IsEmpty(xfile_source.Cells(i + 2, 6)) = False Then
PRICE_2 = xfile_source.Cells(i + 2, 6)
PRICE_convert_2 = String(6 - Len(Trim(PRICE_2 * 100)), "0") & PRICE_2 * 100
Print #1, Destinataire & EAN_convert & Second_concurrent & PRICE_convert_2
End If
Next
Close #1
xfile_source.Application.DisplayAlerts = False
xfile_source.Application.Quit
End Sub |
Je travail actuellement sur l'interface de celle-ci afin de la rendre modulable.
Dans mon code j'ai une variable "destinataire" qui de base corresspond a =000160 ,je voudrais mettre 2 radio bouton (ou un formulaire déroulant ) qui permet de selectionner une valeur pour destinataire (par exemple 000161 et 000162) suit au fait de selectionner cette variable ,ma macro s'executerait en prenant en compte le choix choisi pour la variable destinataire.
J'ai fais des recherches,mais je n'arrive pas a appliquer ce que je lis a l'utilisation que je veux en faire, du a mon trés faible niveau en vba.
En vous remerciant de votre aide.
Cordialement.