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

gruflome 13 Messages postés lundi 23 mai 2016Date d'inscription 18 décembre 2017 Dernière intervention - 12 déc. 2017 à 07:13 - Dernière réponse : gruflome 13 Messages postés lundi 23 mai 2016Date d'inscription 18 décembre 2017 Dernière intervention
- 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
Afficher la suite 

6 réponses

Répondre au sujet
jordane45 20600 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 avril 2018 Dernière intervention - 12 déc. 2017 à 08:18
+1
Utile
1
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...
Cette réponse vous a-t-elle aidé ?  
gruflome 13 Messages postés lundi 23 mai 2016Date d'inscription 18 décembre 2017 Dernière intervention - 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
Commenter la réponse de jordane45
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 12 déc. 2017 à 08:14
0
Utile
1
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 ...
gruflome 13 Messages postés lundi 23 mai 2016Date d'inscription 18 décembre 2017 Dernière intervention - 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
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 12 déc. 2017 à 08:20
0
Utile
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°
Commenter la réponse de ucfoutu
gruflome 13 Messages postés lundi 23 mai 2016Date d'inscription 18 décembre 2017 Dernière intervention - 18 déc. 2017 à 00:01
0
Utile
merci à tous pour votre aide .
Commenter la réponse de gruflome

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.