Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Trouver cellule avec formule matricielle

5 réponses
Avatar
rmill...
Bonjour,

J'ai le message que je ne peux modifier une partie de la matrice.

Mais ... comment faire pour trouver la ou les cellules contenant un formule matricielle?

Je n'arrive pas. Auriez-vous un petit truc ou une macro?

Merci Í  l'avance.

5 réponses

Avatar
MichD
Le 12/10/21 Í  13:00, a écrit :
Bonjour,
J'ai le message que je ne peux modifier une partie de la matrice.
Mais ... comment faire pour trouver la ou les cellules contenant un formule matricielle?
Je n'arrive pas. Auriez-vous un petit truc ou une macro?
Merci Í  l'avance.

Bonjour,
Il y a ceci : Onglet de la feuille et la plage de cellules Í  adapter.
'------------------------------------
Sub test()
Dim Rg As Range, C As Range
With Worksheets("Feuil1")
Set Rg = .Range("A1:G50").SpecialCells(xlCellTypeFormulas)
End With
For Each C In Rg
If C.HasArray Then
Message = Message & C.Address & ", "
End If
Next
If Message = "" Then
MsgBox "Aucune formule matricielle a été trouvée"
Else
Message = Left(Message, Len(Message) - 2)
MsgBox "Ces cellules " & Message & " contiennent des formules
matricielles."
End If
End Sub
'------------------------------------
MichD
Avatar
rmill...
Merci. Cela a permis de valider qu'il n'y avait pas de matrice. Extrêmement utile.
Mais j'ai trouvé 2 nouvelles formules dans lesquelles j'utilise la fonction MAX.
Mais mon problème est le suivant.
Dans la formule je n'ai pas utilisé Ctrl Maj Shift. Sur mon ordi et plusieurs autres ... aucun problèmes.
Mais sur d'autres ... automatiquement ... s'est placé le type de parenthèse qui apparait lorsqu'on fait le Ctrl Maj Shift. Je crois ceci relié Í  si on a Office 365 ou non depuis possiblement 18 mois.
De lÍ  le message relié Í  la matrice qui apparait lorsque je fais une certaine action. Lorsque sur les ordis en question j'enlève le type de parenthèse il y a un message d'erreur dans la cellule.
Je recherche la dernière cellule dans la plage qui contient une valeur. Dans ce cas-ci c'est 3. Y aurait-il une meilleure formule ... plus simple?
A1
A2
A3 500$
A4
A5
Avatar
MichD
Le 12/10/21 Í  16:56, a écrit :
Merci. Cela a permis de valider qu'il n'y avait pas de matrice. Extrêmement utile.
Mais j'ai trouvé 2 nouvelles formules dans lesquelles j'utilise la fonction MAX.
Mais mon problème est le suivant.
Dans la formule je n'ai pas utilisé Ctrl Maj Shift. Sur mon ordi et plusieurs autres ... aucun problèmes.
Mais sur d'autres ... automatiquement ... s'est placé le type de parenthèse qui apparait lorsqu'on fait le Ctrl Maj Shift. Je crois ceci relié Í  si on a Office 365 ou non depuis possiblement 18 mois.
De lÍ  le message relié Í  la matrice qui apparait lorsque je fais une certaine action. Lorsque sur les ordis en question j'enlève le type de parenthèse il y a un message d'erreur dans la cellule.
Je recherche la dernière cellule dans la plage qui contient une valeur. Dans ce cas-ci c'est 3. Y aurait-il une meilleure formule ... plus simple?
A1
A2
A3 500$
A4
A5

