[EXCEL2019][WIN10] Le code VBA "Replace" ne remplace aucun texte dans FormulaArray

Anonyme
2021-07-08T04:22:01+00:00

Bonjour @tous!

Pour contourner la limitation de 256 caractères de FormulaArray, j'ai essayé l'astuce ci-dessous pour retrouver ma formule matricielle complète:

Sub test()

Dim ligneMois

ligneMois = "(IFERROR(MONTH('Rest. (Total)'!R1C1:R999C1),0)=MONTH(R1C9))\*(IFERROR(YEAR('Rest. (Total)'!R1C1:R999C1),0)=YEAR(R1C9))\*ROW('Rest. (Total)'!R1:R999)" 

With Range("J1") 

    .FormulaArray = \_ 

        "=IFERROR(IF(SUMPRODUCT(1111)=0,0," & Chr(10) & \_ 

        "INDEX('Rest. (Total)'!R1C1:R999C5,SUMPRODUCT(1111)" & \_ 

        ",COLUMN('Rest. (Total)'!R1C1))),0)" & \_ 

        "" 

    .Replace What:="1111", Replacement:=ligneMois, LookAt:=xlPart[

End With 

End Sub

Tout se déroule bien jusqu'à la fin sans message d'erreur, mais le remplacement n'a pas été effectué tel que demandé.

Pouvez-vous m'aider svp?

D'avance un grand MERCI à tous qui prendront un temps pour mon problème!

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

Réponse acceptée par l’auteur de la question

Anonyme
2021-07-08T17:15:24+00:00

Nous utilisons un service de traduction pour assister nos utilisateurs. Veuillez nous excuser pour les éventuelles erreurs grammaticales.

Je viens d’essayer une fois de plus avec le même code en anglais et voici la vidéo ainsi:

https://1drv.ms/v/s!AoD7X2fui8e1ngg40rayAw7HcHD...

Il remplace de mon côté.

Cependant, je viens d’observer qu’il y a un espace supplémentaire dans le nom de la feuille (Rest. (Total)) - dans le code VBA. Alors que le nom réel de la feuille n’a pas beaucoup d’espace entre « Rest. » et « (Total) », pouvez-vous essayer de renommer la feuille en quelque chose de simple comme « Sheet2 » - remplacez le nom de la feuille dans le code VBA et réexécutez-le. Si vous ne souhaitez pas renommer la feuille, copiez-la et renommez-la et utilisez celle copiée dans le code VBA.

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

1 personne a trouvé cette réponse utile.
0 commentaires Aucun commentaire

15 réponses supplémentaires

  1. Anonyme
    2021-07-08T23:17:19+00:00

    HOURRRRAAAAAAAAAAAAAAAAAAHHHHHHHH !!!

    PROBLÈME RÉSOLU!!!

    Tu m'as mis sur la voie grâce à ta vidéo ! MERCI BHAVIK !!

    Mon code VBA lineMonth était correct à UN défaut près (comme d'habitude) :

    • Les références des cellules étaient en R1C1 !!!
    • Alors qu'elles devaient être en A1 !!!

    Ci-dessous l'image du code correct :

    En rouge, le code tel qu'il était avant et en noir, le code tel qu'il doit être.

    Conclusion :

    >> L'une des règles à respecter pour que la fonction "replace" fonctionne: Le texte à remplacer doit être en ANGLAIS et en A1.

    ENCORE UNE FOIS, MILLE MERCIS À TOI BHAVIK POUR TA PATIENCE ET LE TEMPS QUE TU AS PRIS POUR M'AIDER À RÉSOUDRE MON PROBLÈME!!

    Je te souhaite tout ce qu'il y a de meilleur pour toi et tous ceux qui te sont chers !

    Evguen

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

    0 commentaires Aucun commentaire
  2. Anonyme
    2021-07-08T16:50:40+00:00

    C'est exactement par ça que j'avais commencé Bhavik (cf. image ci-dessous) :

    Ça n'avait donné aucun résultat, c'est pour ça qu'on a pensé essayer avec "Ctrl+H".

    Je viens encore d'essayer, sans succès.

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

    0 commentaires Aucun commentaire
  3. Anonyme
    2021-07-08T16:40:26+00:00

    Nous utilisons un service de traduction pour assister nos utilisateurs. Veuillez nous excuser pour les éventuelles erreurs grammaticales.

    VBA ne comprend que le code anglais! Je recommanderais donc d’écrire le même code en anglais, vous pouvez vous référer à ma capture d’écran où je l’ai écrit en anglais et cela fonctionne comme prévu.

    https://paste.pics/D4J3R

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

    0 commentaires Aucun commentaire