Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Incompatibilité de type ?

  • Initiateur de la discussion Initiateur de la discussion Lucy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

Lucy

Guest
Bonjour,
En allant d'erreurs en erreurs, là j'en ai trouvé une belle 🙁

Code:
 For Each temp In DosUti(2).Sheets("Rapport 1").Columns("A:A").EntireColumn
    If CStr(temp.Value) = CStr(InformerServ.BD) Then 'ligne surligner par le débogage
        InformerServ.Nom = temp.Offset(0, 3).value
    End If
Next

Et là, patatra, l'erreur fatal "Incompatibilité de type", oui, oui, pile poil sur les CStr x(

temp est de type range comme vous deviez vous en douté;
et InformerServ est un type que j'ai créer moi même ( ça regroupe 3 String Nom, BD et Appli)
Les cases pointé sont censé contenir des String ou au pire des Integer.
A l'origine j'utilisait pas CStr, mais maintenant que je vois ça, je suis trés troublé ...

Merci de vos réponse rapide,
Cordialement
 
Re : Incompatibilité de type ?

bonjour Lucy

Voici ce que je ferais

Code:
For Each temp In DosUti(2).Sheets("Rapport 1").Columns("A:A").EntireColumn
   [COLOR=blue]on error resume next[/COLOR]
    If CStr(temp.Value) = CStr(InformerServ.BD) Then 'ligne surligner par le débogage
      [COLOR=blue]if err.number<>0 then msgbox(CStr(temp.Value)  & " " & CStr(InformerServ.BD))[/COLOR]
[COLOR=blue]  on error goto 0[/COLOR]
        InformerServ.Nom = temp.Offset(0, 3).value
    End If
Next

ceci te renseignera sur les contenus au moment de l'erreur (moi je parie sur informerServ.BD)

Ps: Ne dis surtout pas à ma femme que je m'interesse à tes String (même si c'est pour le bon motif !!!)

Edit: Salut Pascal
@ Lucy ce fichier ne sert effectivement a rien
 
Dernière édition:
Re : Incompatibilité de type ?

Désolé PascalXLD,
Je ne suis pas madame soleil et la maccro non plus est assez conséquente et j'ai des problèmes de confidentialité vis à vis du "client" (pour la petite histoire, je suis stagiaire chez Total), je sais que ça vous aide pas, mais moi sa va vraiment m'enfoncer de partager les codes comme ça.

Bonjour pierrejean,
je n'ai aucun message box qui s'ouvre et le programme est rentré dans le if pour ensuite s'arreter avec la même erreur sur l'instruction qui suis.
Par curiosité j'ai mit deux petits espions :
CStr(InformerServ.BD), valeur "Seiya", type String
C'est bien ce que je m'attendait à avoir

CStr(temp.Value), valeur <Incompatibilité de type>, type Integer
Ce qui est tout de même curieux ...

Le problème ne viendrait-il pas de mon utilisation du "temp" ou du "for each"
je débute en vba et j'utilise pour la première fois le for each sans grande conviction de la syntaxe. Le but de celui-ci étant de parcourir toute les cellule de la colonne A



Merci de vos réponse
 
Re : Incompatibilité de type ?

Re

teste remplacer

Code:
For Each temp In DosUti(2).Sheets("Rapport 1").Columns("A:A").EntireColumn

par

Code:
For Each temp In DosUti(2).Sheets("Rapport 1").Range("A1:A" & DosUti(2).Sheets("Rapport 1").Range("A65536").end(xlup).row)

ou si tu veux vraiment toute la colonne A

Code:
 For Each temp In DosUti(2).Sheets("Rapport 1").Range("A1:A65536")
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…