Erreur sur lecture du NumberFormat d'une MFC

Anonyme
2021-06-01T06:53:31+00:00

Bonjour,

j'essaie en vain de lire certains NumberFormat d'une Mise en forme conditionnelle.

Cela fonctionne bien, sauf si celui-ci est défini sur Standard, ou sur la première date proposée dans la liste, pas les autres ???

L'erreur est la suivante: 1004 Erreur définie par l'application ou l'objet

J'ajoute que pour le format standard, l'erreur ne se produit systématiquement, pour certaines MFC, la valeur est correcte.

Je passe donc par une gestion d'erreur, mais impossible de définir avec exactitude le format correct.

Le code est simple, la MFC est une Expression, la variable strNumberFormat est définie en Variant :

strNumberFormat = Worksheets(1).UsedRange.FormatConditions(1).NumberFormat

De plus, NumberFormatLocal ne fonctionne pas et retourne une erreur pour tous les formats.

Merci pour votre aide,

Cordialement,

Alain

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

13 réponses

  1. Anonyme
    2021-06-01T16:17:59+00:00

    Merci pour votre intérêt à cette question.

    J'apporte quelques précisions sur ce problème:

    Je voudrais réaliser un dossier technique (fichier texte) qui enregistre les paramètres de toutes les MFC, entre autre, d'un fichier Excel.

    Je passe donc par deux boucles, tous les onglets, puis toutes les MFC de chaque onglet.

    Pour Hecatonchire, je dois bien sélectionner un objet range, mais comme je ne sais quelles cellules contiennent des MFC, je déclare toute la zone de travail.

    Pour DanielCo, merci pour cette constatation, mais je ne peux pas procéder ainsi, mon dossier technique pourrait récupérer les informations d'un fichier Excel quelconque.

    Par contre, je ne sais ce que j'ai fait comme modif, mais le format Standard s'affiche maintenant correctement.

    Reste à trouver une solution pur le format de date

    Merci pour votre aide et votre soutien. En espérant qu'une réponse vienne résoudre cette énigme.

    Cordialement,

    Alain

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. DanielCo 107.7K Points de réputation
    2021-06-01T13:19:46+00:00

    C'est glauque.

    Ca plante si le format est entré manuellement. Par contre, s'il est entré par VBA, ça passe :

    ActiveCell.FormatConditions(1).NumberFormat = "jjj/mm"

    Var = ActiveCell.FormatConditions(1).NumberFormat

    Comprenne qui pourra.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Hecatonchire 53,950 Points de réputation Modérateur bénévole
    2021-06-01T10:40:27+00:00

    J'ai pris un peu de temps pour mener l'enquête

    Certains formats passent (Monétaire, comptabilité, %) mais pas certain (Date)

    jjj, mmm, jjj-mmm => Ok

    jjj/mmm => HS

    mais

    jjj"/"mmm => OK

    Donc le coupable ce n'est le colonel Moutarde mais c'est... /

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. DanielCo 107.7K Points de réputation
    2021-06-01T09:28:16+00:00

    Bonjour,

    Je fais à priori le même constat que toi. Bizarre, et je ne trouve pas trace de ce problème sur internet. Je chercherai plus en détail cet après-midi.

    La propriété NumberFormatLocal n'est pas une propriété de FormatCondition (seulement de Range).

    Cordialement.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Hecatonchire 53,950 Points de réputation Modérateur bénévole
    2021-06-01T07:05:34+00:00

    Bonjour

    Une simple réflexion (je n'ai pas fais de test) mais je n'utiliserais pas UsedRange.

    Y-a-t'il une MFC sur tout le UsedRange ou seulement sur une portion ?

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire