Récupérer les valeurs des cellules d'une colonne excel

Résolu
gruflome Messages postés 13 Date d'inscription lundi 23 mai 2016 Statut Membre Dernière intervention 18 décembre 2017 - 12 déc. 2017 à 07:13
gruflome Messages postés 13 Date d'inscription lundi 23 mai 2016 Statut Membre Dernière intervention 18 décembre 2017 - 18 déc. 2017 à 00:01
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"

Me.Txtnomphysik.Text = ""
Me.Txtprenomphysik.Text = ""
Me.Txtlieubornphy.Text = ""
Me.Txtdatebornphy.Text = ""
Me.CBsexephy.Value = ""
Me.CBnationalphy.Value = ""

Exit Sub
End If

End With



Merci d'avance

4 réponses

jordane45 Messages postés 37515 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 mai 2023 341
12 déc. 2017 à 08:18
Bonjour,

Pour vérifier si une valeur existe déjà dans ta feuille il suffit de faire un FIND
http://www.commentcamarche.net/faq/36886-vba-recherche-de-donnees-la-methode-find

ou un countif
https://msdn.microsoft.com/fr-fr/vba/excel-vba/articles/worksheetfunction-countif-method-excel?f=255&MSPPError=-2147217396


Pas de besoin de boucle...
1
gruflome Messages postés 13 Date d'inscription lundi 23 mai 2016 Statut Membre Dernière intervention 18 décembre 2017 1
17 déc. 2017 à 23:55
bonjour merci beaucoup pour ton aide. j'ai utilisé la méthode " find" et cela marche très bien
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 219
12 déc. 2017 à 08:14
Bonjour

- 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 ...
0
gruflome Messages postés 13 Date d'inscription lundi 23 mai 2016 Statut Membre Dernière intervention 18 décembre 2017 1
12 déc. 2017 à 09:34
pour la déclaration de la variable
 Dim bis As Integer 'mais je ne l'ai pas initialisé

je renseigne dans la cellule A les numéros des clients. donc elles ne sont pas vide
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 219
12 déc. 2017 à 08:20
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°
0
gruflome Messages postés 13 Date d'inscription lundi 23 mai 2016 Statut Membre Dernière intervention 18 décembre 2017 1
18 déc. 2017 à 00:01
merci à tous pour votre aide .
0