Bug sur macro MFC multiples

  • Initiateur de la discussion Initiateur de la discussion cibleo
  • 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 !

cibleo

XLDnaute Impliqué
Bonsoir le forum,

J'ai repris un code de Boisgontier (Mfc multiples) qui fonctionnait très bien jusqu'à présent, je l'ai placé dans la fenêtre de code de la feuille de calcul "2007".
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     Application.ScreenUpdating = False
     For Each k In Range(Range("MesRef"))
      k.Interior.ColorIndex = xlNone
      For Each c In Range("Couleurs")
        If UCase(k.Value) = UCase(c.Value) Then
           k.Interior.ColorIndex = c.Interior.ColorIndex
        End If
      Next c
     Next k
     Application.ScreenUpdating = True
End Sub
Or la MFC définie en D29 de la feuille "2007" ne s'applique pas à la plage C8:AP23.
D29 = Vidange

Toutes les autres (C29,E29,F29,G29,H29,I29,J29,K29 et L29) s'appliquent correctement.

Pour bien comprendre cette petite application, changer la valeur de la cellule C6 (Moyenne mensuelle) de la feuille de calcul "CADDY".

Je vous envoie mon fichier.

Amicalement Cibleo
 

Pièces jointes

Re : Bug sur macro MFC multiples

Bonjour à tous,
Bonjour gfortin9,

Je reprends le fil et remercie gfortin9 pour son intervention.
Malheureusement cela n'a pas solutionné le problème.

S'ajoute en + une erreur d'exécution '1004' la méthode 'range' de l'objet 'worksheet' a échoué.

Pour info, ce code initial était placé en Feuil7 dans un autre de mes fichiers d'où peut-être cette erreur d'exécution 🙁.

Je l'ai donc copié en Feuil6 : feuille de calcul "2007" dans ce nouveau fichier.

Bref, j'essaie de trouver des éléments de réponse avec mes maigres compétences en VBA, je suis peut-être complètement à côté de la solution.

Pour en revenir à ma question initiale, pourquoi la MFC définie en D29 ne s'applique t-elle pas ?

Merci de votre aide Cibleo
 
Dernière édition:
Re : Bug sur macro MFC multiples

Bonsoir à tous,

Le bug ne viendrait-il pas de UCase à tout hazard 🙁

Cibleo

Pour m'en sortir, je vais chercher sur le forum le même type de macro événementielle pour ma MFC.
 
Dernière édition:
Re : Bug sur macro MFC multiples

Bonsoir bhbh et merci,

Effectivement dans le fichier joint, cela rectifie le tir. (Fallait le trouver, le coup de l'espace)🙄

Mais en testant sur mon fichier original, qui contient une autre plage où les Mfc doivent s'appliquer, çà ne fonctionne pas.

J'envoie à nouveau le fichier.
Y figurent l'entretien de 2 véhicules, j'ai effacé plusieurs feuilles de calcul pour l'alléger.

Comme tu peux le remarquer, la Mfc appliquée au mot "Vidange" ne fonctionne pas pour mon second véhicule 🙁

Cibleo
 

Pièces jointes

Re : Bug sur macro MFC multiples

Re-

toujours ton problème d'espace, après "Vidange"

Dans ton onglet "Passat"
Tu fais Edition/Remplacer

Dans Rechercher, tu écris "Vidange " (avec l'espace, en fin)

et dans Remplacer, tu écris "Vidange" (sans espace)
 
Re : Bug sur macro MFC multiples

Bonjour à tous,
Bonjour bhbh et merci,

Franchement, je n'y étais plus, vraiment à coté de la plaque 😎

Pour me faire pardonner, j'aimerais modifier mon code initial (début de mon post) pour qu'il puisse prendre en compte les différents attributs de la police soit la couleur, le gras et l'italique.

Le code de Boisgontier les prend en compte ci-dessous et j'aimerais le combiner avec mon code initial.

Code:
Dim témoin
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range(Range("ChampMFC"))) Is Nothing And Target.Count = 1 And Not témoin Then
     témoin = True
     Range("couleursMFC").Cells(1, 1).Copy
     Target.PasteSpecial Paste:=xlPasteFormats
     For Each c In Range("couleursMFC")
       If UCase(Target.Value) = UCase(c.Value) Then
          c.Copy
          Target.PasteSpecial Paste:=xlPasteFormats
       End If
     Next c
     Application.CutCopyMode = False
     témoin = False
  End If
End Sub

Merci de votre aide Cibleo
 
Re : Bug sur macro MFC multiples

Bonsoir à tous,

Pour résumé, le bug est réglé et la macro événementielle (MFC multiples) fonctionne bien.

Mais j'aimerais la compléter car elle ne prend en compte que la couleur de fond de mes cellules.

Si je mets du gras, de l'italique ou une autre couleur de police dans la plage (C29:L29), ma MFC ne s'applique que partiellement (Fond de cellule seulement).

Faut-il utiliser les propriétés suivantes dans le code initial (en début de post) : Font et ForeColor pour que celui-ci prenne aussi en compte les attributs "gras", "italique" et "couleur" de la police ?

Je patauge, merci de votre aide.

Cibleo
 
Re : Bug sur macro MFC multiples

Bonsoir le forum,
Bonsoir Didier,

En toute honneteté, j'avais déjà songé à utiliser ta macro et te remercie de m'avoir aiguiller sur la page de ton site.

Après plusieurs tests, je ne suis pas parvenu à la faire fonctionner, pourtant j'ai bien épluché la procédure que tu nous indiques 🙁.

J'ai ainsi relevé que ta macro avait des limites et ai bien noté que les cellules contenant des formules faisant référence à d'autres feuilles de calcul de mon classeur ne pouvaient pas gérer cette MFC spéciale.

C'est mon cas, pour le moment je vais rester fidèle à la macro de Boisgontier et ne pas affecter d'autres attributs à ma MFC que la couleur de fonds de cellule.

Si par bonheur vous trouviez la solution, n'hésitez pas.

Au plaisir mDf et encore merci.

Bonne soirée à tous.

Cibleo
 
- 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
6
Affichages
2 K
Retour