Besoin aide VBA

Dranreb

XLDnaute Barbatruc
Re : Besoin aide VBA

Bonjour.
dans le rapport n'apparaissent plus les 3 première colonnes (Soéiété, Département, nom de centre de cout)
Chez moi ils apparaissent toujours, annoncés en tant que rubriques (on ne va quand même pas inutilement les répéter sur chaque ligne ?)

Le filtre ne s'applique que pour la feuille Budget, pas pour le Rapport automatique. Et oui je prends toutes les valeurs de ComboBox spécifiés pour construire le titre de rubrique, puisque s'il ne faut en prendre que certains, je n'ai aucun moyen de savoir lesquels. Là on pourrait ajouter une case à cocher derrière chaque ComboBox pour indiquer s'il faut les mettre dans le titre de rubrique et de total.
Pour l'instant tout le choix de ce qu'il y a à reproduire se fait dans la ligne 1 de Base en cours. Et ce qui est à partir de la colonne M (13) est totalisé. Il devrait être possible d'écarter les lignes n'ayant aucune valeur non nulle à totaliser .
Pour les colonnes supplémentaires, le plus simple pour l'instant c'est d'ajouter leurs intitulés de colonnes à droite ligne 2 dans Base en cours, comme cela il suffira de les cocher en ligne 1 comme si c'étaient des données de la base. Et s'il y en a dans le tas qui ne devront pas être totalisées, ce ne sera pas un gros travail d'effacer les formules SOUS.TOTAL dans ces colonnes.
 

Spinzi

XLDnaute Impliqué
Re : Besoin aide VBA

Bonjour,

je me suis mal exprimé quand je parlais des 3 premieres colonnes : le libellé de colonne n'apparait plus en fait ! c'est a dire que dans le rapport, les lignes A1, B1 et C1 (devant contenir respectivement "Société", "Département" et "Nom de centre de couts") sont vides. A la limite ce n'est pas trés grave, je voulais juste savoir si c'était normal.

Pour les lignes à totaliser, pourriez vous m'indiquer comment changer la colonne (M actuellement c'est ça) au cas ou mon socle de base bouge ?

Pour le rapport, et pour revenir au total composé des valeurs filtres, un éclatement comme dans le fichier joint serait impossible ? Il est identique à l'éclatement que vous aviez réalisé dans l'onglet "rapport"

J'ai aussi essayé d'intégrer mes demandes dans l'usf (cases à cocher pour l'apparition des frais de personnel, lignes à 0, version de révision budgétaire et année de révision budgétaire [exemple de la révision V3 2013 qui se fait en meme temps que la V0 2014 avec le rappel de la V2 2013]).
Il faudrait le choix de la version de révision budgétaire se fasse soit par list de validation, soit par case à cocher (trop de place ?) sachant qu'il y aura toujours le choix entre 4 valeurs (V0, V1, V2, V3).
Pour l'année de la révision (cf explication au dessus) le fait de laisser l'utilisateur rentrer une valeur est il contraignant ou alors on peut le forcer a respecter des conditions (4 signes numériques forcément compris entre 1900 et 3000 par exemple) ou est il plus simple de mettre une liste de validation qui s'adapte selon l'année ? (par exemple laisse apparaitre l'année en cours + l'année n+1)

J'essaie aussi de modéliser mes attentes concernant les ajouts de lignes et le fichier une fois éditer : une fois que le rapport est ok, je souhaiterai le transmettre aux peronnes en faisait une extraction du rapport. Les personnes vont retravailler dessus en complétant des colonnes et en rajoutant des lignes : il faudrait que la macro qui s'occupe des totaux soit toujours active pour prendre en compte les nouveaux éléments mais on verra p-e ça plus tard non ?

ps : j'ai fais quelques bétises dans le fichier joint je crois en supprimant par inadvertances des choses je crois, donc ne vous aappuyez pas dessus pour refaire une version de fichier (je ne pense pas que vous fassiez cela de totue manière mais je préfère éviter les mauvaises surprises).
 

Fichiers joints

Dranreb

XLDnaute Barbatruc
Re : Besoin aide VBA

Bonjour.
Oui c'était voulu que les intitulés de colonnes n'apparaissent pas pour les rubriques puisqu'il y normalement assez de place pour les mettre devant le nom de la rubrique dans sa ligne qui ne contient qu'elle.
Dans le module SélectColonnes, Public Const C1ÀTotaliser = 13, LTitre = 1 permet de paramétrer pour l'ensemble du projet la position de la 1ère colonne à totaliser (actuellement 13 pour M donc) et la ligne où doivent se mettre les intitulés de colonnes dans les rapports.
Pourquoi tenez vous à tout prix à mettre ces choses dans l'Userform alors que c'est si simple de les sélectionner dans la ligne 1 de Base en cours ?
On ne peut actuellement pas mettre pour le rapport par ajouts d'éléments la même hiérarchie de présentation que pour le rapport automatique, car cette hiérarchie est fixe (toujours Société, Département et Centre de coût) or vous avez dit que pour le rapport élaboré sur la feuille Budget vous ne vouliez pas toujours les 3 niveaux. J'analyse toujours, à mon rythme, la possibilité de la définir aussi dans la ligne 1 de Base en cours. C'est assez compliqué…
On pourrait toutefois imaginer d'ouvrir une rubrique de ce qui est sélectionné au lieu d'en ajouter toutes les lignes.
 
Dernière édition:

Spinzi

XLDnaute Impliqué
Re : Besoin aide VBA

Oui c'était voulu que les intitulés de colonnes n'apparaissent pas pour les rubriques puisqu'il y normalement assez de place pour les mettre devant le nom de la rubrique dans sa ligne qui ne contient qu'elle.
Je n'ai pas compris ce que vous voulez dire mais le fait que le libellé de colonne n'apparaisse pas n'est pas important.

