With Sheets("Id").Range("TbId").ListObject
.ListRows.Add.Range.Value = Array(TxtInit, TxtMdp, Abs(ChbEffectif), Abs(ChbAbsence), Abs(ChbSemType), Abs(ChbAmplitude), Abs(ChbNbparTranche), Abs(ChbPosteService), _
Abs(ChbCptHres), Abs(ChbPoste), Abs(ChbService), Abs(ChbJrOuv), Abs(ChbPlanning), Abs(ChbSoldeCompteurhr), Abs(ChbPersPres), Abs(ChbPrepaSalaire))
Private Sub BtValider_Click()
Dim tableau As Range
Dim MDP As String
Dim ID As Variant
Set tableau = ThisWorkbook.Worksheets("Id").ListObjects("TbId").DataBodyRange
ID = Application.Match(CbNom, Range("Tbid[Utilisateur]"), 0)
If CbNom = "" Then MsgBox "Vous devez saisir un nom d'utilisateur": Exit Sub
If TxtMdp = "" Then MsgBox "Vous devez saisir un Mot de Passe": Exit Sub
MDP = WorksheetFunction.VLookup(CbNom, tableau, 2, False)
If IsError(MDP) Then MsgBox "Mot de Passe inconnu": TxtMdp = "": Exit Sub
If MDP <> TxtMdp Then MsgBox "Mot de Passe inconnu": TxtMdp = "": Exit Sub...
c = 0
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & TxtNom
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & TxtPrenom
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbPoste
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDate(datenaissance)
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDbl(TxtNbHeure)
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & ChbOui
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & TxtTaux
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & TxtInit
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & Abs(ObFixe)
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & Abs(ObRotation)
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDbl(NbSemRot)
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemTypeFixe
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType1
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType2
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType3
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType4
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType5
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType6
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDate(DateDebut)
c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDate(DatedebutFixe)
Bonjour,
Dans mon test, je n'arrive pas à faire planter le
With Sheets("Id").Range("TbId").ListObject.ListRows.Add.Range.Value
Mais je plante allègrement dans le
With Range("TbEffectif").ListObject 'ajoute une ligne à TbEffectif.ListRows.Add.Range.Valuecar les formats de valeurs indiqués dans le Array ne sont pas valides pour les données ..Rajoutez temporairement ces lignes de code avant ad.range.value pour vérifier les données avant l'ajout :
VB:c = 0 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & TxtNom c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & TxtPrenom c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbPoste c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDate(datenaissance) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDbl(TxtNbHeure) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & ChbOui c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & TxtTaux c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & TxtInit c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & Abs(ObFixe) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & Abs(ObRotation) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDbl(NbSemRot) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemTypeFixe c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType1 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType2 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType3 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType4 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType5 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType6 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDate(DateDebut) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDate(DatedebutFixe [/QUOTE]
Bonjour Fanch55Bonjour,
Dans mon test, je n'arrive pas à faire planter le
With Sheets("Id").Range("TbId").ListObject.ListRows.Add.Range.Value
Mais je plante allègrement dans le
With Range("TbEffectif").ListObject 'ajoute une ligne à TbEffectif.ListRows.Add.Range.Valuecar les formats de valeurs indiqués dans le Array ne sont pas valides pour les données ..Rajoutez temporairement ces lignes de code avant ad.range.value pour vérifier les données avant l'ajout :
VB:c = 0 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & TxtNom c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & TxtPrenom c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbPoste c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDate(datenaissance) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDbl(TxtNbHeure) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & ChbOui c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & TxtTaux c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & TxtInit c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & Abs(ObFixe) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & Abs(ObRotation) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDbl(NbSemRot) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemTypeFixe c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType1 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType2 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType3 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType4 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType5 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType6 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDate(DateDebut) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDate(DatedebutFixe)
Ah j'avais oublié de vous dire, de plus je ne peux pas savoir d'ou vient le problème puisqu'il m'éjecte...Bonjour,
Dans mon test, je n'arrive pas à faire planter le
With Sheets("Id").Range("TbId").ListObject.ListRows.Add.Range.Value
Mais je plante allègrement dans le
With Range("TbEffectif").ListObject 'ajoute une ligne à TbEffectif.ListRows.Add.Range.Valuecar les formats de valeurs indiqués dans le Array ne sont pas valides pour les données ..Rajoutez temporairement ces lignes de code avant ad.range.value pour vérifier les données avant l'ajout :
VB:c = 0 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & TxtNom c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & TxtPrenom c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbPoste c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDate(datenaissance) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDbl(TxtNbHeure) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & ChbOui c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & TxtTaux c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & TxtInit c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & Abs(ObFixe) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & Abs(ObRotation) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDbl(NbSemRot) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemTypeFixe c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType1 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType2 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType3 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType4 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType5 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CbSemType6 c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDate(DateDebut) c = c + 1: Debug.Print Left([TbEffectif].ListObject.ListColumns(c), 20) & "=" & CDate(DatedebutFixe)
Il suffit de vérifier la valeur de chacune des 16 données avant que ça plante.Ah j'avais oublié de vous dire, de plus je ne peux pas savoir d'ou vient le problème puisqu'il m'éjecte...
Bonjour TooFatBoy,Bonjour,
Ton problème doit venir d'une donnée dont il est impossible de calculer la valeur absolue.
Il suffit de vérifier la valeur de chacune des 16 données avant que ça plante.
comment je peux vérifier puisqu'il m'ejecte directement, il ferme Excel
Il suffit de vérifier la valeur de chacune des 16 données avant que ça plante.
Je viens de regarder le code dans ton classeur, et ça ne devrait pas venir de ça puisque ce ne sont que cases à cocher.Ton problème doit venir d'une donnée dont il est impossible de calculer la valeur absolue.
Tu mets un point d'arrêt sur l'instruction qui plante, et au moment où l'exécution s'arrête tu regardes la valeur de chacune des données.Comment puis je faire pour les vérifier avant???
With Range("TbId").ListObject ' Ajoute une ligne à TbId
Les textbox renvoient la bonne valeur, et les checkbox vrai ou faux, donc normalTu mets un point d'arrêt sur l'instruction qui plante, et au moment où l'exécution s'arrête tu regardes la valeur de chacune des données.
Je crois que tu as mis le nom de la feuille dans laquelle se trouve le TS "TbId". Tu peux le supprimer pour ne garder que ceci :
VB:With Range("TbId").ListObject ' Ajoute une ligne à TbId
Es-tu vraiment sûr que c'est sur cette instruction que ça t'éjecte ???Les textbox renvoient la bonne valeur, et les checkbox vrai ou faux, donc normal
Le problème c'est que le beug est aléatoire, alors comment faire?
Bonsoir Dranreb,Bonsoir.
Il serait prudent de spécifier dans l'Array les propriétés des objets dont vous voulez y spécifier les valeurs, parce que sinon, normalement il y met les objets eux mêmes !