Problème de "Barre de formule" avec le l'Info-Bulle de résultat

Bonjour à tous,

Je fais court …

Depuis qu'Excel calcule automatiquement le résultat de la formule et l'affiche dans une info bulle ma fonction disparait SIje sélectionne la formule.

Tout va bien jusqu'à cette foutue info bulle.

Si je fais "Echap" rien ne se perd. Par contre si je fais "Entrée" la formule est remplacé par son résultat

Quelqu'un aurait-il une explication, un paramétrage?

Merci à tous

PS:La fonction est une UDF parmi d'autres que j'ai écrite.

Bonjour,

Je fais court …

C'est même trop court, sans voir le fichier, ni ce que vous avez déjà fait comme fonction, impossible de pouvoir donner une réponse.

Cdlt

Bonjour et merci

en effet c'est court ... pour une fois.

Je vais tenter en plus long 😊

Dans la barre de formule, lorsque l'on surligne la formule une Info-Bulle apparait avec le résultat (contrairement à avant).

Résultat dans une de mes UDF (non matricielle) .dés que je la sélectionne ET que le résultat s'affiche dans l'Info-Bulle j'ai bien le résultat MAIS la fonction s'efface.

test 2

Si vous voulez mettre les mains dans le cambouis (pas mal de ligne 😁)je pourrais mettre mon UDF mais je ne sais pas si c'est le bon endroit dans le forum pour le faire.

Donc j'aimerais savoir si quelqu'un a une idée sur la raison de cette "réaction" car je séché. Ce n'est pas bloquant mais c'est c... perturbant voire pénible pour l'utilisateur.

ZUT !!!

Le gif ne fonctionne pas.

Si notre cher modérateur pouvez me dire comment supprimer une réponse "foireuse" pour ne pas encombrer?

par avance merci

Bonjour,

Si notre cher modérateur pouvez me dire comment supprimer une réponse "foireuse" pour ne pas encombrer?

Pour supprimer un message vide (comme celui que je viens de supprimer), tu peux le signaler avec le bouton "!" du post concerné.

Bonjour,

Peut-être que le problème se situe là:

"PS:La fonction est une UDF parmi d'autres que j'ai écrite."

Cdlt

@Sebastien

Merci pour l'info. 😊

@Arthur.

Merci, mais non.

Je les ai toutes désactivées sauf celle-ci et le problème persiste.

Par contre c'est la seule dans laquelle j'utilise

Application. Volatile (True)

Donc l'ai retiré. toujours pareil. 😪

Je continue à chercher et je vais tenter une expérience en extrayant une parti de mon code que je soupçonne.

Si c'est lui je le partagerai ici.

Je vous tiens au courant

Merci

1er rapport😉

Je pensais que c'était la fonction Application.Evaluate ou Application.Volatile.

Après tests les 2 semblent hors de cause.

Ca marche. La fonction "Start" reste.

Pour ceux que cela intéresse, voici le fichier test.

Un avis?

Moi je suis en panne. Comprends pas.

bonjour p tit vieux,

je ne sais pas si je dois te féliciter ou l'inverse, je ne comprends pas le but de ces fonctions, j'ai même une sorte d'aversion quand je lis ces macros.

C'est quoi le but ? Avec ce "WriteToCellsEvaluate", vous changez le contenu de certaines cellules et si c'est la cellule de votre UDF initiale, la formule sera supprimée ...

Bonsoir

Le point de départ a été de pouvoir écrire des résultats de calcul à partir d'une fonction.

Après recherches j'ai eu confirmation qu'Excel n'autorise pas l'écriture dans d'autres cellules que la cellule appelante celles de fonction matricielle.

J'espere que je suis clair 😰

Donc, 👴un peu têtu, j'ai fini par trouver comment faire.

Peut être est ce possible en VB.NET mais bon je préférais rester en VBA. Et puis c'était une sorte de défi d'y arriver ainsi.😇

Voila tu sais tout ou presque

