Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[EXCEL] :: Toutes versions :: Création de jeux de données

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.

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.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

A
Réponses
11
Affichages
2 K
amateur_will
A
M
Réponses
2
Affichages
1 K
mgrizzly
M
M
Réponses
3
Affichages
4 K
_matt_44
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…