Progammation VBA ou macro, projet complexe

fx83

XLDnaute Nouveau
Programmation VBA ou macro, Mise en forme, copier-coller, analyse

Bonjour à toutes et à tous en cette nouvelle année 2008...

Mes meilleurs voeux pour vous toutes et tous !! :D

Je commence cette nouvelle année par un projet complexe et j'aurai bien besoin d'un coup de main.

Je vous mets un fichier joint afin de vous faire une idée plus précise de ma demande.

Il s'agit d'un fichier permettant l'analyse des heures effectuées par affaires par des employés d'un secteur en fonction des heures vendues dans les contrats.
Il existe 2 types de contrat qui m'intéressent, le P2 et le P3 (voire fichier joint pour comprendre). Les secteurs sont 210, 220, 230, 240 etc.
Les feuilles correspondantes aux heures par secteur et par contrat ("H210", "H220", etc)sont extraites d'un autre logiciel et sont importées manuellement.

Donc, voici ma demande:

1°) La feuille "suivi" est un simple copier-coller d'un fichier excel déja existant sur mon disque dur. J'aimerai automatiser ce copier-coller sachant que le nom du fichier change en fonction de sa mise à jour. Voici un exemple de son nom: "Tableau des affaires v191107"

Peut-être simplement mettre en place un bouton avec une macro permettant d'aller chercher le fichier manuellement par l'explorateur, de l'ouvrir, de selectionner l'intégralité du contenu, de le copier, de le coller dans ma feuille "suivi", de le refermer sans l'enregistrer puis de selectionner la feuille "Analyse" de mon fichier actuel.

2°) La feuille "Analyse":
* La structure:
- en A1, la date du jour.
-des tableaux reprenant les affaires par secteur (210, 220, 230 etc) de la feuille "suivi". Les colonnes à copier sont D, E, J, K, L, M & N. La partie jaune des tableaux de la feuille "Analyse" a été rajoutée manuellement et j'aimerai que cela soit automatisé svp.
- des boutons de formulaires "Analyse secteur xxx" afin d'automatiser la récupération des données par secteur, de mettre à jour les tableaux et de faire les analyses automatiquement avec un simple clique.

* Ma demande:
- Créer une macro ou programmer en VBA ou autre solution permettant d'automatiser au max le traitement de la feuille "Analyse".
- Tous les mois un opérateur devra pouvoir importer le tableau des affaires dans la feuille "suivi", il devra pouvoir en cliquant sur les boutons faire apparaitre les tableaux des affaires par secteur sachant que le nombre d'affaires est amené à varier. Récupérer les valeurs des feuilles d'heures qui nous intéressent (Heures P2 et P3 du dernier mois & heures totales P2 et P3) et les renseigner dans le tableau de la feuille "Analyse".
- La feuille "Analyse" sera imprimée.
- Le secteur 260 ne sera pas analysé.

Merci de votre aide et si vous avez des questions je suis là... à mon avis ca va fuser !!! :p
 

Pièces jointes

  • Suivi heures par chantier_test.zip
    14.8 KB · Affichages: 149
  • Suivi heures par chantier_test.zip
    14.8 KB · Affichages: 144
  • Suivi heures par chantier_test.zip
    14.8 KB · Affichages: 146
Dernière édition:

fx83

XLDnaute Nouveau
Re : Progammation VBA ou macro, projet complexe

Ah oui, j'allais oublier, je suis ouvert à toute proposition qui permettrait de simplifier le traitement de ce problème... s'il faut remanier quelquechose ou voir le problème différemment, je suis preneur ...
Merci ... :)
 

skoobi

XLDnaute Barbatruc
Re : Progammation VBA ou macro, projet complexe

Bonsoir fx83,

vu la "complexité" de ta demande, sache qu'une réponse souhaité 10h plus tard est un peu exigeant tu ne crois pas?
Les personnes de bonnes volontés (et il y en a ici) seront prêtes à t'aider dès qu'elles (ou ils) le pourront.
Si tu n'as pas encore eu de réponse, c'est que personne n'est encore disponible ou n'a pas le temps (pour le moment) de traiter ta demande.
Alors soit patient.
Je te souhaite une bonne année 2008.
 

fx83

XLDnaute Nouveau
Re : Progammation VBA ou macro, projet complexe

Bonsoir fx83,

vu la "complexité" de ta demande, sache qu'une réponse souhaité 10h plus tard est un peu exigeant tu ne crois pas?
Les personnes de bonnes volontés (et il y en a ici) seront prêtes à t'aider dès qu'elles (ou ils) le pourront.
Si tu n'as pas encore eu de réponse, c'est que personne n'est encore disponible ou n'a pas le temps (pour le moment) de traiter ta demande.
Alors soit patient.
Je te souhaite une bonne année 2008.
Oui je me doute et je comprends tout à fait.
La patience est mère de toute vertu.

