Télécharger la présentation
1
Résolution du Problème
PB 2 Récapituler des informations à partir de différents fichiers évoluant sans cesse Fonctionnaires partant à la retraite Problème qu’a rencontré André dans le cadre de son stage… Merci à lui ! AEP Résolution de pb Excel
2
Ouvrir un fichier Excel
Fichier excel recapitulation Insérer 4 onglets: gest1,gest2,gest3,recap Insérer et nommer les 8 colonnes AEP Résolution de pb Excel
3
Rapatrier les fichiers actualisés des différents gestionnaires
Ouvrir les trois fichiers (gest1,gest2, gest3) Créer un classeur Excel recapitulation.xls qui a 4 onglets: Créer les 8 colonnes dans le tableau Recap Les onglets gest1, gest2 et gest3 doivent récupérer les données des fichiers gest1.xls, gest2.xls et gest3.xls: Quand on ouvre recapitulation.xls, ces onglets se mettent automatiquement à jour. Pour cela, il faut écrire une formule : En A1 de l’onglet gest1 : = [gest1.xls]Nic2010!A1 et copier/coller dans tout le tableau En A2 de l’onglet gest2 : = [gest2.xls]JC2010!A1 et copier/coller dans tout le tableau En A3 de l’onglet gest3 : = [gest3.xls]Nat2010!A1 et copier/coller dans tout le tableau Dans l’onglet Nic2010 du dossier gest1, va chercher la cellule A1 et copie-la. Donc à cet endroit, c’est la cellule A1 du dossier gest1, onglet Nic2010 AEP Résolution de pb Excel
4
Créer un bouton de commande (1) avec Excel 2007
Clic sur Développeur puis sur Insérer Le bouton de commande s’ouvre Clic sur icône bouton AEP Résolution de pb Excel
5
Créer un bouton de commande (2)
Faire le lien entre le bouton et la macro correspondante AEP Résolution de pb Excel
6
Ouvrir interface Visual basic /EXCEL
Alt F11 Clic droit sur Module 1 : insertion Module AEP Résolution de pb Excel
7
Rapatrier des fichiers
Créer une macro pour rapatrier des fichiers sous Excel et pour qu’ils soient mis à jour automatiquement Cette macro va dans un premier temps rapatrier les colonnes que l’on veut considérer du tableau de la gestionnaire 1 puis des tableaux des gestionnaires 2 et 3. Ensuite elle mettra les noms en majuscules puis uniformisera les syntaxes des grades et disciplines. AEP Résolution de pb Excel
8
AEP 2015 - Résolution de pb Excel
Rapatrier nomgest 1 Sub rapatrie () Nomgest = « gest1 » Lignelire = 2 : ligneecrire = 2 a=1 On considère 4 variables While Sheets(nomgest).Cells(lignelire,1).Value<> ""(lignelire,1).Value<> "" On considère toutes les lignes du tableau de la gestionnaire 1 Sheets(« recap »).Cells(ligneecrire,1).Value=Sheets(nomgest).Cells(lignelire,1). Value Pour rapatrier les données de la 1ère colonne du tableau de la gestionnaire 1 dans la 1ère colonne du tableau récapitulatif Sheets… On rapatrie ensuite les colonnes 2, 6, 8, 9 et 10 du tableau de la gestionnaire 1 AEP Résolution de pb Excel
9
Rapatrier nomgest 1, suite
Sheets(« recap »).Cells(ligneecrire,7).Value=nomgest Pour remplir la colonne Nomgest du tableau récapitulatif afin d’identifier le gestionnaire en charge du dossier Sheets(« recap »).Cells(ligneecrire,8).Value=a Pour remplir la colonne Nb tot du tableau récapitulatif. a=1 pour la première ligne et ainsi de suite Lignelire=lignelire+1 : ligneecrire=ligneecrire+1 a= a+1 Pour considérer la ligne suivante et incrémenter le numéro d’ordre (Nb tot) AEP Résolution de pb Excel
10
Rapatrier nomgest , exemple
AEP Résolution de pb Excel
11
Faire de même pour le tableau du deuxième gestionnaire
Rapatrier nomgest 2 Faire de même pour le tableau du deuxième gestionnaire Lignelire=2 On considère la deuxième ligne du tableau du deuxième gestionnaire mais la ligne où l’on va écrire dans le tableau récapitulatif sera la 195 ° si le tableau de la gestionnaire 1 comportait 194 lignes. C’est pour cela que l’on ne réinitialise pas la variable ligneecrire Sheets… Wend Pour rapatrier les colonnes 1, 2, 3, 5, 6 et 7 du tableau de la gestionnaire 2 AEP Résolution de pb Excel
12
Faire de même pour le tableau du troisième gestionnaire
Rapatrier nomgest 3 Faire de même pour le tableau du troisième gestionnaire Sheets… Wend On raptrie les colonnes 1, 2, 3, 5 et 4 dans cet ordre du tableau de la gestionnaire 3 Sheets(« recap »).Activate On ouvre l’onglet recap afin de visualiser le tableau récapitulatif Dans le module on peut voir le nom des macros enregistrées : nom_maj uniform_grade uniform_grade 2 uniform_discipline uniform_discilpine2 On active ces différentes macros afin de mettre les noms en majuscule et d’uniformiser les grades et les disciplines AEP Résolution de pb Excel
13
AEP 2015 - Résolution de pb Excel
Uniformiser Créer une macro pour uniformiser les noms, les grades et les disciplines des trois fichiers : gest1, gest2 et gest3 AEP Résolution de pb Excel
14
AEP 2015 - Résolution de pb Excel
Uniformiser les noms Afin que tous les noms soient écrits en majuscule : ouvrir le Visual Basic : ALT F11 Une fenêtre s’ouvre exemple : nom_maj pour Nom en majuscule Voir Algorithme Aude AEP Résolution de pb Excel
15
Uniformiser les grades : Macro uniform_grade
Cette procédure est en deux parties (deux macro) La première macro considère la colonne Grade du tableau et recopie toutes les syntaxes trouvées, sans doublon, dans une nouvelle colonne. La deuxième macro considère chaque cellule de la colonne Grade et remplace son contenu par la syntaxe « uniformisée » AEP Résolution de pb Excel
16
uniform_grade (boucle 1)
Sub uniform_grade() Lignelire=2 :ligneecrire=2 On pose 2 Variables afin de considérer les lignes où l’on va écrire While Cells (lignelire,1).Value<> "" Pour considérer toutes les cellules non vides de la colonne 1 c’est-à-dire toutes les lignes du tableau a = Cells(lignelire,5).Value Indice = 0 On pose une variable et un indice qui aura pour valeur 1, si cette syntaxe est déjà présente dans la colonne 10 et dont la valeur sera 1, sinon For… Next… On compare le premier grade rencontré (colonne 5) à toutes les lignes de la colonne 10 et si on trouve une cellule identique, on passe à la ligne suivante (indice = 1) AEP Résolution de pb Excel
17
uniform_grade (boucle 1 suite)
End if… Si lors de la comparaison, cette syntaxe n’existe pas dans le tableau (indice = 0) alors on l’écrit sur la ligne correspondant à la ligneecrire. Puis on incrémente ligneecrire de 1 afin d’écrire sur la suivante par la suite Lignelire = lignelire +1 On considère la ligne suivante dans la colonne Grade du tableau d’origine Cells (ligneecrire,10).Value = « xxxxxx » On écrit « xxxxxx » dans la dernière ligne de la colonne 10 afin de savoir quand arrêter la boucle de la macro suivante AEP Résolution de pb Excel
18
uniform_grade (boucle 2)
Sub uniform_grade2() Lignelire=2 On considèrera les lignes de la colonne Grade à partir de la ligne 2 While Cells (lignelire,1).Value<> "" Pour considérer toutes les lignes du tableau : a = Cells(lignelire,5).Value i=2 On considère deux variables ; a correspondant à la valeur de la première cellule Grade du tableau d’origine While Cells (i,10).Value<> « xxxxxx » Tant que la cellule considérée dans la colonne 10 n’est pas : « xxxxx » AEP Résolution de pb Excel
19
uniform_grade (boucle 2 suite)
End if… On compare le Grade considéré du tableau d’origine à ceux répertoriés dans le tableau sans doublon a = Cells(i,10).Value: et lorsqu’on l’a trouvé, on le remplace par la syntaxe uniformisée : Cells(lignelire5).Value=b lignelire = lignelire+1 On considère la ligne suivante dans la colonne Grade du tableau d’origine AEP Résolution de pb Excel
20
uniform_grade, exemple :
AEP Résolution de pb Excel
21
Uniformiser les disciplines
Même procédure que pour la macro « uniform_grade » AEP Résolution de pb Excel
22
AEP 2015 - Résolution de pb Excel
PB2 – Réunifier différents fichiers Excel afin d’en faire une récapitulation Travail à faire: Enfin, par un tableau croisé dynamique, donner le nombre de professeur de mathématiques qui prend sa retraite pendant cette période. Ventiler suivant le grade… Et voilà. AEP Résolution de pb Excel
23
Merci pour votre attention
AEP Résolution de pb Excel
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.