cs_mira3
Messages postés21Date d'inscriptionmardi 3 avril 2012StatutMembreDernière intervention10 mai 2012
-
25 avril 2012 à 15:02
cs_mira3
Messages postés21Date d'inscriptionmardi 3 avril 2012StatutMembreDernière intervention10 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
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?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 26 avril 2012 à 18:03
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
cs_mira3
Messages postés21Date d'inscriptionmardi 3 avril 2012StatutMembreDernière intervention10 mai 2012 25 avril 2012 à 16:00
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 .
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 25 avril 2012 à 16:40
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_mira3
Messages postés21Date d'inscriptionmardi 3 avril 2012StatutMembreDernière intervention10 mai 2012 25 avril 2012 à 16:48
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
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 25 avril 2012 à 16:54
________________________
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
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 25 avril 2012 à 19:18
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
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 25 avril 2012 à 19:59
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