• Initiateur de la discussion Initiateur de la discussion Tibo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tibo

XLDnaute Barbatruc
Bonjour à tous,

Me voila pour poser une question sur laquelle je cale depuis 2 jours.

J'ai un tableau avec une MFC pour colorier une ligne toutes les n lignes. Avec une fonction MOD, pas de problème.

Le souci, c'est que je souhaite faire varier certains des intervalles de coloriage, tout en conservant l'écart de n lignes pour les autres coloriages.

Je joins un fichier pour explications.

Merci à qui m'aidera

Bon dimanche à tous

@+
 

Pièces jointes

Re : MFC variable

Bonsoir,

Merci Wilfried pour cette solution vba, bien que mon coeur de formuliste penche pour une solution formule.

Sur les 2 solutions, tu rencontres des problèmes identiques à ceux que j'ai rencontré. Ainsi, si on indique 4 en colonne A pour avoir un intervalle + 4 lignes, ça décale un peu trop (de plus de 4 lignes).

Je continue depuis à chercher également, mais ne parviens pas à comprendre quelle approche il faut adopter pour résoudre ce problème. J'ai usé et abusé de la fonction MOD, mais sans succès pour le moment.

Mon coeur de formuliste (toujours lui) me dit qu'il existe une solution formule.

Merci à tous ceux qui voudront s'échiner sur ce problème.

Bonne soirée

@+
 
Re : MFC variable

re:

je rencontre le meme probleme que toi avec les formules, j'ai essayé en VBA, car ile y a plusieur approches possibles, mais j'ai toujours le meme probleme des gros ecarts.

j'ai meme essayé avec un pas different de 4, mis en A1, ce qui me bloque, c'est le negatif meme s'il fonctionne, les gros chiffres font des problemes

j'ai pensé aussi au mod par formule, à mon avis, il faut marcher par paquet de 4

1ere somme, 1 à 4, des qu'on est à la ligne 5 de 1 à 8, des qu'on est à la 9, de 1 à 12

soit un
((mod(ligne();4)>0)*(((ent(ligne()/4)+1)*4))+((mod(ligne();4)=0)*ligne())
doit donner la limite basse de la somme

=somme(INDIRECT("A1:A" & ((mod(ligne();4)>0)*(((ent(ligne()/4)+1)*4))+((mod(ligne();4)=0)*ligne())))
Doit te donner la prochaine ligne ou doit s'effectuer la MFC mais sans tenir compte des ecarts de 4

le probleme et de ré-additionner 4 le pas d'origine car si tu fais un ecart de geant, exemple +6, ca va sauter un pas et finalement il reprentera -2

ca devient confus chez moi
sinon je dois avoir une autre solution par macro, qui m'a l'air de fonctionner, pour le moment virtuellement

@ te lire,
 
Re : MFC variable

salut Wilfried,

et merci de faire chauffer tes neurones pour mon problème.

Je prends note de tes formules pour voir comment je peux les adapter à mon fichier.

Il est manifeste que le problème n'est pas évident à traiter.

Bonne soirée

@+
 
Re : MFC variable

Bonjour Wilfried,

Merci pour le travail accompli.

C'est la solution qui me parait la plus aboutie.

que le -4 ne fonctionne pas est sans doute normal dès lors que le pas est de 4.

Encore merci à toi d'avoir planché sur le sujet alors que je devais être dans les bras de Morphée à l'heure où tu as posté.

Il me reste à tester en grandeur nature sur mon fichier réel et te tiendrais au courant.

A bientôt
 
Re : MFC variable

Salut à tous,

Une formule peut-être (pour 4, pas testée avec d'autres cas : recherche pointue donc surchauffe de neurones).
De plus la correction de saisie dans la boîte de dialogue MFC n'est pas commode quand on étire vers la gauche !


@+



Wilfried, je n'ai pas encore regardé ta solution VBA.
 

Pièces jointes

Re : MFC variable

Bonsoir Excel lent,

Content de te voir venir participer à la fête sur ce fichier.

Tu rencontres le même problème que sur certains de mes essais.

Ainsi, si tu tapes 3 en A6, ça devrait avoir pour effet de décaler la ligne grise en A11. Ce qui est le cas, mais une autre ligne grise s'intercale en ligne 7 (non souhaitée).

Je pense avoir trouvé une autre piste (que j'espère prometteuse). Je n'en suis qu'aux balbutiements sur cette nouvelle piste. Si ça marche, je vous livrerais le bébé.

Merci de mettre à contribution vos neurones.

Bonne soirée

@+
 
Re : MFC variable

Bonjour à tous,

merci à wilfried et excellent de m'avoir consacré un peu de temps.

La nuit portant conseil (dit-on), j'ai repris le problème sous un angle différent.

Et il semble que je sois parvenu à une solution.

La solution fait appel à une formule matricielle nommée.

Je vous joins le fichier avec la solution de Wilfried et celle que j'ai trouvée cette nuit.

Cette solution est sans doute perfectible, mais elle a l'air de fonctionner


@+
 

Pièces jointes

Re : MFC variable

Bonjour à tous,

Je me permets de remettre sur le dessus du panier mon "petit" problème de MFC.

Pour résumer (voir à l'appui les fichiers déjà joints), je souhaite pouvoir appliquer une MFC qui colore une ligne toutes les n lignes. A ce point de l'histoire, c'est facile avec une simple fonction MOD.

Où ça se complique un peu, c'est que je souhaite faire varier certains des intervalles (en mettant un chiffre dans la colonne A).

J'avais bien trouvé une solution (postée le 1er août), mais appliquée à mon fichier réel (qui contient une vingtaine de feuilles), le temps de recalcul devient trop important.

Sur papier, le problème semble simple. Et j'ai la certitude qu'il doit exister une solution en Formules.

Mais, j'ai l'impression que mes neurones ont pris des congés.

Les vôtres sauront-ils relever le défi ?

Merci à ceux qui consacreront un peu de leur temps à ce problème.

@+
 
Re : MFC variable

Bonjour,

Je n'ai rien changé à la formule,
j'ai donné des noms de façon différente

La colonne B, ce n'est plus B:B en entier, la plage utile est nommée
=DECALER(Feuil1!$B$1;;;EQUIV(9^9;Feuil1!$B:$B))

La formule renvoyant la dernière ligne : à peu près la même chose en plus court
=MAX((Feuil1!$B$4:$B12<>"")*LIGNE(Feuil1!$B$4:$B12))

La formule renvoyant la dernière valeur est nommée selon le n° de la dernière ligne :
Index(Colonne B ; dernière ligne)

La formule est la même :
=MOD((LIGNE()-4-SOMME($B$4:$B4))/pas+(LIGNE()-ValDer<LigDer)*0,01;1)=0
Elle est nommée "Formule" !

Reste à savoir si le recalcul sera plus rapide
 

Pièces jointes

Re : MFC variable

Bonjour Monique,

Merci d'avoir mis tes lumières sur ce problème que me tarabustait depuis plusieurs semaines.

Il me reste à tester sur mon "vrai" fichier et voir ce qu'il en est de la rapidité.

Je vais quand même essayer d'utiliser quelques neurones pour tenter de comprendre la construction de tes formules.

En tout cas, je te dis un grand Merci.

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
724
Réponses
20
Affichages
2 K
Retour