Pourquoi tenez vous à tout prix à mettre ces choses dans l'Userform alors que c'est si simple de les sélectionner dans la ligne 1 de Base en cours ?
Justement non. Le but de ce fichier est de standardiser le budget. Si j'ai 15 000 modifications à faire sur ma base pour arriver au resultat alors cette optimisation n'a plus lieu d'être ...
Je souhaite que dans l'usf, quand j'ai selectionné une visée (qui n'est pas présetne dans la base en cours) il me la rajoute dans le rapport.
EX : actuellement dans ma base en cours j'ai la V1. Nous arrivons en Octobre et maintenant ce n'est plus la visée 1 mais 2 qui m'interesse. Je coche donc dans ma base en cours les colonnes qui m'interessent à savoir "Prestations Externalisées" et "Documentation" ainsi que "Budget". Dans l'usf, si je selectionne dans la liste de validation "V2" et en année "2013", je souhaite qu'il me recopie Presta, Doc et Budget mais pour la V2 et à la suite de la V1 vous voyez ?
mais si ce n'est pas faisable (car il faut faire attention aux différentes colonnes situées avant, celles p-e rajoutées à la main) je modifierai la base. je souhaite juste m'assuré que vous aillez compris.

ps : oui au final je viens de réfléchir un tantinet et je vois comment je peux adapter ma base donc OK (pour les versions, par contre pour les cases a cocher des frais de personnel et des lignes vide il me les faudrait !)

On ne peut actuellement pas mettre pour le rapport par ajouts d'éléments la même hiérarchie de présentation que pour le rapport automatique, car cette hiérarchie est fixe (toujours Société, Département et Centre de coût) or vous avez dit que pour le rapport élaboré sur la feuille Budget vous ne vouliez pas toujours les 3 niveaux.
je souhaiterai juste que les occurences du filtre selectionnées n'apparaissent pas dans la même cellule mais soit décaler suivant les libellés (qui ne sont plus présents) mais par exemple EE en cellule A2 ensuite si j'ai filtré avec le département Collecte Selective alors collecte selective apparait en B3. Comme ça même si je n'ai pas filtré les 3 niveaux j'ai une structure plus détaillée ?

On pourrait toutefois imaginer d'ouvrir une rubrique de ce qui est sélectionné au lieu d'en ajouter toutes les lignes.
???

Merci
 

Dranreb

XLDnaute Barbatruc
Re : Besoin aide VBA

Bon. Je ne sais pas si je vais encore beaucoup intervenir (peut être mais pas sûr). Juste quelques idées ou précisions.
- Ce que vous n'avez pas compris: pas besoin par exemple du libellé "Société" puisque je met comme texte pour la rubrique "Société EE"
- Il pourrait être possible d'enregistrer quelque part des "profils" de budgets. Par exemple sur une nouvelle feuille ne comportant que des lignes avec les croix dont il suffirait de choisir une à copier dans la ligne 1 de Base en cours.
- Mon idée d'ouvrir une rubrique revient à ce que vous dites juste avant: au lieu de copier des lignes vous commencez par installez une ligne de rubrique à partir d'un seul ComboBox renseigné parmi ceux qui ne sont pas bloqués. Celui ci serait aussitôt bloqué pour que vous ne puissiez prendre que des groupes de lignes appartenant à sa valeur jusqu'à ce que vous décidiez après un certain nombres d'ajouts que cette rubrique est fermée. Naturellement dans une rubrique vous pourriez ouvrir une sous rubrique, puis à l'intérieur une 3ième dernière.
- N'y aurait-il quand même pas moins de travail en partant de rapports automatiques, quitte à enlever ensuite les sous rubriques en trop ?
 

Spinzi

XLDnaute Impliqué
Re : Besoin aide VBA

Bonjour,

-C'est bien ce que j'avais compris pour le libellé, mais c'était juste une questio nde mise en forme.
-Pour les profils budget : j'aimerai plus avoir un outil standard (votre dernier point)
-L'idée à l'aire interessante mais j'avoue ne vraiment pas visualiser votre solution ! pourriez vous m'éditer un exemple rapide ?
-Le rapport automatique cétait le fichier que j'avais avant, le tout premier, où toutes mes colonnes apparaissaient et j'avais un filtre au dessus qui me disait si, suivant le filtre que j'avais appliqué (société, département, nom de centre de cout), la colonne était vide ou non. Mais vous êtes parti sur une autre idée qui m'avait l'aire tout aussi avantageuse.
(qu'entendez vous par "rubrique" ?)

Bien à vous
 

Dranreb

XLDnaute Barbatruc
Re : Besoin aide VBA

Bonjour.
Cette mise en forme est le seul moyen de faire plus étroites possibles les 3 1ères colonnes qui ne servent que pour les titres des rubriques. Ce que j'appelle une rubrique c'est un ensemble ou un sous-ensemble de détails se rapportant tous à la même chose. Leur 1ère ligne commencent par un titre de rubrique débutant dans une des 3 1ères colonnes et finit par des totaux pour cette rubriques, puisque je pense comprendre que vous les voulez systématiquement au début.
Non le rapport automatique c'est un rapport qui contient tout le résultat souhaité. Il pourrait être établi sur plusieurs feuilles, une par société par exemple.
 

Spinzi

XLDnaute Impliqué
Re : Besoin aide VBA

Dans tous les cas il me faut un usf/liste de validation pour choisir les informations que je souhaite faire apparaitre (celui mis en placeà l'heure actuel me convient).
Aprés on pourrait revoir la forme du rapport et plutot repartir sur une liste comme le premier jet. Je pense qu'il sera plus facile à traiter à la fois pour moi comme pour vous (ok il n'y a plus la structure avec le total des centres de couts mais l'ajout de nouvelles lignes est compliqué ...).

Est ce qu'on peut repartir avec :
_Même usf qui s'ouvre, pour l'instant il me convient
_Rapport en liste par ordre comme au début (sans totaux), trié par nom de centre de cout
-Est ce qu'il est possible de laisser une ligne vide tout en haut et tout à gauche ?

Merci
 

Dranreb

XLDnaute Barbatruc
Re : Besoin aide VBA

La constante LTitre peut être mise à 2 pour laisser une ligne vide devant.
Il pourrait être plus pratique d'ajouter une ligne vide derrière chaque rubrique, à condition de ne jamais en profiter pour la renseigner manuellement: toujours insérer d'abord une ligne devant. Ça simplifierait en tout cas s'il y avait nécessité de supprimer des rubrique entières: cette ligne vide ne serait référencée que par les formules SOUS.TOTAL de sa propre ligne de rubrique. Actuellement elle prend comme fin la ligne qui précède celle de début de la rubrique suivante, ce qui engendrerait des erreurs #REF! si on supprimait cette dernière sans précaution.
 
Dernière édition:

Spinzi

XLDnaute Impliqué
Re : Besoin aide VBA

Quitte à la laisser vide autant l'utiliser non ? (du coup laisser les totaux et sous totaux).
j'essaie de modifier ma version et vois comment faire au mieux pour prendre en compte vos remarques tout en intégrant mes besoins.

Pour l'instant quel serait le plus simple pour vous ?
ps : il faudrait modifier l'usf pour rajouter une case à cocher pour les frais de personnel
 

Spinzi

XLDnaute Impliqué
Re : Besoin aide VBA

Bonjour,

si vous êtes d'accord on va p-e revenir à une version plus simple et surement plus facile à mettre en oeuvre, en faisant fi des lignes de sous totaux, en adoptant une affichage des résultats en ligne avec totues les occurences (si j'ai filtré sur société EE je souhaite que dans la colonne "Société" "EE" apparaisse à chaque fois).

J'ai remarqué que lorsque je remplissais des colonnes dans le rapport, à coté de la selection automatique via la base, ces colonnes et leur contenu disparaissaient des que je filtrais à nouveau. Serait-il possible de garder les colonnes rajoutées manuellement, un peu à l a façon d'un tcd ?
 

Dranreb

XLDnaute Barbatruc
Re : Besoin aide VBA

Bonjour.
Non. On en revient toujours au même truc: il faut impérativement que les intitulé de ces colonnes soient portés dan la ligne 2 de le Base et surmontés d'une croix.
 

Spinzi

XLDnaute Impliqué
Re : Besoin aide VBA

C'était pour eviter à chaque fois de refaire ma formule des totaux (comem d'autres d'ailleurs) mais d'apres ce que je comprends, c'est mort ? A moins p-e de dire que dans cette colonne vide, si je la selectionne, il faut m'ajouter partout telle formule ... Est ce que c'est envisageable ?
 

Dranreb

XLDnaute Barbatruc
Re : Besoin aide VBA

Probablement. Il ne faudrait alors surtout pas virer l'installation des formules de totaux. Vous voyez bien comment ça marche tout ça. Dans le tableau destiné au vidage rapide on met dans les lignes de rubriques (LDébTotQuelqueChose) la valeur "=" & Lr comme valeur dans la 1ère colonne de totaux (CrDébTot), Lr étant la ligne où on en est arrivé à ce moment là du remplissage. Comme il commence par "=", ce signal est transformée en une formule simple donnant seulement la ligne de fin pour ce début de rubrique, ce qui permet ensuite, après vidage du tableau, de les balayer simplement en ne prenant que les Me.Columns(CrDébTot).SpecialCells(xlCellTypeFormulas, 1) pour y mettre les formules "=SUBTOTAL(9, etc.. Rien n'empêcherait de faire un peu la même chose, mais d'abord, pour d'autres formules, cette fois dans les ligne de la rubrique CCoût seulement. Mettre le signal en CrDébTot + 1 par exemple.

Ou alors, si ça peut marcher, mettre ces FormulaR1C1 sur toutes les lignes des colonnes concernées, avant de les écraser, dans les lignes où elles n'ont pas lieu d'être, par les formules SOUS.TOTAL…
 
Dernière édition:

Spinzi

XLDnaute Impliqué
Re : Besoin aide VBA

C'est du chinois pour moi avec ce langage si spécifique, mais je pense savoir de quoi il retourne pour la non suppression des lignes de sous-totaux.

De plus, je n'ai pas trouvé l'instance pour décaler d'une ligne dans le rapport (onglet budget).
Aussi, comme je ne vais garder qu'un rapport sur les 2 mis en place, je pense que l'onglet Budget est dépendant de l'onglet rapport non ? parce qu'a part l'usf, je ne vois rien en rapport avec l'onglet budget. Trés compliqué pour moi
 

Dranreb

XLDnaute Barbatruc
Re : Besoin aide VBA

Non, les onglets Rapport et Budget ne sont pas liés. Il n'est pas question de permettre un filtrage de certains éléments pour le Rapport. C'est un rapport automatique qui contiendra initialement tout, un point c'est tout. Mais il pourra peut être un jour être sur plusieurs feuilles éventuellement, une par société notamment.
 

Spinzi

XLDnaute Impliqué
Re : Besoin aide VBA

Ok, donc c'est une image de ma base mais non modifiable, tout du moins non prévue, pour être modifiée via des filtres. Le problème est que si je n'utilise que ce rapport je n'aurai pas la flexibilité du fichier budget couplé à l'usf.
Il faut donc que je me cantonne à une seule méthode => je pense garder l'onglet budget, supprimer le "rapport".
Cependant si vous pouviez établir un onglet budget sans sous totaux, mais sous forme de liste comme dans le rapport (les données qui se suivent les unes aprés les autres).

Merci d'avance
 

Dranreb

XLDnaute Barbatruc
Re : Besoin aide VBA

Oui mais vous auriez peut être quand même moins de travail pour les constituer. Vous pourriez toujours supprimer des lignes à postériori, voire en couper et les insérer dans d'autres rubriques (je me demande pourquoi, mais là n'est pas la question). Les formules Total sont pensées pour le supporter, il n'y a que le problème de la suppression d'une rubrique entière qui poserait un problème si on n'insère pas une ligne vide supplémentaire derrière, qui améliorerait peut être même la présentation. Franchement je ne comprend pas bien votre préférence pour le Budget assemblé empiriquement. Il me paraitrait effroyable à constituer et source d'erreurs (répétitions et omissions involontaires).
ependant si vous pouviez établir un onglet budget sans sous totaux, mais sous forme de liste comme dans le rapport (les données qui se suivent les unes aprés les autres).
Non. Pas possible. À moins de créer ses propres rubriques au fur et à mesure.
 
Dernière édition:

Discussions similaires


Haut Bas