Merci de ta réponse.
 

fx83

XLDnaute Nouveau
Re : Progammation VBA ou macro, projet complexe

J'ai modifié mon fichier en y apportant plus de détails et d'informations.
En espérant que cela puisse mieux vous aider.
 

Pièces jointes

  • Suivi heures par chantier_test_v1.zip
    16.4 KB · Affichages: 81
  • Suivi heures par chantier_test_v1.zip
    16.4 KB · Affichages: 85
  • Suivi heures par chantier_test_v1.zip
    16.4 KB · Affichages: 85

fx83

XLDnaute Nouveau
Re : Progammation VBA ou macro, projet complexe

Bonsoir à toutes et à tous,

je me suis lancé sur le projet mais je bute déja à la 1ere étape...:eek:

Je cherche à faire une macro qui me permette d'explorer le pc à la recherche d'un classeur excel. Ce classeur à un nom qui change en fonction de la dernière date de mise à jour, ex.: "Tableau des affaires v191107".

Hors j'ai une macro qui me le permet mais uniquement pour un nom de fichier bien précis et toujours à la même adresse, ex.: D:\dossier\heures\tableau.xls

La structure du classeur "Tableau des affaires v191107" est toujours la même.

J'aimerai que la macro me permette de sélectionner le fichier que je désire, de l'ouvrir puis de sélectionner une plage de cellules dans ce classeur, la copier, fermer le classeur "Tableau des affaires v191107" sans enregistrer, et coller cette sélection dans le classeur "Suivi heures par chantier" dans la feuille "Suivi".

Voici la macro que j'ai actuellement mais cela ne marche pas.:eek:

Code:
Sub recuperer_tableau_affaires()
'
'
    Workbooks.Open Filename:="D:\Idex\"
    ActiveWindow.Panes(1).Activate
    Columns("A:D").Select
    Selection.Copy
    Windows("Suivi heures par chantier.xls").Activate
    Sheets("Suivi").Select
    Range("A1").Select
    ActiveSheet.Paste
    Windows("Tableau des affaires v191107.xls").Activate
    ActiveWindow.Close
    Windows("Suivi heures par chantier.xls").Activate
    Sheets("Analyse").Select
    Range("A1).Select
End Sub
 
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Progammation VBA ou macro, projet complexe

Re Bonjour fx83,

test ceci pour la 1ere étape:

Code:
Sub test()
wb1 = ThisWorkbook.Name
Application.Dialogs(xlDialogOpen).Show
Sheets("Feuil1").Columns("A:D").Copy Workbooks(wb1).Sheets(3).Range("a1")
End Sub

En supposant que la feuille 1 du fichier à ouvrir a comme nom "Feuil1".

Edit: j'oubliai, pour fermer le fichier, ajoute ceci à la fin de la macro:

Code:
ActiveWorkbook.Close

Voilà.
 
Dernière édition:

fx83

XLDnaute Nouveau
Re : Progammation VBA ou macro, projet complexe

Super. C'est magique. Merci.

Juste une précision, je modifie quoi pour coller l'intégralité de la feuille 1 au lieu de la plage A : D stp ?

Et je remarque une erreur quand je clique sur annuler de l'explorateur, ca ouvre la fenetre de débogage. Pas moyen de solutionner ça stp?

Maintenant étape 2: Quelqu'un pour m'aider svp.... :rolleyes:
 
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Progammation VBA ou macro, projet complexe

Re,

1-Est-ce qu'un contrat peut se trouver sur plusieurs secteurs?
2-Je suppose qu'un contrat peut réapparaître lors d'une mise à jour de la feuille "suivi" et dans ce cas il faut mettre à jour la ligne correspondante dans la feuille "Analyse"?
3-Dans la feuille "Analyse", tu as actuellement 1 tableau par secteur. Ne serait-il pas mieux d'avoir 1 seul tableau dans lequel les secteurs seraient indiqué dans une colonne "secteur" juste avant le N° de contrat?

A te relire.
 

fx83

XLDnaute Nouveau
Re : Progammation VBA ou macro, projet complexe

Wow, super tes idées:

1°) 1 contrat se trouve dans un seul secteur. Les secteurs sont déterminés par localisation géographique à peu de chose près.

2°) Un contrat réapparaitra forcément puisqu'il s'agit d'un fichier destiné à faire un suivi mensuel tandis que les contrats sont en général concluent pour une durée de 1 an, 2ans ou plus.
Les mensualités des heures par contrat se trouvent dans les feuilles Hxxx qui sont importées d'un logiciel spécifique manuellement.
Le but serait d'écrasé l'ancienne feuille Suivi lors de l'importation du fichier "tableau des affaires" par la macro que tu m'as proposé.
Il est cependant évident que cette mise à jour ne se fera pas obligatoirement car cela dépendra des nouveaux contrats, des contrats résiliés mais dans l'absolu, la mise à jour de la feuille suivi se fera mensuellement.

