Dans une feuille excel un certain nombre de cellules possède un commentaire.
Depuis VB, je récupère la valeur du commentaire à l’aide de la fonction :
toto = ActiveCell.Comment.Text
Cependant si la cellule ne possède pas de commentaire, alors VB me renvoie l’erreur suivante :
"Erreur d’exécution 91 :Variable objet ou variable de bloc with non définie"
Quelqu’un connaîtrait-il un test qui me permette de définir si la cellule active possède un commentaire ou non ?
l'utilisation raisonnée de On Error Resume Next permet de s'affranchir des contraintes de VBA, ton problème en est un bon exemple. Donc pour ne pas avoir d'erreur tu peux écrire :
On Error Resume Next
toto = ActiveCell.Comment.Text
'éventuellement tu réactives le contrôle d'erreurs par un :
On Error Goto 0
Ti, je perds mon latin, qu'elle est la solution, Le On Error Resume Next
, Len(Worksheets("données").Range("data" + no).NoteText) ou ExecuteExcel4Macro("GET.CELL(46)").
Salut Jean-Marie
Les contraintes de VBA, ce sont tous ces cas où il renvoie une erreur quand il ne trouve pas ce qu'on lui demande, alors qu'il aurait été si simple de renover une valeur Nothing (pour une variable objet) ou une chaîne vide (comme dans le cas de ce commentaire). Il faut donc trouver des astuces pour passer outre, notamment en désactivant les erreurs, ce qui d'ailleurs n'est pas sans risque, puisque si dans les options de VBA on a indiqué "Arrêt sur toutes les erreurs" alors on aura un arrêt sur erreur même avec le On Error Resume Next. Heureusement, cette option n'est pratiquement jamais cochée...
Je pense que l'utilisation des macros Excel 4 est à éviter dans du VBA, chaque fois qu'on le peut, puisque ces macros ne sont qu'un reliquat d'une époque révolue (oups, je ne devrais pas dire ça au président de la SPAM )