Je voudrais trouver la position du 1er #N/A dans la colonne B
mais =EQUIV(#N/A;B:B;0) renvoie #N/A
Utilise l'une de ces deux formules matricelle (pas de colonne entière et validation par ctrl+maj+entrée)
=EQUIV(7;TYPE.ERREUR(B1:B11);0)
ou
=EQUIV(VRAI;ESTNA(B1:B10);0)
=EQUIV(7;TYPE.ERREUR(B1:B11);0)
ou
=EQUIV(VRAI;ESTNA(B1:B10);0)
Alain Vallon, Jacques Boisgontier,
Ajouté ou modifié le 18/05/2008 (N°2010)
Ajouté ou modifié le 18/05/2008 (N°2010)

Que signifient les différentes instructions utilisant le mot "on error" ?
- On error resume next
permet d'ignorer une erreur.
Par exemple dans une boucle for i=1 to 10, si tu sais que pour une raison connue, une ou plusieurs valeurs de i sont manquantes, tu peux ainsi choisir d'ignorer une instruction qui renverrait une erreur.
Attention, pour avoir un code solide, il faut vraiment limiter ce genre d'instructions et ne les mettre que quand on est sur de la cause générant l'erreur. Dans le cas contraire, il faut gérer l'erreur.
on error goto Problème
permet de gérer l'erreur générée. Cette instruction est le plus souvent en fin de macro, suivie uniquement des instructions à exécuter en cas d'erreur (affichage d'un message, réinitialisation de l'état avant le déclenchement de la macro...).
On Error GoTo 0
permet de désactiver la gestion d'erreur générée avec On Error Goto et de réactiver la gestion des erreurs d'Excel / VBA.
err=0
Teste que l'instruction ne génère pas d'erreur.
Par exemple, vous voulez tester si une feuille existe. Vous cherchez à l'activer. Sheets("truc").activate
if err=0 then
msgbox("c'est tout bon")
else
... instructions pour créer la feuille
end if
permet d'ignorer une erreur.
Par exemple dans une boucle for i=1 to 10, si tu sais que pour une raison connue, une ou plusieurs valeurs de i sont manquantes, tu peux ainsi choisir d'ignorer une instruction qui renverrait une erreur.
Attention, pour avoir un code solide, il faut vraiment limiter ce genre d'instructions et ne les mettre que quand on est sur de la cause générant l'erreur. Dans le cas contraire, il faut gérer l'erreur.
on error goto Problème
permet de gérer l'erreur générée. Cette instruction est le plus souvent en fin de macro, suivie uniquement des instructions à exécuter en cas d'erreur (affichage d'un message, réinitialisation de l'état avant le déclenchement de la macro...).
On Error GoTo 0
permet de désactiver la gestion d'erreur générée avec On Error Goto et de réactiver la gestion des erreurs d'Excel / VBA.
err=0
Teste que l'instruction ne génère pas d'erreur.
Par exemple, vous voulez tester si une feuille existe. Vous cherchez à l'activer. Sheets("truc").activate
if err=0 then
msgbox("c'est tout bon")
else
... instructions pour créer la feuille
end if
Flo Cabon,
Ajouté ou modifié le 05/04/2008 (N°2001)
Ajouté ou modifié le 05/04/2008 (N°2001)
Dans une boucle, comment suivre la valeur d'une variable sans devoir faire défiler toutes les valeurs ?
Avec une boucle de type
for i=1 to 1000
truc = ...
next i
si tu veux connaître la valeur de truc, tu peux afficher une boîte de message :
msgbox truc
qui à chaque tour de la boucle t'affichera où tu en es. Mais cela t'impose de cliquer 1000 fois sur OK !
Si tu veux savoir rapidement la valeur de truc pour i=627, tu peux placer un espion:
Dans l'éditeur VBE, affiche la fenêtre espions (via le menu affichage/fenêtre espions)
Fais un clic droit dans cette fenêtre et choisis "ajouter un espion"
tape i= 627 et lance ta macro. Elle s'arrêtra quand cette valeur sera atteinte et tu pourras alors suivre le déroulement pas à pas en utilisant la touche F8.
Cette fenêtre espion te permet de suivre la valeur des variables de ton choix dans un contexte particulier. C'est donc un outil précieux pour identifier des bugs qui ne se produisent que dans certaines circonstances.
for i=1 to 1000
truc = ...
next i
si tu veux connaître la valeur de truc, tu peux afficher une boîte de message :
msgbox truc
qui à chaque tour de la boucle t'affichera où tu en es. Mais cela t'impose de cliquer 1000 fois sur OK !
Si tu veux savoir rapidement la valeur de truc pour i=627, tu peux placer un espion:
Dans l'éditeur VBE, affiche la fenêtre espions (via le menu affichage/fenêtre espions)
Fais un clic droit dans cette fenêtre et choisis "ajouter un espion"
tape i= 627 et lance ta macro. Elle s'arrêtra quand cette valeur sera atteinte et tu pourras alors suivre le déroulement pas à pas en utilisant la touche F8.
Cette fenêtre espion te permet de suivre la valeur des variables de ton choix dans un contexte particulier. C'est donc un outil précieux pour identifier des bugs qui ne se produisent que dans certaines circonstances.
Flo Cabon,
Ajouté ou modifié le 22/05/2007 (N°1836)
Ajouté ou modifié le 22/05/2007 (N°1836)
Comment forcer une macro à continuer même en cas d'erreur
Sub Zaza()
On Error GoTo CaCoince
'Ton code
Exit Sub
CaCoince:
MsgBox "Ya kekchose qui coince là-dedans" & vbCrLf & _
"J'y retourne immédiatement."
End Sub
Vois aussi du côté de On Error Resume Next
qui fait continuer le code ligne suivante de celle qui a provoqué l'erreur
(et On Error Goto 0 pour restaurer le gestionnaire d'erreurs)
On Error GoTo CaCoince
'Ton code
Exit Sub
CaCoince:
MsgBox "Ya kekchose qui coince là-dedans" & vbCrLf & _
"J'y retourne immédiatement."
End Sub
Vois aussi du côté de On Error Resume Next
qui fait continuer le code ligne suivante de celle qui a provoqué l'erreur
(et On Error Goto 0 pour restaurer le gestionnaire d'erreurs)
Catherine et Sainte Zaza, (N°639)
Comment masquer les messages d'erreur ?
pour ne pas voir les messages d'erreurs dans une page (cachez ce sein que je
ne saurais voir !)
sélectionner toute la page
format / mise en forme conditionnelle / la formule est / =ESTERREUR(A1) /
format / police / police blanche / OK / OK
les messages d'erreur sont masqués
ne saurais voir !)
sélectionner toute la page
format / mise en forme conditionnelle / la formule est / =ESTERREUR(A1) /
format / police / police blanche / OK / OK
les messages d'erreur sont masqués
Jacques Chaussard, (N°638)

Comment utilise-t-on cette instruction ?
L'instruction On Error GoTo 0 permet de désactiver la gestion d'erreur générée
avec On Error Goto et de réactiver la gestion des erreurs d'Excel / VBA.
Test :
Sub gestionerreur()
Dim oWB As Workbook
'Erreur gérée par mes soins
On Error GoTo GestionErreur
Set oWB = Workbooks.Open("c:FichierInexistant.xls")
' quand excel rencontre l'erreur, il va lire la ligne GestionErreur:
' il affiche alors le message attendu et reprend à la ligne suivante (resume next)
On Error GoTo 0
' Cette ligne interrompt la gestion des erreurs essaie de la mettre en commentaire...
'Erreur gérée par Excel
Set oWB = Workbooks.Open("c:FichierInexistant.xls")
Exit Sub
GestionErreur:
MsgBox "Le fichier n'existe pas"
Resume Next
End Sub
avec On Error Goto et de réactiver la gestion des erreurs d'Excel / VBA.
Test :
Sub gestionerreur()
Dim oWB As Workbook
'Erreur gérée par mes soins
On Error GoTo GestionErreur
Set oWB = Workbooks.Open("c:FichierInexistant.xls")
' quand excel rencontre l'erreur, il va lire la ligne GestionErreur:
' il affiche alors le message attendu et reprend à la ligne suivante (resume next)
On Error GoTo 0
' Cette ligne interrompt la gestion des erreurs essaie de la mettre en commentaire...
'Erreur gérée par Excel
Set oWB = Workbooks.Open("c:FichierInexistant.xls")
Exit Sub
GestionErreur:
MsgBox "Le fichier n'existe pas"
Resume Next
End Sub
Patrick Penet, (N°637)
Je voudrais facilement retouver à quoi correspondent les codes d'erreurs de VBA.
Sub vérifier_erreur()
Dim Msg
' Si une erreur se produit, crée un message d’erreur.
On Error Resume Next ' Diffère la gestion d’erreur.
Err.Clear
Err.Raise 1007 ' erreur définie par l'application ou par l'objet
' Vérifie la présence d’erreurs, puis affiche
' le message.
If Err.Number <> 0 Then
Msg = "L’erreur # " & Str(Err.Number) & _
" a été générée par " _
& Err.Source & Chr(13) & Err.Description
MsgBox Msg, , "Erreur", Err.HelpFile, Err.HelpContext
End If
End Sub
Dim Msg
' Si une erreur se produit, crée un message d’erreur.
On Error Resume Next ' Diffère la gestion d’erreur.
Err.Clear
Err.Raise 1007 ' erreur définie par l'application ou par l'objet
' Vérifie la présence d’erreurs, puis affiche
' le message.
If Err.Number <> 0 Then
Msg = "L’erreur # " & Str(Err.Number) & _
" a été générée par " _
& Err.Source & Chr(13) & Err.Description
MsgBox Msg, , "Erreur", Err.HelpFile, Err.HelpContext
End If
End Sub
isabelle, (N°636)
Comment gérer les erreurs prévisibles dans une macro. Où mettre les codes ?
Structure recommandée :
For i = 1 to 100
On Error goto zut
[instructions susceptibles de produire une erreur]
Next i
...
End
Zut:
Resume next
Pour venir appuyer ce que tu dis, voilà ce qu'avait écrit LL sur le même
thème :
La réponse se trouve dans ce passage (un peu abscons, je l'admets!) de
l'aide VBA:
-------------------
"Un gestionnaire d'erreurs est "validé" lorsqu'il a été désigné par une
instruction On Error; le gestionnaire d'erreurs "actif" est un
gestionnaire validé qui traite une erreur. Si une erreur se produit
alors qu'un gestionnaire d'erreurs est actif (c'est-à-dire entre la
ligne où survient une erreur et une instruction Resume, Exit Sub, Exit
Function ou Exit Property), le gestionnaire d'erreurs de la procédure en
cours ne peut gérer l'erreur. Le contrôle revient à la procédure
appelante. Si la procédure appelante possède un gestionnaire d'erreurs
validé, il est activé afin de gérer l'erreur. Si le gestionnaire
d'erreurs de la procédure appelante est également actif, le contrôle est
restitué aux procédures appelantes antérieures jusqu'à ce qu'un
gestionnaire d'erreurs validé mais inactif soit trouvé. Si aucun
gestionnaire d'erreurs validé et inactif n'est trouvé, l'erreur est
fatale à l'emplacement où elle s'est produite."
------------------
Quand la première erreur se produit, ton programme se trouve *dans* le
gestionnaire d'erreur "actif" TiersInex1. Le gestionnaire d'erreur,
c'est en fait tout le bloc de code qui se trouve entre:
EtiquetteErreur:
' blablablabla.....
' .....
Resume [Etiquette / Next], ou Exit [Sub / Function / Property]
Comme il n'y a aucune instruction Resume dans ta macro, le premier
gestionnaire d'erreur, c'est donc tout ce qui se trouve entre TiersInex1
et... Exit Sub!
Du coup, quand la deuxième erreur est rencontrée, le programme est
*dans* un gestionnaire d'erreur actif (et même le seul gestionnaire de
toute la macro) et comme le précise l'aide en ligne, dans ce cas "si
aucun gestionnaire d'erreurs validé et inactif n'est trouvé [c'est le
cas ici!], l'erreur est fatale à l'emplacement où elle s'est produite."
Et le "On Error Goto TiersInex2" ne peut rien y changer du tout... Les
'On Error' n'ont de sens qu'en dehors des gestionnaires d'erreurs, ils
ne peuvent pas modifier les gestionnaires actifs en cours d'exécution.
La solution : mettre tout simplement un Resume à la fin du premier
gestionnaire, pour le clore. Comme apparemment tu ne veux pas que
l'exécution reprenne à l'endroit où s'est produite l'erreur, il suffit
de mettre Resume FinTiers1 à la place de Resume Next:
' ..........
On error goto TiersInex1
MaVar1=MonCombo.column(5,MonCombo.ListIndex)
' ..........
Goto FinTiers1
TiersInex1:
Select case Err
Case 381
MaVar1=Range(Xy)
Case Else
' ........
End select
Resume FinTiers1 ' ======= Resume ICI
FinTiers1:
On error Goto 0
' ..........
Et ainsi de suite pour tous les autres gestionnaires. La règle, très
simple, c'est que dès lors qu'il y a plusieurs gestionnaires d'erreur
dans la même procédure, chaque gestionnaire doit être terminé par une
instruction Resume.
C'est vrai que tout ça est assez piégeux et pas très bien expliqué...
For i = 1 to 100
On Error goto zut
[instructions susceptibles de produire une erreur]
Next i
...
End
Zut:
Resume next
Pour venir appuyer ce que tu dis, voilà ce qu'avait écrit LL sur le même
thème :
La réponse se trouve dans ce passage (un peu abscons, je l'admets!) de
l'aide VBA:
-------------------
"Un gestionnaire d'erreurs est "validé" lorsqu'il a été désigné par une
instruction On Error; le gestionnaire d'erreurs "actif" est un
gestionnaire validé qui traite une erreur. Si une erreur se produit
alors qu'un gestionnaire d'erreurs est actif (c'est-à-dire entre la
ligne où survient une erreur et une instruction Resume, Exit Sub, Exit
Function ou Exit Property), le gestionnaire d'erreurs de la procédure en
cours ne peut gérer l'erreur. Le contrôle revient à la procédure
appelante. Si la procédure appelante possède un gestionnaire d'erreurs
validé, il est activé afin de gérer l'erreur. Si le gestionnaire
d'erreurs de la procédure appelante est également actif, le contrôle est
restitué aux procédures appelantes antérieures jusqu'à ce qu'un
gestionnaire d'erreurs validé mais inactif soit trouvé. Si aucun
gestionnaire d'erreurs validé et inactif n'est trouvé, l'erreur est
fatale à l'emplacement où elle s'est produite."
------------------
Quand la première erreur se produit, ton programme se trouve *dans* le
gestionnaire d'erreur "actif" TiersInex1. Le gestionnaire d'erreur,
c'est en fait tout le bloc de code qui se trouve entre:
EtiquetteErreur:
' blablablabla.....
' .....
Resume [Etiquette / Next], ou Exit [Sub / Function / Property]
Comme il n'y a aucune instruction Resume dans ta macro, le premier
gestionnaire d'erreur, c'est donc tout ce qui se trouve entre TiersInex1
et... Exit Sub!
Du coup, quand la deuxième erreur est rencontrée, le programme est
*dans* un gestionnaire d'erreur actif (et même le seul gestionnaire de
toute la macro) et comme le précise l'aide en ligne, dans ce cas "si
aucun gestionnaire d'erreurs validé et inactif n'est trouvé [c'est le
cas ici!], l'erreur est fatale à l'emplacement où elle s'est produite."
Et le "On Error Goto TiersInex2" ne peut rien y changer du tout... Les
'On Error' n'ont de sens qu'en dehors des gestionnaires d'erreurs, ils
ne peuvent pas modifier les gestionnaires actifs en cours d'exécution.
La solution : mettre tout simplement un Resume à la fin du premier
gestionnaire, pour le clore. Comme apparemment tu ne veux pas que
l'exécution reprenne à l'endroit où s'est produite l'erreur, il suffit
de mettre Resume FinTiers1 à la place de Resume Next:
' ..........
On error goto TiersInex1
MaVar1=MonCombo.column(5,MonCombo.ListIndex)
' ..........
Goto FinTiers1
TiersInex1:
Select case Err
Case 381
MaVar1=Range(Xy)
Case Else
' ........
End select
Resume FinTiers1 ' ======= Resume ICI
FinTiers1:
On error Goto 0
' ..........
Et ainsi de suite pour tous les autres gestionnaires. La règle, très
simple, c'est que dès lors qu'il y a plusieurs gestionnaires d'erreur
dans la même procédure, chaque gestionnaire doit être terminé par une
instruction Resume.
C'est vrai que tout ça est assez piégeux et pas très bien expliqué...
Laurent Longre, (N°635)
Comment éviter de voir apparaître #REF dans mes cellules quand une fonction renvoie un message
d'erreur parce qu'il manque un argument par exemple ?
La fonction esterreur() permet cela.
Si en F3, on veut la formule F1*F2 sans
#REF si F2 disparait, on entre
=SI(ESTERREUR(F1*F2);"";F1*F2)
Si la cellule
F2 vient à disparaître (suppression avec décalage des cellules
ou des lignes,
par ex), On évite #REF!
Si en F3, on veut la formule F1*F2 sans
#REF si F2 disparait, on entre
=SI(ESTERREUR(F1*F2);"";F1*F2)
Si la cellule
F2 vient à disparaître (suppression avec décalage des cellules
ou des lignes,
par ex), On évite #REF!
Eric Jeanne, (N°634)
Où trouver la signification d'un message du genre "erreur de type 9 ?"
Dans l'aide, tape "Erreurs récupérables" voir aussi "Error"
Code Message
3 Return sans GoSub
5 Appel de procédure incorrect
6 Dépassement de capacité
7 Mémoire insuffisante
9 Indice en dehors de la plage
10 Ce tableau est fixe ou temporairement verrouillé
11 Division par zéro
13 Type incompatible
14 Espace de chaîne insuffisant
16 Expression trop complexe
17 Impossible d'exécuter l'opération requise
18 Interruption par l'utilisateur
20 Reprise sans erreur
28 Espace pile insuffisant
35 Sub, Function ou Property non définie
47 Trop de clients d'application pour la DLL
48 Erreur de chargement de la DLL
49 Convention d'appel de DLL incorrecte
51 Erreur interne
52 Nom ou numéro de fichier incorrect
53 Fichier introuvable
54 Mode d'accès au fichier incorrect
55 Fichier déjà ouvert
57 Erreur d'entrée/sortie de périphérique
58 Ce fichier existe déjà
59 Longueur d'enregistrement incorrecte
61 Disque plein
62 L'entrée dépasse la fin de fichier
63 Numéro d'enregistrement incorrect
67 Trop de fichiers
68 Périphérique non disponible
70 Permission refusée
71 Disque non prêt
74 Impossible de renommer avec un lecteur différent
75 Erreur dans le chemin d'accès
76 Chemin d'accès introuvable
91 Variable objet ou variable bloc With non définie
92 Boucle For non initialisée
93 Format de chaîne incorrect
94 Utilisation incorrecte de Null
97 Impossible d'appeler une procédure Friend sur un objet
qui n'est pas une instance de classe de définition
98 Un appel de propriété ou de méthode ne peut pas faire
référence à un objet privé ni en tant qu'argument ni en
tant que valeur renvoyée
298 Impossible de charger la DLL système
320 Impossible d'utiliser des noms de périphériques de
caractères dans les noms de fichiers spécifiés
321 Format de fichier incorrect
322 Impossible de créer le fichier temporaire nécessaire
325 Format incorrect dans le fichier ressource
327 La valeur de l'objet de données nommé est introuvable
328 Paramètre incorrect. Impossible d'écrire des tableaux
335 Impossible d'accéder au registre système
336 Le composant n'est pas correctement enregistré
337 Composant introuvable
338 Exécution incorrecte du composant
360 Objet déjà chargé
361 Impossible de charger ou de décharger cet objet
363 Le contrôle spécifié est introuvable
364 L'objet était déchargé
365 Impossible de décharger dans ce contexte
368 Le fichier spécifié est périmé. Ce programme requiert
une version plus récente
371 L'objet spécifié ne peut être utilisé come
propriétaire de la feuille pour la méthode Show
380 Valeur de propriété incorrecte
381 Index du tableau de propriétés incorrect
382 Property Set ne peut pas être exécutée en mode
exécution
383 Property Set ne peut être utilisée avec une propriété
en lecture seule
385 Index de table de propriété requis
387 Property Set non autorisée
393 Property Get ne peut pas être exécutée en mode
exécution
394 Property Get ne peut pas être exécutée sur une
propriété en écriture seule
400 Feuille déjà affichée; affichage modal impossible
402 Le code doit d'abord fermer la feuille modale de
premier plan
419 Autorisation d'utiliser l'objet refusée
422 Propriété introuvable
423 Propriété ou méthode introuvable
424 Objet requis
425 Utilisation d'objet incorrecte
429 Un composant ne peut pas créer l'objet ou fournir une
référence à cet objet
430 Cette classe ne gère pas Automation
432 Nom de fichier ou de classe non trouvé pendant une
opération Automation
438 Cet objet ne gère pas cette propriété ou méthode
440 Erreur Automation
442 La connexion à la bibliothèque de types ou d'objets
pour un processus distant a été perdue
443 L'objet Automation n'a pas de valeur par défaut
445 L'objet ne gère pas cette action
446 L'objet ne gère pas les arguments nommés
447 L'objet ne gère pas les paramètres régionaux en cours
448 Argument nommé introuvable
449 Argument non facultatif ou affectation de propriété
incorrecte
450 Nombre d'arguments incorrect ou affectation de
propriété non valide
451 Cet objet n'est pas une collection
452 Numéro incorrect
453 spécifiée introuvable
454 Ressource de code introuvable
455 Erreur de verrouillage de ressource de code
457 Cette clé est déjà associée à un élément de cette
collection
458 Cette variable utilise un type non géré par Visual
Basic
459 Ce composant ne gère pas le jeu d'événements
460 Format de Presse-papiers incorrect
461 Méthode ou membre de données introuvable
462 Le serveur distant n'existe pas ou n'est pas
disponible
463 La classe n'est pas enregistrée sur la machine locale
480 Impossible de créer une image en mode AutoRedraw
481 Image incorrecte
482 Erreur d'imprimante
483 Le gestionnaire d'imprimante ne gère pas la propriété
spécifiée
484 Problème pour obtenir des informations du gestionnaire
d'imprimante du système. Assurez-vous que le gestionnaire
d'imprimante est installé correctement
485 Type d'image incorrect
486 Impossible d'imprimer l'image de feuille sur ce type
d'imprimante
520 Impossible de vider le Presse-papiers
521 Impossible d'ouvrir le Presse-papiers
735 Impossible d'enregistrer le fichier dans un répertoire
TEMP
744 Le texte recherché est introuvable
746 Remplacements trop longs
31001 Mémoire insuffisante
31004 Pas d'objet
31018 Classe non définie
31027 Impossible d'activer l'objet
31032 Impossible de créer un objet incorporé
31036 Erreur à l'enregistrement dans le fichier
31037 Erreur de chargement à partir du fichier
Code Message
3 Return sans GoSub
5 Appel de procédure incorrect
6 Dépassement de capacité
7 Mémoire insuffisante
9 Indice en dehors de la plage
10 Ce tableau est fixe ou temporairement verrouillé
11 Division par zéro
13 Type incompatible
14 Espace de chaîne insuffisant
16 Expression trop complexe
17 Impossible d'exécuter l'opération requise
18 Interruption par l'utilisateur
20 Reprise sans erreur
28 Espace pile insuffisant
35 Sub, Function ou Property non définie
47 Trop de clients d'application pour la DLL
48 Erreur de chargement de la DLL
49 Convention d'appel de DLL incorrecte
51 Erreur interne
52 Nom ou numéro de fichier incorrect
53 Fichier introuvable
54 Mode d'accès au fichier incorrect
55 Fichier déjà ouvert
57 Erreur d'entrée/sortie de périphérique
58 Ce fichier existe déjà
59 Longueur d'enregistrement incorrecte
61 Disque plein
62 L'entrée dépasse la fin de fichier
63 Numéro d'enregistrement incorrect
67 Trop de fichiers
68 Périphérique non disponible
70 Permission refusée
71 Disque non prêt
74 Impossible de renommer avec un lecteur différent
75 Erreur dans le chemin d'accès
76 Chemin d'accès introuvable
91 Variable objet ou variable bloc With non définie
92 Boucle For non initialisée
93 Format de chaîne incorrect
94 Utilisation incorrecte de Null
97 Impossible d'appeler une procédure Friend sur un objet
qui n'est pas une instance de classe de définition
98 Un appel de propriété ou de méthode ne peut pas faire
référence à un objet privé ni en tant qu'argument ni en
tant que valeur renvoyée
298 Impossible de charger la DLL système
320 Impossible d'utiliser des noms de périphériques de
caractères dans les noms de fichiers spécifiés
321 Format de fichier incorrect
322 Impossible de créer le fichier temporaire nécessaire
325 Format incorrect dans le fichier ressource
327 La valeur de l'objet de données nommé est introuvable
328 Paramètre incorrect. Impossible d'écrire des tableaux
335 Impossible d'accéder au registre système
336 Le composant n'est pas correctement enregistré
337 Composant introuvable
338 Exécution incorrecte du composant
360 Objet déjà chargé
361 Impossible de charger ou de décharger cet objet
363 Le contrôle spécifié est introuvable
364 L'objet était déchargé
365 Impossible de décharger dans ce contexte
368 Le fichier spécifié est périmé. Ce programme requiert
une version plus récente
371 L'objet spécifié ne peut être utilisé come
propriétaire de la feuille pour la méthode Show
380 Valeur de propriété incorrecte
381 Index du tableau de propriétés incorrect
382 Property Set ne peut pas être exécutée en mode
exécution
383 Property Set ne peut être utilisée avec une propriété
en lecture seule
385 Index de table de propriété requis
387 Property Set non autorisée
393 Property Get ne peut pas être exécutée en mode
exécution
394 Property Get ne peut pas être exécutée sur une
propriété en écriture seule
400 Feuille déjà affichée; affichage modal impossible
402 Le code doit d'abord fermer la feuille modale de
premier plan
419 Autorisation d'utiliser l'objet refusée
422 Propriété introuvable
423 Propriété ou méthode introuvable
424 Objet requis
425 Utilisation d'objet incorrecte
429 Un composant ne peut pas créer l'objet ou fournir une
référence à cet objet
430 Cette classe ne gère pas Automation
432 Nom de fichier ou de classe non trouvé pendant une
opération Automation
438 Cet objet ne gère pas cette propriété ou méthode
440 Erreur Automation
442 La connexion à la bibliothèque de types ou d'objets
pour un processus distant a été perdue
443 L'objet Automation n'a pas de valeur par défaut
445 L'objet ne gère pas cette action
446 L'objet ne gère pas les arguments nommés
447 L'objet ne gère pas les paramètres régionaux en cours
448 Argument nommé introuvable
449 Argument non facultatif ou affectation de propriété
incorrecte
450 Nombre d'arguments incorrect ou affectation de
propriété non valide
451 Cet objet n'est pas une collection
452 Numéro incorrect
453 spécifiée introuvable
454 Ressource de code introuvable
455 Erreur de verrouillage de ressource de code
457 Cette clé est déjà associée à un élément de cette
collection
458 Cette variable utilise un type non géré par Visual
Basic
459 Ce composant ne gère pas le jeu d'événements
460 Format de Presse-papiers incorrect
461 Méthode ou membre de données introuvable
462 Le serveur distant n'existe pas ou n'est pas
disponible
463 La classe n'est pas enregistrée sur la machine locale
480 Impossible de créer une image en mode AutoRedraw
481 Image incorrecte
482 Erreur d'imprimante
483 Le gestionnaire d'imprimante ne gère pas la propriété
spécifiée
484 Problème pour obtenir des informations du gestionnaire
d'imprimante du système. Assurez-vous que le gestionnaire
d'imprimante est installé correctement
485 Type d'image incorrect
486 Impossible d'imprimer l'image de feuille sur ce type
d'imprimante
520 Impossible de vider le Presse-papiers
521 Impossible d'ouvrir le Presse-papiers
735 Impossible d'enregistrer le fichier dans un répertoire
TEMP
744 Le texte recherché est introuvable
746 Remplacements trop longs
31001 Mémoire insuffisante
31004 Pas d'objet
31018 Classe non définie
31027 Impossible d'activer l'objet
31032 Impossible de créer un objet incorporé
31036 Erreur à l'enregistrement dans le fichier
31037 Erreur de chargement à partir du fichier
Microsoft, (N°633)