Bonjour, merci pour toute l'aide que vous m'aviez déjà donnée
je met au point un UserForm de contrôle de saisie. et je veux avant d'ajouter la saisie à une feuille excel vérifier que les données des controles ne sont pas déjà dans la feuille. mais quand j'exécute le code il ne me retourne rien alors j'ai placé un MsgBox pour retourner le numro mais elle était vide
lir = ph.Cells(Rows.count, 1).End(xlUp).Row
num = TxtNum.Text 'numéro
With ph
For count = 2 To lir 'count est de type integer
numro = .Cells(bis, 1) nom = .Cells(bis, 2) preno = .Cells(bis, 3) lieu = .Cells(bis, 5) dat = .Cells(bis, 6) sexe = .Cells(bis, 4) nation = .Cells(bis, 11)
MsgBox numro ' vérifie si numro contient des valeurs
If numro = num Then vrai = True MsgBox numro
End If
If Me.Txtnomphysik.Text = nom And Me.Txtprenomphysik.Text = preno And Me.Txtlieubornphy.Text = lieu
And Me.Txtdatebornphy.Text = dat And Me.CBsexephy.Value = sexe And Me.CBnationalphy.Value = nation Then
nb = nb + 1
End If
Next count
If vrai = True Then MsgBox "Ce numéro est déjà attribué", vbOKOnly + vbCritical, "Erreur" TxtNum.Text = "" Exit Sub End If
If nb = 5 Then MsgBox "Cet client a déjà épuré son quota d'attribution de numéro ", vbOKOnly + vbCritical, "Erreur"
- que contient à ce moment-là la variable bis (dont on ne voit ni sa déclaration, ni son initialisation) ?
- si contient bien une valeur > 0 (disons par exemple 11) : que contient la cellule A11 ? Car si vide, ma foi ...
J'ai par ailleurs des difficultés à comprendre la raison d'une boucle qui parcourt à chaque itération les mêmes cellules de la même ligne (la ligne de rang bis, que je ne vois évoluer nulle part°
17 déc. 2017 à 23:55