Bonjour,
J'ai un petit problème d'autoentrepreneur à vous soumettre :
- je ne gère pas la tva.
- mes fournisseur me donnent leur tarifs en ht via des classeurs excel.
- mon logiciel de gestion commerciale ne sait pas intégrer prix_client_sans_tva = prix_fournisseur*tva*coef : il gère tout (achat/vente) avec ou sans tva mais ne sais pas appliquer la tva sur les achats mais pas sur les ventes...
Evidement les classeurs excel des prix fournisseurs comportent plusieurs feuilles avec des noms variants de l'un à l'autre.
Evidement dans une feuille il y a des lignes blanches entre type de produits
Evidement dans une colonne il y a parfois des données parasites ("PROMO", "FIN_DE_VIE", "ND") au lieu du prix ht par exemple.
Mais heureusement, seul les trois premières colonnes des feuilles m'interessent (référence, désignation, prix ht).
Il me faut donc consolider les différentes feuilles d'un classeur donné pour :
- obtenir une seule feuille avec tous les produits en liste.
- manipuler les données, rajouter des colonnes.
- exporter la feuille au format csv, séparateur point-virgule, sans guillemet délimitant les champs texte pour l'importer dans mon logiciel de gestion commerciale.
En suivant le canevas ci-dessous, pouvez-vous m'aider dans mon apprentissage vb excel ?
(En parcourant le phorhum j'ai vu qu'il fallait nommer des variables, indenter etc ... Je vais m'y essayer).
Merci.
fin de la macro
(on reste ouvert sur fichier_traité pour vérif visuelle rapide).
Grand débutant, par ou je commence pour en faire une macro ?
Merci d'avance.
J'ai un petit problème d'autoentrepreneur à vous soumettre :
- je ne gère pas la tva.
- mes fournisseur me donnent leur tarifs en ht via des classeurs excel.
- mon logiciel de gestion commerciale ne sait pas intégrer prix_client_sans_tva = prix_fournisseur*tva*coef : il gère tout (achat/vente) avec ou sans tva mais ne sais pas appliquer la tva sur les achats mais pas sur les ventes...
Evidement les classeurs excel des prix fournisseurs comportent plusieurs feuilles avec des noms variants de l'un à l'autre.
Evidement dans une feuille il y a des lignes blanches entre type de produits
Evidement dans une colonne il y a parfois des données parasites ("PROMO", "FIN_DE_VIE", "ND") au lieu du prix ht par exemple.
Mais heureusement, seul les trois premières colonnes des feuilles m'interessent (référence, désignation, prix ht).
Il me faut donc consolider les différentes feuilles d'un classeur donné pour :
- obtenir une seule feuille avec tous les produits en liste.
- manipuler les données, rajouter des colonnes.
- exporter la feuille au format csv, séparateur point-virgule, sans guillemet délimitant les champs texte pour l'importer dans mon logiciel de gestion commerciale.
En suivant le canevas ci-dessous, pouvez-vous m'aider dans mon apprentissage vb excel ?
(En parcourant le phorhum j'ai vu qu'il fallait nommer des variables, indenter etc ... Je vais m'y essayer).
Merci.
Code:
*************************************************************************
****** Attention pseudo code sans relation avec excel ou vb *******
*************************************************************************
// Variables
char nom_du_fichier_à_traiter // car il change toute les semaines ex: 2011_S09.xls
char fichier_traité = export_+"nom_du_fichier_à_traiter" // fichier export_2011_S09.xlsx que l'on garde mais exportera en csv
char code_tva = "0" // code tva nécessaire au logiciel de gestion commerciale
char nom_four = dim[30] // nom du fournisseur traité
int ligne_à_traiter = 1 // ligne en cours
int tva = 1.196 // c'est la tva que l'on manipulera
int coef = 0 // coef à appliquer.
const feuille_3 = worksheet(3) // c'est la troisième feuille du classeur par laquelle on commence.
// Programme
Demander nom_du_fichier_à_traiter
Demander nom du fournisseur en cours de traitement
Demander coef à appliquer
Si erreur_ouverture(nom_du_fichier_à_traiter)
exit
Sinon
Si erreur_creation(fichier_traité)
exit
sinon
Utilisation nom_du_fichier_à_traiter
Lecture feuille_3 // on commence toujours à la troisième feuille du classeur.
Tant que pas fin des feuilles
aller ligne_à_traiter
Tant que pas fin des lignes
Si colonne_3_ligne_à_traiter <> "" //on élimine les lignes blanche.
Si colonne_3_ligne_à_traiter estnum //on élimine les lignes non numériques.
On selectionne les colonne[1 à 3]de la ligne_à_traiter
recopie dans fichier_traité[ligne_à_traiter]
finsi
finsi
ligne_à_traiter + 1
feuille suivante
finsi
finsi
fermeture nom_du_fichier_à_traiter
// Traitements sur le fichier créé.
Utilisation fichier_traité
Insère une colonne entre colonne(2) et colonne(3).
ligne_à_traiter = 1
Tant que pas fin des lignes
On recopie colonne(2) dans colonne(3) // désignation courte et longue des produits
colonne(5) = colonne(4) * tva // creation prix achat ttc
effacer la formule et garder le résultat en colonne(5) // opération sur la cellule ou la colonne ? dedans ou hors boucle ?
effacer colonne(4) // on garde que le prix d'achat ttc
colonne(5) = coef // sera pris en compte par gestion commerciale.
colonne(6) = colonne(4) * coef // prix vente ttc.
colonne(7) = code_tva // code tva à 0
colonne(8) = nom_four // contient le nom du fournisseur
ligne_à_traiter + 1
enregistre le fichier_traité au format csv, séparateur point-virgule, sans guillemet délimitant les champs texte.
enregistre fichier_traité au format xlsx.
fin de la macro
(on reste ouvert sur fichier_traité pour vérif visuelle rapide).
Grand débutant, par ou je commence pour en faire une macro ?
Merci d'avance.