[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-08T16:34:20+00:00

    Non, c'est mon premier code avec FormulaArray.

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

    0 commentaires Aucun commentaire
  2. Anonyme
    2021-07-08T16:21:39+00:00

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

    Avez-vous un autre code VBA dans Français qui fonctionne comme prévu?

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

    0 commentaires Aucun commentaire
  3. Anonyme
    2021-07-08T16:15:52+00:00

    Je l'ai fait Bhavik (cf. image ci-dessous) :

    En noir ce qu'il y a avait déjà dans le code et en rouge ce que j'ai appliqué dans la fenêtre de recherche, après avoir cliqué sur "Ctrl+H".

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

    0 commentaires Aucun commentaire
  4. Anonyme
    2021-07-08T14:04:40+00:00

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

    D’accord, c’est génial, et ma prochaine question était est-ce la même valeur que celle que vous utilisez dans votre vidéo à 2: 25?

    Veuillez le comparer et vous assurer qu’il n’y a rien de différent entre ces deux valeurs.

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

    0 commentaires Aucun commentaire