oguruma
XLDnaute Impliqué
Bonjour le Forum,
De retour...
J'espère sans interruptions
ayant besoin de jeux données variables sur une période voici un exemple de code permettant de générer 3 fichiers .csv afin de les importer via powerquery.
Ils sont :
Ils sont déposés dans
Il faudra bien entendu adapter votre M afin qu'il soit en conformité avec l'organisation de votre disque.
Il faudra donc modifier le chemin du fichier dans la fonction File.Contents du code M.
Exemple ci-dessous.
Exemple de code VBA pour les 3 fichiers générés
Vous pouvez bien entendu partir de ceux-ci pour les adapter en fonction de vos besoins ou changer de thèmes, exemple produire des données RH.
Dans la rapidité, j'ai fait simple dans la nomination des variables. C'est ce que j'appelle des "moulinettes". Donc inutile de s'attarder sur la forme d'écriture 😉 🙂
Ces trois types de fichiers vous permettront de créer des fichiers Excel Exemples afin de tester vos formules, de vous entraîner sur les TCD pour les débutants ou toutes autres activités par exemple répondre à un post sur le forum excel en prenant ces fichiers comme exemple pour illustrer votre réponse comme je l'ai fait ce soir sur l'un d'eux.
De retour...
J'espère sans interruptions
ayant besoin de jeux données variables sur une période voici un exemple de code permettant de générer 3 fichiers .csv afin de les importer via powerquery.
Ils sont :
Ils sont déposés dans
Il faudra bien entendu adapter votre M afin qu'il soit en conformité avec l'organisation de votre disque.
Il faudra donc modifier le chemin du fichier dans la fonction File.Contents du code M.
Exemple ci-dessous.
PowerQuery:
let
Source = Csv.Document(File.Contents("C:\Users\oguru\desktop\ventes.csv"),[Delimiter=";", Columns=8, Encoding=1252, QuoteStyle=QuoteStyle.None]),
#"En-têtes promus" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
#"Type modifié" = Table.TransformColumnTypes(#"En-têtes promus",{{"PU_Vente", Int64.Type}, {"Quantite", Int64.Type}, {"Date_Vente", type date}}),
#"Lignes triées" = Table.Sort(#"Type modifié",{{"Date_Vente", Order.Ascending}})
in
#"Lignes triées"
Exemple de code VBA pour les 3 fichiers générés
Vous pouvez bien entendu partir de ceux-ci pour les adapter en fonction de vos besoins ou changer de thèmes, exemple produire des données RH.
Dans la rapidité, j'ai fait simple dans la nomination des variables. C'est ce que j'appelle des "moulinettes". Donc inutile de s'attarder sur la forme d'écriture 😉 🙂
VB:
Option Explicit
Sub Generer500Ventes()
Dim i As Long, fPath As String
Dim coms As Variant, clis As Variant, prods As Variant, prices As Variant, stats As Variant
coms = Array("Jean Dupont", "Marie Curie", "Paul Legrand", "Sophie Roux", "Luc Lefebvre")
clis = Array("TechnologieInformatique", "SecuritDomicile", "TransportLogistique", "RetailDiscount", "CorpsEtSoins")
prods = Array("Licence Logiciel", "Maintenance Annuelle", "Formation", "Audit Expert")
prices = Array(1200, 450, 800, 1500)
stats = Array("STAT_01", "STAT_02", "STAT_03")
' C:\Users\oguru\Desktop
fPath = Environ("USERPROFILE") & "\Desktop\ventes.csv"
Open fPath For Output As #1
Print #1, "Date_Vente;Commercial;Client;Secteur;Produit;PU_Vente;Quantite;Statut"
For i = 1 To 500
Dim idx As Integer: idx = Int(Rnd * 4)
Print #1, DateAdd("d", Int(Rnd * 180), "01/01/2026") & ";" & _
coms(Int(Rnd * 5)) & ";" & _
clis(Int(Rnd * 5)) & ";" & _
"Secteur " & Int(Rnd * 3 + 1) & ";" & _
prods(idx) & ";" & _
prices(idx) + Int(Rnd * 100) & ";" & _
Int(Rnd * 9 + 1) & ";" & _
stats(Int(Rnd * 3))
Next i
Close #1
MsgBox "500 ventes générées sur le Bureau ! => " & fPath, vbInformation
End Sub
Sub Generer1000LignesESN()
Dim i As Long, fPath As String
Dim cons As Variant, clie As Variant, exps As Variant, tjms As Variant, stats As Variant
cons = Array("Alice Martin", "Bob Durand", "Charlie Leveque", "Dora Schneider", "Eric Traore", "Fanny Leroy", "Gilles Petit")
clie = Array("Banque Pop", "TotalEnergies", "LVMH", "Airbus", "SNCF", "EDF", "Renault")
exps = Array("Data Science", "Cloud", "Cyber Securite", "Management", "DevOps", "VBA-EXCEL")
tjms = Array(850, 950, 1100, 1250, 750, 650)
stats = Array("Facturé", "En cours", "En attente")
fPath = Environ("USERPROFILE") & "\Desktop\missions.csv"
Open fPath For Output As #1
Print #1, "Date_Mission;Consultant;Client;Expertise;TJM;Jours_Vendus;Statut"
For i = 1 To 1000
Dim idxExp As Integer: idxExp = Int(Rnd * 6)
Print #1, DateAdd("d", Int(Rnd * 180), "01/01/2026") & ";" & _
cons(Int(Rnd * 7)) & ";" & _
clie(Int(Rnd * 7)) & ";" & _
exps(idxExp) & ";" & _
tjms(idxExp) & ";" & _
Int(Rnd * 40 + 1) & ";" & _
stats(Int(Rnd * 3))
Next i
Close #1
MsgBox "1000 lignes générées sur votre Bureau (missions_esn_500.csv) ! => " & fPath, vbInformation
End Sub
Sub GenererCSV_3000Lignes()
Dim i As Integer
Dim fPath As String
Dim produits As Variant, regions As Variant
produits = Array("Clavier", "Souris", "Ecran", "Casque", "Laptop", "Tablette", "Imprimante", "Disque USB")
regions = Array("Nord", "Sud", "Est", "Ouest")
' Chemin sur le bureau
fPath = Environ("USERPROFILE") & "\Desktop\donnees.csv"
Open fPath For Output As #1
' En-têtes
Print #1, "Date;Produit;Region;Ventes;Quantite"
For i = 1 To 3000
Print #1, DateAdd("d", Int(Rnd * 360), "02/01/2025") & ";" & _
produits(Int(Rnd * 8)) & ";" & _
regions(Int(Rnd * 4)) & ";" & _
Int(Rnd * 1950 + 50) & ";" & _
Int(Rnd * 14 + 1)
Next i
Close #1
MsgBox "Le fichier CSV a été créé sur votre Bureau ! => " & fPath, vbInformation
End Sub
Ces trois types de fichiers vous permettront de créer des fichiers Excel Exemples afin de tester vos formules, de vous entraîner sur les TCD pour les débutants ou toutes autres activités par exemple répondre à un post sur le forum excel en prenant ces fichiers comme exemple pour illustrer votre réponse comme je l'ai fait ce soir sur l'un d'eux.