[Déplacé VB6 --> VBA] probleme de debogage

bary59174 Messages postés 1 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 17 septembre 2009 - 17 sept. 2009 à 22:17
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 20 sept. 2009 à 11:55
bary

bonjour a tous, je suis débutant dans ce domaine et j'ai un petit problème de débogage plus exactement de variable. Mais je ne sais pas d'où cela peut provenir...

ce que je veux faire c'est pourvoir enregistrer des donnée a partir d'un module vba vers exel par rapport a la valeur contenu dans une liste déroulante..

voici le code et si vous avez besoin du fichier faites le moi savoir. En vous remerciant d'avance je sature a ne pas trouver...


Private Sub cboNumEtape_Change()

'permet d'indiquer les information de l'étape choisie dans les text box

Dim NumCol As Integer

NumCol = cboNumEtape.ListIndex + 2

lblDatePrevue = Cells(3, NumCol)

lblEtape = Cells(2, NumCol)

'lblDocRef = Cells(150, NumCol)


End Sub

Private Sub Commandenregistrer_Click()

Dim validajout As Boolean
Dim nbcolum As Integer
Dim avancement As Worksheet
Dim NumEtape As Integer
Dim projetvba As Workbook



Let validajout = True

'verifit si les options on été cochées

If optPasCommence Or optEnCours Or optRealise = True Then

Call MsgBox("Veuillez cocher une des trois option!", vbOKCancel + vbExclamation, "erreur")

Let validajout = False

End If



' vérifie si la date de réalisation a été rentrée

If validajout = True Then

If txtDateRealisation.Text = "" Then

Call MsgBox("veuillez entrer la date de réalisation!", vbOKCancel + vbExclamation, "erreur")

Let validajout = False

End If

End If


'vérifie si il y a un commentaire lorsque l'opération est en retard ou en cours

If validajout = True Then

If optEnCours True And txtCommentRetard "" Then

Call MsgBox("veuillez commentez le retard!", vbOKCancel + vbExclamation, "erreur")

Let validajout = False

End If



End If



'recherche la colonne de l'étape correspondante dans le tableau aux informations à enregistrer

Let nbcolum = 1

Do While projetvba.avancement.Cells(1, nbcolum) <> cboNumEtape.Value

Let nbcolum = nbcolum + 1
Loop




'enregistre les information si l'etape est en cour

If optEnCours True And optRealise False And optPasCommence = False Then

projetvba.avancement.Cells(4, nbcolum) = "En cour"

End If



'enrgistre les informations si l'étape n'est pas commencée

If optPasCommence True And optEnCours False And optRealise = False Then

projetvba.avancement.Cells(4, nbcolum) = "Pas commencée"

End If



'enregistre les informations si l'étape est réalisée et inscrit la date de réalisation

If optRealise True And optPasCommence False And optEnCours = False Then

projetvba.avancement.Cells(4, nbcolum) "Réalisée" And avancement.Cells(5, nbcolum) txtDateRealisation.Value

End If



'enregistre les information du a un retard si retard il y a

If txtCommentRetard.Value <> "" Then

projetvba.avancement.Cells(6, nbcolum) = txtCommentRetard.Value

End If



'enregistre les informations pour le BE si information il y a

If txtCommentBE.Value <> "" Then

projetvba.avancement.Cells(7, nbcolum) = txtCommentBE.Value

End If



'demande si on veut bien enregistrer

If validajout = True Then

If MsgBox("Etes-vous bien sur de vouloir ajouter " & vbQuestion + vbYesNo, "Ajout Divx") = vbNo Then

Let validajout = False

End If

End If


End Sub





Private Sub UserForm_Initialize()

Dim NumCol As Integer
NumCol = 2
While Cells(1, NumCol).Value <> ""
cboNumEtape.AddItem (Cells(1, NumCol))
NumCol = NumCol + 1
Wend

End Sub

3 réponses

jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
18 sept. 2009 à 08:54
Bonjour,

Peux-tu nous expliquer (en langage simple mais précis) ce que tu entends exactement par l'expression conditionnelle suivante :

If optPasCommence Or optEnCours Or optRealise = True Then
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
18 sept. 2009 à 09:02
Peux-tu par ailleurs nous préciser si ces 3 contrôles sont des OptionButtons et s'ils sont d'un même groupe ?

Car, si oui : l'expression suivante surprend quelque peu :
If optEnCours True And optRealise False And optPasCommence = False Then
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
20 sept. 2009 à 11:55
Salut,

Lorsque tu fais des validations, utilise "Exit Sub" pour sortir de la procédure si les conditions sont fausses. Comme ça, tu évites de poursuivre le code qui suit. Un simple MsgBox ne suffit pas.


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Rejoignez-nous