bary59174
Messages postés1Date d'inscriptionlundi 25 août 2008StatutMembreDernière intervention17 septembre 2009
-
17 sept. 2009 à 22:17
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 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
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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