J'ai cr=E9er une appli VBA pour Excel avec des masques de=20
saisies via des Userform. Cette appli g=E8re une liste des=20
personnels et des donn=E9es concernant ces personnes. En=20
mode modification, je s=E9lectionne la fiche de la personne=20
=E0 modifier =E0 l'aide d'un ComboBox (contenant le noms de=20
famille) , et les donn=E9es de cette derni=E8re apparaisse.=20
Cependant, j'ai 2 personnes s'appelant PETIT et MONPETIT.=20
Lorsque j'appelle la fiche de PETIT, c'est information=20
apparaisse correctement, mais lorsque j'appelle la fiche=20
de MONPETIT, le pr=E9nom et les autres donn=E9es sont celles=20
de PETIT. Alors que pour toutes les autres personnes le=20
syst=E8me fonctionne.=20
Que faire ???
NB : Voici le d=E9but de mon code=20
If CB_Nom <> "" Then =20
Sheets("donn=E9es").Select
Cells(199, 1).Select
SELECTion.End(xlUp).Select
finliste =3D ActiveCell.Row
Debutliste =3D 2
nbligne =3D Debutliste
Range(Cells(2, 4), Cells(finliste, 4)).Select
=20
With SELECTion
Set Resultech =3D .Find(CB_Nom, after:=3DCells(2, 4), _=20
LookIn:=3DxlFormulas, LookAt:=3DxlPart, _=20
SearchOrder:=3DxlByRows, searchdirection:=3DxlNext, _=20
MatchCase:=3DFalse)
=20
If Not Resultech Is Nothing Then
dim Ligne As String
Ligne =3D Resultech.Row
=20
'Recherche du pr=E9nom
TB_Pr=E9nom =3D Cells(Ligne, 6)
Dans le .Find remplace LookAt:=xlPart par LookAt:=xlWhole
Autre solution, mais qui modifiera complètement ton code, récupérer le n° d'index de ta combobox et te décaler dans ton tableau par rapport à cete valeur. Les index dans une combobox commencent à la valeur 0.
Camille
-----Message d'origine----- Salut,
J'ai créer une appli VBA pour Excel avec des masques de saisies via des Userform. Cette appli gère une liste des personnels et des données concernant ces personnes. En mode modification, je sélectionne la fiche de la personne à modifier à l'aide d'un ComboBox (contenant le noms de famille) , et les données de cette dernière apparaisse. Cependant, j'ai 2 personnes s'appelant PETIT et MONPETIT. Lorsque j'appelle la fiche de PETIT, c'est information apparaisse correctement, mais lorsque j'appelle la fiche de MONPETIT, le prénom et les autres données sont celles de PETIT. Alors que pour toutes les autres personnes le système fonctionne. Que faire ???
NB : Voici le début de mon code If CB_Nom <> "" Then Sheets("données").Select Cells(199, 1).Select SELECTion.End(xlUp).Select finliste = ActiveCell.Row Debutliste = 2 nbligne = Debutliste Range(Cells(2, 4), Cells(finliste, 4)).Select
With SELECTion Set Resultech = .Find(CB_Nom, after:Îlls(2, 4), _ LookIn:=xlFormulas, LookAt:=xlPart, _ SearchOrder:=xlByRows, searchdirection:=xlNext, _ MatchCase:úlse)
If Not Resultech Is Nothing Then dim Ligne As String Ligne = Resultech.Row
'Recherche du prénom TB_Prénom = Cells(Ligne, 6)
etc.... Merci, frédéric
.
Bonjour,
Dans le .Find remplace LookAt:=xlPart par LookAt:=xlWhole
Autre solution, mais qui modifiera complètement ton code,
récupérer le n° d'index de ta combobox et te décaler dans
ton tableau par rapport à cete valeur. Les index dans une
combobox commencent à la valeur 0.
Camille
-----Message d'origine-----
Salut,
J'ai créer une appli VBA pour Excel avec des masques de
saisies via des Userform. Cette appli gère une liste des
personnels et des données concernant ces personnes. En
mode modification, je sélectionne la fiche de la personne
à modifier à l'aide d'un ComboBox (contenant le noms de
famille) , et les données de cette dernière apparaisse.
Cependant, j'ai 2 personnes s'appelant PETIT et MONPETIT.
Lorsque j'appelle la fiche de PETIT, c'est information
apparaisse correctement, mais lorsque j'appelle la fiche
de MONPETIT, le prénom et les autres données sont celles
de PETIT. Alors que pour toutes les autres personnes le
système fonctionne.
Que faire ???
NB : Voici le début de mon code
If CB_Nom <> "" Then
Sheets("données").Select
Cells(199, 1).Select
SELECTion.End(xlUp).Select
finliste = ActiveCell.Row
Debutliste = 2
nbligne = Debutliste
Range(Cells(2, 4), Cells(finliste, 4)).Select
With SELECTion
Set Resultech = .Find(CB_Nom, after:=Cells(2, 4), _
LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByRows, searchdirection:=xlNext, _
MatchCase:=False)
If Not Resultech Is Nothing Then
dim Ligne As String
Ligne = Resultech.Row
Dans le .Find remplace LookAt:=xlPart par LookAt:=xlWhole
Autre solution, mais qui modifiera complètement ton code, récupérer le n° d'index de ta combobox et te décaler dans ton tableau par rapport à cete valeur. Les index dans une combobox commencent à la valeur 0.
Camille
-----Message d'origine----- Salut,
J'ai créer une appli VBA pour Excel avec des masques de saisies via des Userform. Cette appli gère une liste des personnels et des données concernant ces personnes. En mode modification, je sélectionne la fiche de la personne à modifier à l'aide d'un ComboBox (contenant le noms de famille) , et les données de cette dernière apparaisse. Cependant, j'ai 2 personnes s'appelant PETIT et MONPETIT. Lorsque j'appelle la fiche de PETIT, c'est information apparaisse correctement, mais lorsque j'appelle la fiche de MONPETIT, le prénom et les autres données sont celles de PETIT. Alors que pour toutes les autres personnes le système fonctionne. Que faire ???
NB : Voici le début de mon code If CB_Nom <> "" Then Sheets("données").Select Cells(199, 1).Select SELECTion.End(xlUp).Select finliste = ActiveCell.Row Debutliste = 2 nbligne = Debutliste Range(Cells(2, 4), Cells(finliste, 4)).Select
With SELECTion Set Resultech = .Find(CB_Nom, after:Îlls(2, 4), _ LookIn:=xlFormulas, LookAt:=xlPart, _ SearchOrder:=xlByRows, searchdirection:=xlNext, _ MatchCase:úlse)
If Not Resultech Is Nothing Then dim Ligne As String Ligne = Resultech.Row