Est-il possible d'éviter de répèter du code ?
Bonsoir,
voilà un extrait trés abrégé de mon code pour faire un export txt. J'ai besoin de gérer un champ en + (COD_REGROUPEMENT) et de faire 4 passages :
Si COD_REGROUPEMENT=1 alors ouvre fichier 1 et fais les travaux,
Si COD_REGROUPEMENT=2 alors ouvre fichier 2 et fais les travaux,
....
jusqu'à si COD_REGROUPEMENT=4
Voila mon code actuel : puis-je éviter de recopier 4 fois les parties comprises entre les limites en rouge ? :?:
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
| Dim oDb As DAO.Database
Dim oRst As DAO.Recordset
Set oDb = CurrentDb
marequete = "SELECT * FROM Commandes_Nomades"
Set oRst = oDb.OpenRecordset(marequete)
NBF = oRst.RecordCount
Dim Var1, Var2 As Variant
Open "C:\SQL_NOMADES\envoiFTP\Bons_Commande.txt" For Output As #1
I = 1
While Not oRst.EOF
'lecture de la ligne et récup des champs
Var0 = oRst.Fields(0) 'num ordre
TEMPO = Var0
Var3 = oRst.Fields(3) ' code client 13 car livré
Var4 = oRst.Fields(4) 'DATE PIECE 8c
' et ainsi de suite sur tous mes champs voulus
Var38 = oRst.Fields(38) ' COD_REGROUPEMENT
If TEMPO = NUMORDVERIF Then ' si tempo est égal à NUM_ORD donc c'est une ligne de détails
' ici mes formatages
Print #1, machaine
End If
If TEMPO <> NUMORDVERIF Then ' si tempo est diff de NUM_ORD donc nouvel entête
' ici mon autre formatage
Print #1, machaine
NUMORDVERIF = Var0
End If
I = I + 1
oRst.MoveNext
Wend
oRst.Close
Close #1 |
Merci pour votre aide
Thibault