Oui il faut refaire la feuille Analyse tous les mois, en tout cas l'automatisée.

3°) Superbe idée, dans les feuilles Hxxx , on a en S5, la dénomination des secteurs (210, 220 etc.), on la retrouve également dans la colonne A de la feuille Suivi. On peut donc s'en servir pour regrouper les contrats par secteur dans le tableau de la feuille Analyse.
Il faut savoir que le fichier que je vous ai transmis a été fortement allégé. Chaque secteur compte entre 10 et 200 contrats en général identifiés par un n° à 9 chiffres.
Chacun de ces n° de contrat inclue 1,2 ou 3 types de prestations: P2, P3 et P5. Seules les prestations P2 et P3 nous intéressent pour le suivi des heures. Dans les feuilles Hxxx, tu verras en colonne E la dénomination des prestations et sur la ligne en face, le nombre d'heures effectuées durant les différents mois.

J'espere avoir été assez clair. C'est un peu compliqué j'imagine.
 
Dernière édition:

Bebere

XLDnaute Barbatruc
Re : Progammation VBA ou macro, projet complexe

bonjour le fil
pas suivi les débats et fais un essai d'après ce que j'ai compris
si tu mets tes n-° en colonne A (il y en a 2)la procédure les fera tous
à bientôt
 

Pièces jointes

  • Suivi heures par chantier_test.zip
    23.1 KB · Affichages: 54
  • Suivi heures par chantier_test.zip
    23.1 KB · Affichages: 56
  • Suivi heures par chantier_test.zip
    23.1 KB · Affichages: 50

fx83

XLDnaute Nouveau
Re : Progammation VBA ou macro, projet complexe

bonjour le fil
pas suivi les débats et fais un essai d'après ce que j'ai compris
si tu mets tes n-° en colonne A (il y en a 2)la procédure les fera tous
à bientôt

Bonjour Bebere, bonjour skoobi,

en effet c'est pas mal comme essai sauf que ca n'est pas exactement ça.
Tu as fait une macro "fixe" je pense, c'est à dire qui ne tient pas compte des différents mois. La macro que tu proposes semble analyser le temps de travail de novembre uniquement alors qu'il faudrait qu'il fasse l'analyse du mois précédent le mois en cours. Si on ouvre le fichier début janvier par ex, elle devra faire l'analyse des heures de décembre.

Ensuite, je remarque quelques erreurs il me semble dans les renseignements même du tableau analyse:
- les cellules H6, H7, I7 , J7 ne sont pas remplies. elles devraient normalement comportées dans l'ordre: heures effectuées, P2, P3, total heures.
- les cellules H15, H16, I16 et J16 ont le même problème.
- le résultat affiché en J17 est 1 667h alors qu'il devrait être 1656h
- le résultat affiché en H17 est 164h alors que ca devrait être 163h
- As tu tenu compte du fait que le nombre d'affaires est variable? Dans l'exemple que je vous ai transmis j'en ai laissé 1 par secteur, hors cela va de 10 à 200 selon les secteurs.
- il semblerait que ta macro utilise comme test la colonne A de la feuille Analyse si j'ai bien compris. Après la proposition de skoobi, je pense faire un tableau unique avec en colonne A le n° du secteur, en colonne B le n° du contrat et ce tableau devra être écrasé à chaque analyse mensuelle.

Je vous remet le dernier fichier à jour à disposition.

Merci pour ta proposition Bebere en tout cas, ca jette de bonnes bases au projet.
 

Pièces jointes

  • Suivi heures par chantier_test_v1.zip
    23.9 KB · Affichages: 50
  • Suivi heures par chantier_test_v1.zip
    23.9 KB · Affichages: 54
  • Suivi heures par chantier_test_v1.zip
    23.9 KB · Affichages: 49

skoobi

XLDnaute Barbatruc
Re : Progammation VBA ou macro, projet complexe

Re bonjour Bebere fx83,

il faudrait qu'il fasse l'analyse du mois précédent le mois en cours. Si on ouvre le fichier début janvier par ex, elle devra faire l'analyse des heures de décembre.

De quelles heures parles-tu? celles se trouvant dans les feuilles "secteurs" ou celles se trouvant dans la feuille "suivi"? ou les 2 feuilles?

Edit: en attendant ta réponse, voici ma proposition. Je me suis inspiré du code de Bebere, ça m'a permis d'aller plus vite :D
 

Pièces jointes

  • Suivi heures par chantier_test_v1.zip
    28.4 KB · Affichages: 66
  • Suivi heures par chantier_test_v1.zip
    28.4 KB · Affichages: 62
  • Suivi heures par chantier_test_v1.zip
    28.4 KB · Affichages: 71
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 947
Membres
103 404
dernier inscrit
sultan87