Erreur d'execution 13 Incompatibilité de type [Résolu]

Messages postés
22
Date d'inscription
mardi 3 avril 2012
Dernière intervention
10 mai 2012
- - Dernière réponse : cs_mira3
Messages postés
22
Date d'inscription
mardi 3 avril 2012
Dernière intervention
10 mai 2012
- 27 avril 2012 à 15:43
Bonjour!

Je viens vers vous pour éclairer ma lanterne

J'ai une ligne de code Vba qui bloque en raison de l'erreur d'execution 13 mais je ne vois pas ce qui cloche dans mon code

Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long
Dim nomequipement As String
Dim colnb As Byte
NumLig = 0
Sheets("stock").AutoFilterMode = False


rechercheequipement = mouvement.equipement.Value
Sheets("stock").Select
Range("b9").Select
Selection.AutoFilter
Selection.AutoFilter field:=1, Criteria1:=rechercheequipement
Range("b9:Z10000").Copy
Sheets("rechercheequipement").Select
Range("b9:Z10000").Select
ActiveSheet.Paste

nomequipement = mouvement.equipement.Value
With Sheets("stock")
NbrLig .Cells(65536, Col).End(xlUp).RowFor Lig 1 To NbrLig
If nomequipement = .Cells(Lig, Col).Value Then
If mouvement.entrée.Value = True Then

Sheets("stock").Cells(Lig, "e").Value = mouvement.nbentrée.Value + .Cells(Lig, "e").Value
ElseIf mouvement.sortie.Value = True Then
Sheets("stock").Cells(Lig, "e").Value = mouvement.nbentrée.Value - .Cells(Lig, "e").Value
End If
End If
Next

End With


C'est à l'endroit surligné en jaune que j'ai le soucis alors que j'ai déjà réussi un code similaire auparavant qui fonctionnait...
Avez-vous une idée du problème?

Merci d'avance
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
3
Merci
1) présente ton code entre balises code
2) fais un copier coller de ton code, tel qu'il est. Cela évitera de se poser des questions sur une ligne telle que celle-ci, dans le code montré :
NbrLig .Cells(65536, Col).End(xlUp).RowFor Lig 1 To NbrLig
!!
3) relis mon message de mercredi 25 avril 2012 à 16:40:37
mets donc un
msgbox "bonjour" après les deux lignes de code que j'y ai mises.
Je suis prêt à parier que ces deux conditions ne sont pas vérifiées.
Et si oui : tu es bien le seul à savoir pourquoi et ce que sont exactement tes objets (déjà dit) !
Apprends à travailler en mode debug et en pas à pas et suis tes variables pas à pas. Tu verras ainsi ce qui ne va pas (n'existe pas, ne contient rien, etc ...)


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
47
Date d'inscription
mardi 19 mars 2013
Dernière intervention
23 mars 2013
0
Merci
ta variable 'Col', elle est egale à quoi?



Le vrai voyage, c'est d'y aller. Une fois arrivé, le voyage est fini. Aujourd'hui les gens commencent par la fin.
Commenter la réponse de bonjourc
Messages postés
22
Date d'inscription
mardi 3 avril 2012
Dernière intervention
10 mai 2012
0
Merci
Oui j'ai oublié de le mettre! C'est col="D".
Maintenant que j'ai rectifié cette erreur une autre apparait car la somme ne se fait pas. J'ai corrigé la fin du code car dans le deuxième cas c'est :
ElseIf mouvement.sortie.Value = True Then
Sheets("stock").Cells(Lig, "e").Value = mouvement.nbsortie.Value - .Cells(Lig, "e").Value .

La synthaxe n'est pas bonne pour une somme?
Commenter la réponse de cs_mira3
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonjour,
prends l'habitude (ce n'est pas ni un luxe, ni une option) de présenter ici tes bouts de code indentés et entre balises code (3ème icone en partant de la droite), si tu veux qu'ils soient lisibles et ... lus ...
"e" n'a rien à y voir !
Il est par contre assez vraisemblable que tu n'entre pas dans les conditions :
If nomequipement = .Cells(Lig, Col).Value Then
  If mouvement.entrée.Value = True Then

et tu es bien le seul à savoir pourquoi, comme tu es bien le seul à savoir ce qu'est mouvement
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
Messages postés
22
Date d'inscription
mardi 3 avril 2012
Dernière intervention
10 mai 2012
0
Merci
Ah oui je n'avais pas vu comment présenter le code de cette façon , Merci!
En fait mouvement.entrée représente un optionbutton et quand je teste je le coche effectivement donc c'est pour ça que je ne comprend pas.
Puis j'ai à nouveau un problème avec mes filtres donc je pense reprendre tout du début
Commenter la réponse de cs_mira3
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
Messages postés
14325
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
18 décembre 2018
0
Merci
Bonjour,

NbrLig = .Cells(65536, Col).End(xlUp).Row
.Cells ne prend que des numériques, pas de lettres. Pour cela il y a la méthode Range.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Commenter la réponse de NHenry
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonjour, NHenry
Pas vraiment.
Fais donc cette expérience :
Dim col As String
col = "B"
lig = 2
MsgBox Cells(lig, col).Value

Fonctionne.
Son erreur n'est pas là. Elle est plus fondamentale, d'où mon

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
Messages postés
22
Date d'inscription
mardi 3 avril 2012
Dernière intervention
10 mai 2012
0
Merci
J'ai essayé mais ma somme ne se fait toujours pas
Commenter la réponse de cs_mira3
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
30 octobre 2013
0
Merci
Mais tu as quand même des valeur dans

Sheets("stock").Cells(Lig, "e").Value
Commenter la réponse de 4u4me4us
Messages postés
22
Date d'inscription
mardi 3 avril 2012
Dernière intervention
10 mai 2012
0
Merci
Oui mais les valeurs ne bougent pas
Commenter la réponse de cs_mira3
Messages postés
47
Date d'inscription
mardi 19 mars 2013
Dernière intervention
23 mars 2013
0
Merci
Le mod debug, c'est F8 pour le pas à pas, et cliquer dans la marge à gauche pour mettre des points d'arret. (on sait jamais :) )

Le vrai voyage, c'est d'y aller. Une fois arrivé, le voyage est fini. Aujourd'hui les gens commencent par la fin.
Commenter la réponse de bonjourc
Messages postés
22
Date d'inscription
mardi 3 avril 2012
Dernière intervention
10 mai 2012
0
Merci
Merci!

Mon problème est résolu ça marche
Commenter la réponse de cs_mira3

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.