Alors félicitations ou ... Pendu?

😂

Merci à toi

PS

Jette un œil sur mon autre sujet tu comprendras mieux le pourquoi de cet exemple.

https://forum.excel-pratique.com/applications/balance-udf-calcules-multizones-et-affichage-des-resul...

... Et dis moi ce que tu en penses.

Si tu as une solution plus élégante et plus sûre je suis vraiment preneur.

Moi je n'ai pas trouvé... Peut être par API ou en .NET avec une DLL qui réalise les écritures dans les cellules ?

bonne soirée.

re, votre problème est par exemple quand vous déplacez C2 (CTRL+X) vers par exemple E2 (CTRL+V), la fonction se lance et pendant son cycle avec le "WriteToCellsEvaluate" on copy&colle A1:A3 en E1:E3 et votre fonction est disparu.

Peut-être, on sait éviter des référence circulaires comme ça, mais ???

On n'a jamais parlé des évenements, par exemple si on change une cellule, alors excel doit réagir de telle manière ?

Votre façon d'utiliser, c'est une sorte de réinventir l'eau chaude avec une méthode "black box", on sait que ça fonctionne, mais on ne sait pas comment.

Donc félications, non, j'ai mis un pull supplémentaire à cause des frissons, c'est une forme de sacrilège, mais si vous êtes content, alors moi, je me tais

Non ce n'est pas satisfaisant je l'avoue.

Dans une appli "standard" (donc hors limitations Excel) je n'aurais jamais fais cela.... Dans le temps.

Mais la c'est un petit défi que je me suis lancé ( c'est à dire tout en VBA)

En effet les références circulaires ça coince.

Ce n'est pas "méchant" si c'est une petite "matrice" mais sur de gros volumes AÏE!🤕🤒 Même si en laissant Application.Volatile tranquille. Mais là plus de verrouillage cellules lorsque l'on change ou supprime des valeurs.

Je continue à chercher une autre solution.

Savez vous si en .NET une DLL (avec ou sans appel aux API) pourrais faire le job ?

D'avance merci pour toute idée à tester. Je suis preneur.

PS

Dans le fichier exemple je n'ai pas testé le "copier/collé" dont vous parlez.

je vais voir cela.demain

Bonjour BsAlv

re, votre problème est par exemple quand vous déplacez C2 (CTRL+X) vers par exemple E2 (CTRL+V), la fonction se lance et pendant son cycle avec le "WriteToCellsEvaluate" on copy&colle A1:A3 en E1:E3 et votre fonction est disparu.

Bon suite à votre message j'espère que vous avez bien dormi sans trop de frisson 😊
Je viens de faire les tests de "copier/coller" , "déplacer" une zone puis l'autre etc. changer les valeurs.
Je n'ai pas eu de problème. Tout les évènements réagissent normalement. La fonction ne disparait pas.
Je n'ai pas réussi à reproduire votre bug. Mais peut-être ne vous ai-je pas compris.
Dites moi.
Pour en revenir au sujet de départ, ce n'est pas cette partie de code qui provoque la disparition de la formule dans la barre de formule lorsque celle-ci la calcul.
Je cherche encore le ou les coupables.

Cordialement
20230707 140205 2

Enregistrement de ce j'ai testé

re,

* positionnez-vous sur C2 (avec votre formule)

* faites CTRL+X

* positionnez-vous sur E2 (une cellule de la plage du 2ième paramètre)

* faites CTRL+V

résultat, formule disparu

si vous avez besoin d'un caméra, voici un et modifiez quelque chose dans la plage A1:E4 (contenu, couleur, bordures, ...)

RE à tous

A propos de l'effacement de la formule dans la barre de formule au moment de son calcul auto, j'ai trouvé! Enfin s'il n'y a que cela.😁

En remontant dans mes backups, j'ai constaté que j'ai modifié la chronologie d'appel à des routines.

Principalement celle qui lit les infos d'Application.Caller

