Selection d'unité

riderfab

XLDnaute Nouveau
Bonjour à tous,

je travaille sur un pb de changement d'unité. J'ai un tableau dans lequel je mentionne des charges de travail par mois et par projet, et je veux pouvoir basculer d'une vision charge en heure à une vision charge en mois.
J'ai réussi à créer le code pour réaliser ce basculement, c'est dans le fichier joint : il faut cliquer sur heures ou sur mois.

Le problème apparait lorsque je lance une conversion en étant filtré (par exemple on filtre sur projet 2 et projet 4), cela ne marche plus du tout : toutes mes lignes se mélangent.... Comment modifier mon code pour que la conversion se base sur des plages de cellules absolues, indépendantes de ce qui est affiché à l'écran?

Merci d'avance de votre aide.

Fabrice
 

Pièces jointes

  • Selection d'unité.xls
    29.5 KB · Affichages: 42
  • Selection d'unité.xls
    29.5 KB · Affichages: 45
  • Selection d'unité.xls
    29.5 KB · Affichages: 45

riderfab

XLDnaute Nouveau
Re : Selection d'unité

en fait mon problème se résume vraiment à ça : comment faire pour définir une zone de cellule dans VBA qui soit indépendante de ce qui est affiché à l'écran, c'est à dire qui tienne aussi compte des cellules masquées/filtrées.

J'ai aussi pensé à la solution d'intégrer dans ma macro un bout de code qui permet de tout afficher avant de convertir mais je n'ai pas envie de perdre le filtrage à l'écran (dans mon fichier complet, il y beaucoup de filtrages possibles et je ne veux pas "perdre" mon filtrage..)

.. j'espère que quelqu'un pourra m'aider!

Fabrice
 

yadla

XLDnaute Occasionnel
Re : Selection d'unité

Bonjour riderfab,

Je ne comprends pas bien ce que font tes macros à vrai dire... Il est vrai que ce n'est pas cohérent du fait que, selon le filtre, les données Heure ou Mois ne sont pas pareil qu'au début. Et si en plus je clique n fois sur un des deux boutons, la macro s'execute à chaque fois... Elle devrait pas normalement (si j'a bien compris, c'est juste un conversion). Donc tu devrais une fois convertir en heure, et une fois en mois...

Déjà, ce qui est à changer c'est ta liste je pense. Elle ne devrait pas changer lorsque tu filtres et que tu calcules... Au bout de quelques manip, je n'ai plus du tout les meme données dans chaque colonne... Normal ???

Sinon, je vois pas trop ce que doit faire le fichier, en général :confused:

Plus d'explications peut être ???
 

riderfab

XLDnaute Nouveau
Re : Selection d'unité

Yadla,

effectivement, il faudra par la suite que je corrige mon code pour ne pas pouvoir convertir plusieurs fois "dans le meme sens" par exemple plusieurs fois vers des mois sinon ça devient n'importe quoi. Mais ce n'est pas mon problème ici.

Plus généralement, le fichier dispose d'une plage de cellules (C6:F9) où l'on rentre des charges de travail, initialement en heures par exemple. Une fois que ceci est rentré je souhaite juste pouvoir afficher en un click une vision en heure ou en mois. Pour ce faire je dois pouvoir en un click diviser toutes les cellules de ma plage par 160 ou inversement toutes les multiplier par 160.

Pour faire ceci mon code vba fait appel à une zone que j'ai nommé "ZONE_TRAVAIL" qui correspond à la plage C6:F9, mais j'ai l'impression qu'il travaille en fait uniquement sur la partie visible à l'écran de cette zone. D'où mon idée de trouver un moyen de faire référence à cette zone de façon absolue, c'est à dire de façon indépendante à ce que l'on voit à l'écran.

Fabrice
 

riderfab

XLDnaute Nouveau
Re : Selection d'unité

ppfiou je commence à désespérer...ça me parait pourtant pas si difficile mais je suis tellement débutant en vba..
Il y a vraiment que la fonction range (qui tient compte du filtrage) qui permet de faire de faire référence à une zone de cellule dans vba?

Fab
 

riderfab

XLDnaute Nouveau
Re : Selection d'unité

Personne n'a d'idées?

En gros mon problème est : comment appeler dans vba à une plage de cellules dont certaines lignes sont filtrées, et effectuer un traitement sur toutes les cellules de la plage, y compris celles qui sont filtrés sur l'écran d'excel??

J'ai corrigé mon fichier pour rendre le problème plus évident : en cliquant sur export, je veux exporter la plage C6:F9 à un autre endroit de la feuille (cellule H20). Toute la plage est bien exportée si rien n'est filtré mais quand on filtre par exemple sur projet 2, seulement la ligne projet 2 est exportée. Comment faire pour rester filtré et tout exporter??

merci d'avance à ceux qui voudront bien m'aider!

Fabrice
 

Pièces jointes

  • Selection d'unité.xls
    35 KB · Affichages: 41
  • Selection d'unité.xls
    35 KB · Affichages: 36
  • Selection d'unité.xls
    35 KB · Affichages: 42

yadla

XLDnaute Occasionnel
Re : Selection d'unité

Bonsoir,

Voilà, regarde multiplier() et diviser().

En fait je vois pas pourquoi tu veux copier "Range("ZONE_TRAVAIL")" pour travailler sur la copie, pour remplacer ensuite dans Range...

Bref,

A adapter
 

Pièces jointes

  • Selection_d'unité_V2.xls
    44 KB · Affichages: 38

Discussions similaires

Réponses
6
Affichages
378
Réponses
4
Affichages
289

Statistiques des forums

Discussions
312 392
Messages
2 088 004
Membres
103 693
dernier inscrit
vincs