Aide VBA Excel (rémunérée) – extraction ventes et CA HT
Bonjour à tous,
Je travaille sur un projet VBA Excel dans le cadre de mes études en traitement numérique des données et je rencontre des difficultés.
👉 Je précise que je suis prêt à rémunérer une personne compétente pour m’aider à avancer sur ce projet.
📌 Contexte :
Un magasin de la chaîne de supermarchés HyperMart a subi un dégât des eaux ayant détruit son système informatique. Les seules données restantes sont environ 3500 factures, récupérées sous forme de fichiers texte (.txt), correspondant aux années 2020, 2021 et 2022.
La base de données est donc constituée de 3500 fichiers individuels.
Même en supposant 30 secondes pour analyser chaque fichier, cela représenterait environ 26 jours de travail, ce qui rend une analyse manuelle impossible.
🎯 Objectif du projet :
Je dois créer une macro VBA sur Excel permettant de retrouver pour la référence suivante : GR183012, sur l’année 2022 :
- le nombre de produits vendus
- le chiffre d’affaires hors taxes (CA HT)
⚙️ Contraintes :
- Les données sont réparties dans des fichiers texte (.txt)
- Le traitement doit être automatisé via VBA
- Le code doit être commenté
- Le résultat doit être exploitable sous Excel
Merci d’avance pour votre aide 🙏
Eren
Bonjour avec un fichier joint cela serait surement plus facile à résoudre mais bon il n'y en a pas
Macro a tester
Sub AnalyserFactures()
Dim dossier As String
Dim fichier As String
Dim ligne As String
Dim reference As String
Dim nombreVendus As Long
Dim chiffreAffairesHT As Double
Dim tableauDonnees() As String
Dim annee As String
Dim ws As Worksheet
Dim i As Long
' Définir la référence et l'année à rechercher
reference = "GR183012"
annee = "2022"
' Chemin vers le dossier contenant les fichiers .txt
dossier = "C:\Chemin\Vers\Vos\Fichiers\" ' Remplacez par votre chemin
' Initialiser les variables
nombreVendus = 0
chiffreAffairesHT = 0
' Créer ou sélectionner une feuille pour afficher les résultats
Set ws = ThisWorkbook.Sheets.Add
ws.Name = "Résultats"
ws.Cells(1, 1).Value = "Nombre de produits vendus"
ws.Cells(1, 2).Value = "Chiffre d'affaires HT"
' Lister tous les fichiers .txt dans le dossier
fichier = Dir(dossier & "*.txt")
' Boucle à travers tous les fichiers
Do While fichier <> ""
Open dossier & fichier For Input As #1
' Lire chaque ligne du fichier
Do While Not EOF(1)
Line Input #1, ligne
tableauDonnees = Split(ligne, ";") ' Supposons que les valeurs soient séparées par des points-virgules
' Vérifier si la ligne contient la référence et l'année
If UBound(tableauDonnees) >= 2 Then ' Assurez-vous que le tableau a suffisamment d'éléments
If tableauDonnees(0) = reference And InStr(tableauDonnees(1), annee) > 0 Then
nombreVendus = nombreVendus + CLng(tableauDonnees(2)) ' Supposons que la quantité vendue soit en 3ème position
chiffreAffairesHT = chiffreAffairesHT + CDbl(tableauDonnees(3)) ' Supposons que le CA soit en 4ème position
End If
End If
Loop
Close #1
fichier = Dir ' Obtenir le fichier suivant
Loop
' Afficher les résultats dans la feuille Excel
ws.Cells(2, 1).Value = nombreVendus
ws.Cells(2, 2).Value = chiffreAffairesHT
MsgBox "Analyse terminée !", vbInformation
End SubBonjour,
Merci pour ton retour et pour le code 👍
Je peux t’envoyer le fichier Excel ainsi que les fichiers .txt si besoin, mais ils sont trop volumineux pour être envoyés ici directement.
Si tu es d’accord, je peux te les transmettre par mail ou via un lien de partage.
Merci encore pour ton aide 🙏
Hello,
VBA est obligatoire ou tu peux utiliser Powerquery ?
Sinon envoie deux ou trois fichiers textes représentatifs mais avec 200 lignes chacun comme ça on fait la moulinette sur base de ces exemples et t’auras juste à actualiser le reste.
@+