XL 2010 Résolu par DoubleZéro : MCF qui multiplie les MCF

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
en ajoutant également des lignesRe-Bonjour à toutes et à tous,

j'ai encore une question en ce jour de 1er mai.
Il y a longtemps que "ça me turlupine" et aujourd'hui ça m'énerve plus que d'habitude.

Depuis longtemps, mes recherches n'ont jamais abouti.

c'est un souci de MCF comme le titre l'indique
Photo ci-dessous
Sans titre.jpg

Comme vous le voyez, pour la même cellule (et c'est pareil dans toutes mes cellules) les MFC se multiplient alors qu'il me semblerait normal que seule la première ligne de condition figure pour la cellule concernée.

Mais "Paf", à chaque ajout, ça en rajoute en ajoutant également des lignes dans la MFC :mad:

Je ne sais pas quelles sont les conséquences : peut-être entre autres la taille du fichier ???

A partir de ma première cellule de chaque colonne, j'ai tenté de copier le format en enlevant le "$" et bien d'autres essais sans succès.

Auriez-vous la solution ?
Avec mes remerciements,
Amicalement,
Lionel,
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

C'est ce dont je parlais dans un autre fil de discussion il y a peu.
La conséquence chez moi était un temps de traitement incroyablement allongé (plus de 5 heures, si je me rappelle bien) au lieu d'un traitement instantané.
J'ai donc tout supprimé et refait le minimum de MFC.

Sur un autre fichier plus ancien, je crois que je refaisais les MFC d'un tableau par macro à chaque ajout ou suppression de ligne.
 

TooFatBoy

XLDnaute Barbatruc
Si tu as une macro pour supprimer une ligne ou une macro pour ajouter une ligne, ce serait là qu'il faudrait supprimer puis recréer les MFC de ton tableau.

S'il y a une autre solution, beaucoup plus simple, je suis bien sûr preneur car j'ai exactement le même problème. :(
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD

Pièces jointes

  • mDF_MFCmultiples_v50.xls
    86.5 KB · Affichages: 41
  • LisezMoi.txt
    2 KB · Affichages: 29

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
DoubleZéro, DoubleZéro .... Magicienne OUI LOL.
ça c'est super vraiment.
Un grand merci encore pour votre gentillesse et certainement le temps passé.
Viens vite voir ça Marcel LOL !!!
Je pense que ce fichier servira à Marcel et à beaucoup d'entre nous ...... et d'ailleurs ;)
Re-Merci.
Bonne fin de journée.
Amicalement,
Lionel,
 

TooFatBoy

XLDnaute Barbatruc
Effectivement ça marche bien, mais ça ne correspond pas à ce que tu avais demandé, et pas non plus à ce que je recherche.

Dans ce dernier fichier proposé, c'est une simple copie de cellule.
C'est ce que j'utilise pour un planning que j'ai fais : la personne voulant modifier le planning en question commence par sélectionner toutes les cellules qu'elle veut, puis ma macro va retenir parmi celles-ci uniquement celles appartenant au tableau du planning, puis dans le menu contextuel la personne choisi le type de journée (permanence, travail normal, repose, maladie, garde d'enfant malade, etc.) et ma macro va alors copier la cellule correspondante d'une feuille cachée contenant les mises en forme de chaque type de jour, et enfin ma macro va coller cette cellule dans toutes les cellules retenues précédemment.
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour DoubleZéro,
Bonjour Marcel,
Bonjour Le Forum,

OUI Marcel, le classeur de DoubleZéro ne répond pas directement à ma demande mais, comme toi, je n'ai pas de solution et personne ne semble avoir trouvé.

Le travail de DoubleZéro (matérialisé par son fichier) répond à mon souci d'une autre façon mais cette réponse est super bien construite et surtout, je la comprends.

Comme je te l'avais écrit, j'étais réticent à une solution par macro, pensant que cela compliquerait sérieusement mon fichier ce qui, me semble-t-il, n'est pas le cas avec la solution de DoubleZéro.

C'est pour cela que je considère que cette option par macro répond à mon souci de MFC.

Bonne journée à toutes et à tous.
Amicalement,
Lionel,
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Bonjour à toutes et à tous,

En intégrant le code du fichier de DoubleZéro dans mon fichier de travail, j'ai un conflit que je ne sais pas résoudre :

Voici le code à intégrer
Code:
Private Sub Worksheet_Change(ByVal c As Range)
    Dim cc As Range
    With Sheets("Couleur"): .Range(.Range("a1"), .Range("a1").End(xlDown)).Name = "mfc": End With
    If c.Count > 1 Then Exit Sub
    Set cc = Sheets("Couleur").Range("mfc").Find(c.Value, LookIn:=xlValues, lookat:=xlWhole)
    If Not cc Is Nothing Then
        Application.EnableEvents = False
        cc.Copy Destination:=c
        Application.EnableEvents = True
    End If
    If c = "" Then
        Application.EnableEvents = False
        Sheets("Couleur").Range("a" & Rows.Count).End(xlUp)(2).Copy c
        Application.EnableEvents = True
    End If
End Sub

Qui entre en conflit "nom ambigu" détecté" avec : Private Sub Worksheet_Change(ByVal Target As Range)

Une solution ?
Un grand Merci par avance,
Amicalement,
Lionel,
 

Si...

XLDnaute Barbatruc
Bonjour

Tu sembles, sur le coup, avoir oublié la règle fondamentale : « 1 macro : 1 nom, 1 nom : 1 macro !» .

Tu devrais essayer d’inclure le code* sans Private Sub Worksheet_Change(ByVal c As Range) ni End Sub dans ta première macro.

*repris, allégé (mais en gardant le noms des variables) ici :
VB:
  Dim mfc As Range, cc As Range
  If c.Count > 1 Then Exit Sub
  With Sheets("Couleur")
  Set mfc = .Range(.Range("a1"), .Range("a1").End(xlDown))
  Set cc = mfc.Find(c, LookAt:=1)
  Application.EnableEvents = False
  If Not cc Is Nothing Then cc.Copy c
  If c = "" Then .Range("a" & Rows.Count).End(xlUp)(2).Copy c
  Application.EnableEvents = True
  End With

En faisant attention d’avoir remplacé tous les "Target" par c comme cela est fait ici !

Nota : je n'ai pas essayé de voir si ce code correspondait à ton désir initial car comme d'habitude tu ne nous donnes pas les éléments pour te fournir une réponse efficace immédiatement !
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 912
Membres
101 837
dernier inscrit
Ugo