Problème de récupération de note en cellule active

Bonjour,
Cette macro fonctionne aléatoirement je dirais :

Sub NoteRécupération()
    Dim celluleActive As Range
    Dim commentaire As String

    ' Définir la cellule active
    Set celluleActive = ActiveCell

    ' Vérifier si la cellule a un commentaire
    If Not celluleActive.comment Is Nothing Then
        ' Récupérer le texte du commentaire
        commentaire = celluleActive.comment.Text

        ' Mettre le commentaire dans la cellule
        celluleActive.Value = commentaire

        ' Déclarer la cellule au format standard
        celluleActive.NumberFormat = "General" ' Format standard
    Else
        MsgBox "La cellule active n'a pas de commentaire.", vbExclamation, "Erreur"
    End If
End Sub

Mon problème est que j'ai des classeurs excel qui "vivent" et parfois j'ai des #REF qui arrivent car je change de fichiers, par exemple une formule devient :
=SIERREUR(RECHERCHEV(A2;#REF!$A$1:$B$512;2;FAUX);"") alors qu'avant j'avais
=SIERREUR(RECHERCHEV(A2;'20250106_switchshowFD51'!$A$1:$B$512;2;FAUX);"") mais si je supprime la source et bien #REF.

Donc j'ai une macro qui met les formules en commentaire et une autre macro qui récupère le commentaire pour le mettre dans la cellule active.
Cette macro s'arrête sur

celluleActive.Value = commentaire

alors que la valeur est bien contenue dans commentaire.
Quelqu'un a t'il une idée ? Sachant que j'essaie de mettre l'ordre Comment avec un "C" majuscule mais VBE/VBA me le change systématiquement avec un "c" miniscule ...

Cordialement,
Zest.

Bonjour,

Alors tout d'abord je trouve votre procédé assez tordu, quel serait l'objectif final recherché ? Il est normal que vous créiez des erreurs #REF en supprimant la source, vous avez bien identifié le problème. Mais ce que je ne comprends pas c'est pourquoi "sauvegarder" les formules dans un commentaire pour ensuite les réinsérer ? Si la source a été supprimée, alors la formule n'est pas valide… Ensuite, il y a surement moyen de se passer des commentaires.

Ensuite sur les points techniques, utilisez Range.Formula property (Excel) | Microsoft Learn (formule en anglais) ou Range.FormulaLocal property (Excel) | Microsoft Learn (dans votre langue windows, français) pour entrez une formule dans une cellule. Pas Range.Value (c'est pour les valeurs/les constantes). Cependant votre code, même s'il est incorrect, devrait fonctionner. S'il y a une erreur c'est que la formule est invalide, probablement puisque vous avez supprimé le fichier => Erreur #REF de nouveau.

Quant au c majuscule/minuscule, c'est un bug du VBE : d'abord sachez que le code VBA n'est pas Sensibilité à la casse — Wikipédia. En d'autres termes, il ne distingue pas les majuscules des minuscules. Donc d'un point de vue fonctionnel, ce "problème" n'a aucune importance. Quant à sa source, vous avez certainement écrit, à un moment donné, une variable avec comme nom "comment". A partir de là, le correcteur de code automatique remplace le "Comment" qu'il connait par le votre, et même si vous le supprimez, ça reste. A part supprimer le module, et copier/coller votre code dans un nouveau, je ne connais pas de solution miracle. Mais bon, encore une fois, c'est juste visuel.

Bonjour zest,

Le (pseudo) problème du c majuscule peut être lié au fait que tu as, à un moment ou un autre, défini une variable nommée "comment". Le problème perdure même si la variable a été supprimée et si en tapant par exemple "commentaire = celluleActive.comment." tu as bien la proposition des propriétés donc il n'y a pas réellement de problème. Ce n'est peut-être pas la meilleure méthode mais je n'en connais pas d'autre, tu peux réobtenir l'écriture correcte en recréant une variable publique "Comment" et en la supprimant ensuite.

Pour le reste : que veut dire "cette macro s'arrête sur" ? tu as un message d'erreur ?, il ne se passe rien ?, autre ?

Pour pouvoir te répondre de manière pertinente, il faudrait que tu communiques un fichier anonymisé.

Cdlt,

Cylfo

ps : @saboh12617 , j'ai vu ta réponse après l'envoi de la mienne, je te laisse poursuivre .

Bonjour Saboh12617 et bonjour Cylfo,
Je vous remercie de vous être penché sur mon souci et pour votre réponse.
Pour répondre à la question quand et comment la macro s'arrête, c'est lors de la restitution du commentaire dans la cellule.
excel me sort le message erreur 1004 :

bd961adf 7f07 4530 9f80 1971210ed28a

Puis dans la macro :

7c6dffdd e0d5 4f3e ba7f d258d20dc761

Et lorsque je dis que cela fonctionne aléatoirement c'est que cette macro marche pour restituer par exemple une formule du style :
='20250106_switchshowFD71'!A1

par contre plante pour me restituer une formule du style :
=SIERREUR(SI(G2=""; "";SI(G2="CPU"; RECHERCHEV(A2; RefLiens!$I$2:$V$19748;14;FAUX);SI(G2="ISL";"LienISL"&H2;SI(G2="UNITE";SI(DROITE(H2;2)="MM";RECHERCHEV(A2;Source!$O$68:$Z$99;12;FAUX);RECHERCHEV(A2;RefLiens!$J$2:$U$19748;12;FAUX));""))));"")

Pour ce qui est de la majuscule, je suis d'accord et je comprends.

Cordialement,
Zest.

Bonjour,

Êtes-vous certain que la formule, si vous l'écrivez telle quelle dans votre fichier, ne crée pas d'erreur ?

Avez-vous essayé avec Range.FormulaLocal comme je vous l'avais indiqué ? Obtenez-vous le même résultat ?

Si oui, l'erreur vient certainement des "" dans la formule. Vous savez qu'il sont utilisés pour délimiter les Strings en VBA.

Personnellement, avec .FormulaLocal je n'ai pas d'erreur, et avec .Value j'en ai une. Veuillez essayer la proposition faite svp.

Merci Saboh12617,
Pour la solution et pour avoir insisté !!! J'avais suivi le lien, lu la page machinalement, mais cela ne m'avait pas plus parlé que ça ...
En utilisant cell.FormulaLocal la macro fonctionne correctement.
Encore un grand merci,

Cordialement,
Zest.

Je vous en prie. Si quelque chose n'est pas clair ou que vous ne voyez pas comment faire, n'hésitez pas à demander une clarification !

Bonne fin de journée.

Rechercher des sujets similaires à "probleme recuperation note active"