Bug Excel sur formules matricielles suite à macro VBA

Résolu
micheljus1 Messages postés 2 Date d'inscription mardi 5 janvier 2010 Statut Membre Dernière intervention 15 janvier 2010 - 15 janv. 2010 à 14:31
micheljus1 Messages postés 2 Date d'inscription mardi 5 janvier 2010 Statut Membre Dernière intervention 15 janvier 2010 - 15 janv. 2010 à 17:06
Bonjour à tous,

Je ne suis pas sur d'être sur le bon forum ou le bon thème, mais je vais tenter quand même.

J'utilise des fichiers Excel avec des formules matricielles. Suite au test d'une macro VBA que je venais de créer, ces formules ne fonctionnent plus (les autres formules marchent très bien).

Et si j'ouvre les autres classeurs, ils ont eux aussi perdus cette fonctionalité.

Si je referme Excel et que je le réouvre, ça ne supprime pas le bug (même s'il n'y a plus aucun processus Excel en cours).

La seule solution, c'est de redémarrer le micro. Dans ce cas la, les autres fichiers avec des formules matricielles remarchent.

Par contre, si j'ouvre mon fichier dans lequel le bug a été généré, de nouveau plus aucune formule matricielle ne fonctionne, pour aucun classeur.

J'ai testé sur un autre PC et le souci est le même.

Pour info, il s'agit d'Excel 2000, je valide bien mes formules matricielles avec ctrl-maj-Entrée et la macro VBA qui à généré le bug est la suivante :

Sub Dedoublonnage()
'
' Dedoublonnage Macro
'
Msg = "Entrez le NNI en doublon"
Title = "Dédoublonnage NNI"
NNIDble = InputBox(Msg, Title)
'
Range("G458").Select
ActiveCell.FormulaR1C1 = NNIDble
With ActiveCell.Characters(Start:=1, Length:=6).Font
.Name = "Arial"
.FontStyle = "Gras"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
ActiveWorkbook.RefreshAll
Rows("458:458").Select
Selection.Copy
Columns("G:G").Select
Selection.Find(What:=NNIDble, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
Ligne1Dble = ActiveCell.Row
Rows(Ligne1Dble & ":" & Ligne1Dble).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Columns("G:G").Select
Selection.FindNext(After:=ActiveCell).Activate
Selection.FindNext(After:=ActiveCell).Activate
Ligne2Dble = ActiveCell.Row
Range("G" & Ligne2Dble).Select
Application.CutCopyMode = False
Selection.ClearContents
ActiveWindow.SmallScroll Down:=261
Range("G458").Select
End Sub


Que peut-il donc s'être passé dans mon classeur pour qu'il fasse bugger les formules matricielles d'Excel à ce point la ?

2 réponses

micheljus1 Messages postés 2 Date d'inscription mardi 5 janvier 2010 Statut Membre Dernière intervention 15 janvier 2010
15 janv. 2010 à 17:06
Merci pour la question.

Entretemps j'ai trouvé d'ou venait mon problème. J'avais vraiment pensé à un plantage d'Excel, et j'ai eu tord.

J'ai eu une ligne de concaténation avec des erreurs que je n'avais pas repéré, et ma macro, en remplaçant le contenu d'une des lignes à concaténer, a évidemment collé ces erreurs et c'est cela qui aurait fait bugger toutes mes formules matricielles (en tout cas, c'est la seule explication que j'ai vu). Même si je n'ai pas encore compris pourquoi ça me provoquait ensuite des erreurs sur les autres classeurs (qui n'en avaient pas au départ), depuis que j'ai corrigé, ça ne le fait plus.

Pour répondre quand même à la question, NNIDble est juste une référence qui me permet de retrouver les lignes en doublons, pour ensuite concatener toutes les valeurs (pas loin de 80 valeurs/colonnes différentes avec recalcul pour les taux), coller le tout sur la première ligne du doublon concerné et enlever la ref sur les autres lignes (je garde néanmoins les lignes pour contrôle). Vous n'avez vu que le premier jet (celui qui m'avait planté ;-). je finalise en ce moment l'automatisation de la bète.

Cordialement
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
15 janv. 2010 à 16:02
Bonjour,
Qu'est exactement NNIDble ? Si fonctyion pe(rsonnalisée utilisée comme formule : quel est le code qu'elle contient ?

____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
Rejoignez-nous