Enlever MFC par code VBA

Bonjour à vous tous!

J’ai un classeur contenant plusieurs onglets. Sur la feuille du premier onglet, j'ai créé un bouton qui imprime les onglets identifiés dans le code. Je me demandais si c'était possible de désactiver 2 MFC qui sont en rouge pâle et en jaune de 2 onglets (feuil2 et Feuil3) en particulier dans le code de ce bouton. Je souhaite seulement désactiver ces 2 MFC en gardant les autres.

J'ai essayé d'imprimer les onglets en noir et blanc, mais cela ne fonctionne pas comme je le voudrais puisqu’il affiche en noir et blanc le calcul de temps de plusieurs formules dont j'ai volontairement caché en MFC pour ne pas les imprimer pour rien puisque le total est 0:00.

J'ai essayé aussi de désactiver l'affichage des 0 dans les options d’Excel, mais cela supprime des 0 essentiel dans le classeur.

Avez-vous une solution?

Voici une partie du code du bouton imprimer:

Private Sub CommandButton5_Click()
Sheets("Feuil1").Unprotect Password:="blablabla"

 Dim sRep As String
 Dim sFilename As String

    Sheets("Feuil1").Select
    ActiveSheet.PrintOut from:=1, To:=1, Copies:=1, Collate:=True

    Sheets("Feuil2").Select
    ActiveSheet.PrintOut from:=1, To:=1, Copies:=1, Collate:=True

    Sheets("Feuil3").Select
    ActiveSheet.PrintOut from:=1, To:=1, Copies:=1, Collate:=True

Je ne peux malheureusement pas partager le fichier pour l'instant, il y a trop d'informations confidentiels que je ne peux enlever.

Merci beaucoup pour votre aide

Bonjour,

Pour traiter des MFC en VBA, il est plus que souhaitable de ne pas travailler en aveugle . Il convient donc d'attendre que tu fournisses le fichier sur lequel on pourra efficacement travailler...

Le reste de tes demandes est très confus. Inhiber l'affichage des 0 est une question qui a de multiples solutions, toutes faisant partie des bases de l'utilisation d'Excel. Il est étonnant de ne pas en avoir une, même si ce n'est pas la mieux adaptée. En vrac : mise sous condition des formules qui affichent 0, forcer en format texte (fonction T) les renvois de 0 par des cellules vides, format de cellule inhibant les 0, pour les principales (masquer l'affichage des 0 au niveau Options n'est en général pas une bonne solution, il convient de ne pas les afficher là où ils n'ont pas lieu d'être, mais de les afficher lorsqu'ils sont significatifs.

Citer une procédure de façon incomplète n'est jamais une bonne option, elle ne permet pas de répondre en connaissance de cause...

Je ne vois pas par ailleurs le rapport entre le code cité et tes questions !

Ce qu'on peut en dire : qu'il serait mieux écrit de façon non enregistrée, sans Select et sans arguments inutiles de la méthode :

      Sheets("Feuil1").PrintOut

suffit pour imprimer Feuil1 dans les mêmes conditions, et même chose pour les autres feuilles.

Cordialement.

Bonjour MFerrand,

voici une partie de mon fichier que j'ai reproduit manuellement en attendant.

En réalité il y a beaucoup plus de cellule que ça dans le fichier et je voudrais adapter le code à toute la page et non à certaines lignes/colonnes. Les cellules en jaunes peuvent ne pas devenir jaune selon certains contextes et les cellules qui ne sont pas en jaunes peuvent le devenir selon certains contextes également (voir les formules dans les 2 premières lignes). Les MFC en jaune sont donc variables. Les cellules en rouges le resteront toujours et en aucun cas elles changeront de couleur.

Concernant les cellules qui contiennent des "0:00" (le 0:00 est le résultat d'une formule), comment faire pour les renvoyer en cellules vides puisque ces cellules ont des MFC en bleu et en blanc pour les cacher? Sans doute que ceci résoudras mon problème si je parvient à avoir des cellules vides puisque le fait d'imprimer en noir et blanc résout presque tous mes problèmes. Je ne pensais pas que cette solution serait possible, je croyais que seul VBA pouvais m'aider...

À notez: Les cellules vides dans les 2 premières lignes sont celles qui contiennent les fameux "0:00" qui sont cachés par 2 MFC différentes. Chaque colonnes fonctionnent indépendamment des autres colonnes donc il y a plusieurs MFC qui se ressemblent et qui sont probablement inutiles, pour l'instant je n'ai pas réussi à trouver une meilleure façon de faire. Le fichier original est assez complexe à remplir.

Bonjour,

Inhibition 0 => format de cellule !

Reste une MFC.

Suppression MFC :

Sub MFCoff()
    Worksheets("Feuil1").Range("C7:P8").FormatConditions.Delete
End Sub

Mise en place PFC :

Sub MFCon()
    Worksheets("Feuil1").Range("C7:P8").FormatConditions.Add(xlExpression, _
     , "=C2>0").Interior.Color = vbYellow
End Sub

Cordialement.

NB: je laisse de côté tes formules qui me paraissent plutôt curieuses...

Bonjour,

Concernant les formules, ce que j'ai écrit se sont des formules au hasard puisque je ne pouvais refaire le classeur au complet avec les vrai formules. J'ai tout simplement recréer un résultat qui ressemble au résultat original.

Je viens de voir le nouveau format de cellule pour remplacer les 0 par des cellules vides, ça fonctionne, est-ce que vous pouvez me dire pourquoi que le simple fait d'ajouter ;; à la fin du format permet de mettre des cellules vides? Ils veulent dire quoi les ;;? Je me sens bête de ne pas y avoir pensé.

Merci!

Le format qui précède le premier ; concerne les nombres positifs, entre le premier et le second les nombres négatifs, après le second les valeurs 0 [et s'il y en a un 3e, après le 3e les valeurs texte. Si on ne met rien dans une zone de format, rien n'est affiché pour les valeurs correspondant à la zone. Donc là pas d'affichage pour les nombres négatifs et les 0.

Ok merci beaucoup pour vos explications tout fonctionne à merveille

Rechercher des sujets similaires à "enlever mfc code vba"