L'effacement se produisait à cause de cela. Mais pourquoi la lecture d'Application.Caller provoquait il ça? Je ne sais pas.

Merci à tous

* positionnez-vous sur C2 (avec votre formule)

* faites CTRL+X

* positionnez-vous sur E2 (une cellule de la plage du 2ième paramètre)

* faites CTRL+V

résultat, formule disparu

si vous avez besoin d'un caméra, voici un et modifiez quelque chose dans la plage A1:E4 (contenu, couleur, bordures, ...)

Bonjour Bart

J'ai vu un cas qui reproduit le problème.

Si vous déplacer la cellule formule dans une cellule contenant un résultat de la formule.

image 2023 07 07 184632582

C2 déplacé en E2 (qui contient un résultat de la formule en C2 initiale).

Ci dessous une fois collé.

Résultat => PANIQUE! 😂. C'est vrai plus de formule.

image 2023 07 07 183936033

Allez avouez!! C'est vicieux, non? 😄

Ce ne sont que quelques lignes de codes pour savoir si cette partie était "coupable".

En effet il faudrait contrôler si la cellule est vide avant de l'autoriser . Là on passe à autre chose.

Pour mémo ce n'est que cela.:

Option Explicit

Dim TabloToWrite
' C'est un exemple extrait de mon UDF Balance
' Copie la/les cellules sélectionnée(s) ailleurs.
' Soit dans une autre zone  soit en décalage (offset)
Function Start(SelectedCells As Range, Optional Where As Range, Optional OffsetRow As Integer = 0, Optional OffsetCol As Integer = 1)
Dim Rep
Dim RangeTmp As Range

  On Error GoTo ErrHandlers

'  Controle si Where est absent
  If TypeName(Where) = "Nothing" Then
'  Si oui on utilise les offsets fournis ou leurs valeurs par défaut
    Set RangeTmp = SelectedCells.Offset(OffsetRow, OffsetCol)
  Else
'  Si fourni on prend ce parametre
    Set RangeTmp = Where
  End If

' Désactive Volatile
  Application.Volatile False
'  Tranfert les valeurs de la selection dans le tableau
  TabloToWrite = SelectedCells
' Appel la fonction d'écriture
  Rep = CallWriteToCell(RangeTmp.Address(, , , , True))
' Juste pour afficher un retour. Ne sert à rien
  Start = SelectedCells.Cells(1).Value
' Active Volatile
  Application.Volatile True
Exit Function

ErrHandlers:
  Debug.Print "Start: "; Err.Number, Err.Description, Erl
  Stop
  Err.Clear
  Resume Next
End Function

Private Function CallWriteToCell(CopyTo As String) 'CopyFrom As Variant, CopyTo As Range)
Dim TmpRange As Range
  On Error GoTo ErrHandlers

  Set TmpRange = Range(CopyTo)

  TmpRange.Parent.Evaluate "WriteToCellsEvaluate(" & TmpRange.Address(, , , True) & ")"
Exit Function

ErrHandlers:
  Debug.Print "CallWriteToCell: "; Err.Number, Err.Description, Erl
  Stop
  Err.Clear
  Resume Next
End Function

Private Sub WriteToCellsEvaluate(CopyTo As Range)
  On Error GoTo ErrHandler
  CopyTo = TabloToWrite
Exit Sub

ErrHandler:
' #If DoDebug = True Then
  Debug.Print "WriteToCellsEvaluate: "; Err.Description, Err.Number, Erl
' #End If
  Stop
  Err.Clear
  Resume Next
End Sub

Merci beaucoup pour votre aide.

Cordialement

€Bart

Pour une réponse partielle à l'écrasement de résultats existant.

En changeant le début

Application.Volatile False

par

Application.Volatile True

Un avertissement d'"écrasement demande confirmation de l'action.

Cela fonctionne en déplacement de la cellule à la souris MAIS pas avec CTRL+X

C'est un début.

Rechercher des sujets similaires à "probleme barre formule info bulle resultat"