A )
Je ne connais pas la version Office 365, ni les dernières versions 2019
et la toute dernière 2022, mais il serait très surprenant qu'il existe
une version d'Excel dont les accolades entourant la formule ne
signifient pas que cette formule est matricielle. À l'oeil, c'est la
manière de les identifier en regardant la présence de ces accolades de
la formule dans la barre des formules. La preuve, lorsque tu enlèves ces
accolades, la formule retourne une erreur. Si tu ne valides par la
formule par Ctrl + Maj + Enter, ce n'est pas une formule matricielle et
il n'y a pas d'accolade. Dans le cas contraire, c'est une formule
matricielle jusqu'Í  preuve du contraire!
B ) pour trouver la dernière cellule ayant la valeur égale Í  3, s'il y a
une possibilité de doublon, tu vas devoir passer par une formule
matricielle. Si cette valeur est unique, tu peux utiliser la fonction
"Equiv()".
MichD
Avatar
rmill...
Je pensais cela aussi. Mais vraiment chez moi et chez d'autres usagers la formule n'est pas une formule matricielle. Du moins je n'ai pas inscrit d'accolades entourant la formule avec le Ctrl Maj Shift.
Mais ... chez certains usagers lorsque j'ouvre le fichier dans cette formule il y a les accolades??? Personne ne les a inscrite. Ces cellules ne sont même pas visibles dans une feuille protégée.
Sur les ordis en question ... si je les enlève ça retourne une erreur. Si je les remets ça retourne la bonne valeur. Mais sur mon ordi aucune accolades. Si je fais Ctrl Maj Shift la bonne valeur demeure. Si je les enlève la bonne valeur y demeure aussi????
Mais je vais y aller d'une autre façon. Soit d'avoir une autre variable Í  un autre endroit et alors de pouvoir utiliser une autre formule.
Car il y a environ 18 mois suite Í  une MAJ de Office certaines formules ne fonctionnaient plus si le fichier était en .xls ... mais ... si seulement on n'était pas en Office 365. Car ... même si en format .xls et avec Office 365 ... ces mêmes formules fonctionnaient toujours car avec Office 365 ... des @ Í  ces formules avaient été ... automatiquement ajoutés. Mais non ... si pas avec 365. J'avais alors converti les fichier en format .xlsb.
Microsoft disait avoir ajouté des fonctions (formules) "puissantes."
Encore merci.
Avatar
MichD
Le 12/10/21 Í  18:09, a écrit :
Je pensais cela aussi. Mais vraiment chez moi et chez d'autres usagers la formule n'est pas une formule matricielle. Du moins je n'ai pas inscrit d'accolades entourant la formule avec le Ctrl Maj Shift.
Mais ... chez certains usagers lorsque j'ouvre le fichier dans cette formule il y a les accolades??? Personne ne les a inscrite. Ces cellules ne sont même pas visibles dans une feuille protégée.
Sur les ordis en question ... si je les enlève ça retourne une erreur. Si je les remets ça retourne la bonne valeur. Mais sur mon ordi aucune accolades. Si je fais Ctrl Maj Shift la bonne valeur demeure. Si je les enlève la bonne valeur y demeure aussi????
Mais je vais y aller d'une autre façon. Soit d'avoir une autre variable Í  un autre endroit et alors de pouvoir utiliser une autre formule.
Car il y a environ 18 mois suite Í  une MAJ de Office certaines formules ne fonctionnaient plus si le fichier était en .xls ... mais ... si seulement on n'était pas en Office 365. Car ... même si en format .xls et avec Office 365 ... ces mêmes formules fonctionnaient toujours car avec Office 365 ... des @ Í  ces formules avaient été ... automatiquement ajoutés. Mais non ... si pas avec 365. J'avais alors converti les fichier en format .xlsb.
Microsoft disait avoir ajouté des fonctions (formules) "puissantes."
Encore merci.

Si les fichiers avec une extension .xls", il est logique de penser
qu'ils ont été créés avec une version Excel de 1997 Í  2003.
Un certain nombre de fonctions (de mémoire 39) avait besoin de la macro
complémentaire que l'on cochait... Or ces fonctions ont été intégrées Í 
l'application Excel avec la version Excel 2007 ne requérant plus cette
macro complémentaire ("Utilitaire d'analyse") pour accéder Í  ces
fonctions. Aujourd'hui, ces fonctions peuvent écrire en français et
elles sont traduites automatiquement dans une autre langue le cas
échéant. Ce n'était pas le cas pour ces fonctions émanant de la macro
complémentaire "utilitaire d'analyse" d'avant la version Excel 2007.
Cet utilitaire existe toujours, mais ne s'applique que pour des analyses
statistiques.
https://support.microsoft.com/fr-fr/office/utiliser-l-utilitaire-d-analyse-pour-effectuer-une-analyse-de-donn%C3%A9es-complexe-6c67ccf0-f4a9-487c-8dec-bdb5a2cefab6
On retrouve cet utilitaire ici : barre des menus du ruban / Fichiers /
Options / Compléments...
Les versions Excel 1997 Í  2003 utilisaient aussi les accolades pour une
fonction matricielle.
N.B. Si tu écris dans une cellule la formule suivante : =Max(A1:A10)
même si tu la valides par Ctrl + Maj + Enter, la fonction "MAX"
retournera la valeur maximale de la plage. Cependant, Max() n'est pas
une fonction matricielle. Le type de validation importe peu, elle
retourne toujours la valeur maximale de la plage ou de la matrice.
Une formule n'est pas matricielle parce que tu la valides par Ctrl +
Maj + Enter.
MichD