Erreur d’exécution : ‘13’ Incompatibilité de type dans plusieurs macros

Chri8Ed

XLDnaute Occasionnel
Bonjour le Forum

J’utilise un tableau depuis des mois et de façon journalière
A l’intérieur de celui-ci, j’ai plusieurs macros avec des UserForm
Ces macros ont toujours bien fonctionnées et elles fonctionnaient encore très bien il y a une quinzaine de jours
Elles n’ont subi aucune modification et la structure du tableau n’a été modifiée.

Maintenant au lancement de cette macro, après l’apparition de l’UserForm et dès que je tape une lettre dans ces UserForm, (Ces macros me servent à faire des recherches de données dans mon tableau), j’ai un message d’erreur :

Erreur d’exécution : ‘13’ :
Incompatibilité de type

J’ai bien fait des recherches avec l’aide, mais je ne vois pas d’où venir le problème.
Je ne peux pas mettre mon tableau, il est beaucoup trop gros.

Si quelqu’un peut m’aider, merci d’avance
 

Paf

XLDnaute Barbatruc
Re : Erreur d’exécution : ‘13’ Incompatibilité de type dans plusieurs macros

bonjour

le problème peut avoir plusieurs causes:
-tentatives de calcul sur une variable considérée comme string
-affectation de valeur string à une variable "chiffre"
...

j'ai bien peur que sans un extrait de classeur vous ne receviez de réponses.
A+
 

Dranreb

XLDnaute Barbatruc
Re : Erreur d’exécution : ‘13’ Incompatibilité de type dans plusieurs macros

C'est une des deux notions tellement fondamentales, l'autre étant celle d'objet, qu'il ne faudrait absolument pas se mettre à programmer en VBA avant de l'avoir apprise et surtout comprise. Comment pourriez vous comprendre l'aide VBA, si vous n'avez assimilé les termes essentiels qui sont employés tout le temps dans les explications ? Ce qu'on appelle une expression dans tous les langages de programmation c'est tout groupe de caractères ou partie d'instruction susceptible de posséder une valeur. Dans les langages orientés objets tels que VBA, la notion s'étend aux bouts de textes d'instructions représentant quelque chose de bien précis qui n'est pas une valeur et qu'on appelle un objet. Une expression peut donc être une constante, une variable, une propriété d'une expression objet, un appel de fonction, un appel de méthode* renvoyant une valeur ou un objet, et enfin une combinaison d'expressions séparées par des opérateurs et des parenthèses. On peut aussi dire tout ce qui peut s'affecter à une variable que ce soit par une instruction Let ou Set (la première c'est la simple affectation, le mot clé Let étant rarement employé puisque automatiquement assumé devant un nom de variable commençant une instruction et suivi d'un "=").
* Méthode: procédure appartenant à un type d'objet.
 
Dernière édition:

Chri8Ed

XLDnaute Occasionnel
Re : Erreur d’exécution : ‘13’ Incompatibilité de type dans plusieurs macros

Bonjour

Merci pour ces explications, il est très vrai que mon niveau en VBA est encore faible, j'essaye de progresser, mais comme je n'ai rein trouver en livre (Soit trop simple, cela ne m'apprend rien, ou au contraire trop haut pour moi et je suis pas). il y a beaucoup d'aide sur le net, mais c'est souvent plus pour des personnes déjà de bon niveau.

J'ai donc mis mes variables en "Espion"
Cela me renvoi <Hors du contexte> et à vrai dire cela ne ma parle pas plus.

Je vois que j'obtiens cette même information pour les macros qui fonctionnent
 

Dranreb

XLDnaute Barbatruc
Re : Erreur d’exécution : ‘13’ Incompatibilité de type dans plusieurs macros

Les espions ne deviennent utiles que lors d'un débogage. En dehors de toute exécution les variables locales d'une procédure sont en effet toujours hors contexte puisque pas initialisées et pas même réservées en mémoire !
Vous ne semblez pas comprendre à quoi vont servir ces espions. Il vous permettront de constater, à votre plus grand effarement, que vous essayez d'affecter une valeur String à une variable numérique, une valeur d'erreur à une variable typée, un tableau à une variable élémentaire, une variable élémentaire à un tableau, un variant non initialisé à quelque chose qui ne supporte pas la valeur Empty, bref de faire n'importe quoi compte tenu des valeurs rencontrées à ce moment là de l'exécution, que vous ne soupçonnez encore pas.
 
Dernière édition:

Chri8Ed

XLDnaute Occasionnel
Re : Erreur d’exécution : ‘13’ Incompatibilité de type dans plusieurs macros

Les espions ne deviennent utiles que lors d'un débogage. En dehors de toute exécution les variables locales d'une procédure sont en effet toujours hors contexte puisque pas initialisées et pas même réservées en mémoire !
Vous ne semblez pas comprendre à quoi vont servir ces espions

Si cela je l'ai très bien compris et j'ai aussi très bien compris que ces espions vont me servir lors du débogage.
C'est bien sûr lors de débogage que je les utilisés.

Ce que je n'ai pas compris par contre, c'est une fois donc avoir ces espions et que je suis en débogage, comment il vont me permettre de constater les erreurs ?
 

Dranreb

XLDnaute Barbatruc
Re : Erreur d’exécution : ‘13’ Incompatibilité de type dans plusieurs macros

Cela dépend de l'instruction en cause. Quelle est elle exactement ?
Si c'est une affectation, par exemple, commencez par mettre un espion sur tout ce qui est à droite du signe égal (toujours en étant, pendant l'exécution, arrêté sur l'instruction provoquant l'incompatibilité de type). Si après avoir constaté que sa valeur n'est pas, en effet, de nature à pouvoir être affectée à la variable, mais que vous ne comprenez pas la causez de cette valeur anormale, cherchez pourquoi en examinant une à une, toujours par des espions, les sous-expressions qui la forment. Vous finissez forcément par tomber sur la cause.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Erreur d’exécution : ‘13’ Incompatibilité de type dans plusieurs macros

Bonjour à tous

Chri8Ed
Tu es sur que tu n'as rien modifié dans ton userform? Renommer ou supprimer un contrôle par exemple ?

Tu peux créer une copie de ton fichier allégée, non ?
Tu supprimes toutes tes données en ne gardant que 3 à 5 lignes par feuilles.
Tu supprimes toutes fioritures (images, couleurs, bordures)
Tu laisses le code VBA et enfin tu zippes le tout et tu joins le zip obtenu ici ?
 

Chri8Ed

XLDnaute Occasionnel
Re : Erreur d’exécution : ‘13’ Incompatibilité de type dans plusieurs macros

Bonjour Staple1600

Merci, mais à force de chercher, j'ai fini par trouver l'erreur.

C'est un peu Paf qui m'avait mis sur la voie
affectation de valeur string à une variable "chiffre"

J'avais remarqué des points communs dans ces macros
Elles utilisent en quelques sorte des balises sous forme texte qui me permettent de me placer dans différents endroits de ma feuille.
Ces balises sont dans une colonne cachée et je n'y vais que très rarement, sauf quand j'ai besoin d'en rajouter ou supprimer une.
En vérifiant cette colonne, je me suis aperçu que certaines de ces balises avaient été remplacées par des formules qui renvoyaient des nombres, je ne sais pas comment cela s'est produit, sans doute une fausse manœuvre de ma part.

J'ai corrigé le problème et cela fonctionne.

Je vous remercie tous, car malgré que vous n'avez pu directement trouver l'erreur faute d'avoir le fichier en question, vous m'avez mis sur la bonne voie.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 465
Messages
2 088 656
Membres
103 910
dernier inscrit
amor57