Recherche sur une base excel par nom et/ou prenom

gusmp29200

XLDnaute Nouveau
Bonjour à tous.

voila j'ai commencé à programmer en vba excel depuis 3 mois (auto formé).
J'ai réaliser un programme avec accés par compte (via une demande de mot de passe). ce programme me permet de consulter, modifier, insérer des données dans une base excel. mais aussi d'imprimer des fiches de postes selon les compétences des personnes et enfin d'imprimer un livret recensant toute leur compétence.

Mon 1er problème est le suivant actuellement ma recherche de personne se fait uniquement sur le nom (via textbox1) hors il y a de grande chance que j'ai un jour des personnes portant le même nom. du coup pour pallier a ce problème je souhaiterai pouvoir rechercher les gens par le nom et prénom (textbox1 et textbox2) ou par le nom seulement.

ci dessous ma ligne de recherche :

If TextBox1 <> "" Then
Set cel = Feuil2.Range("A2:A" & Feuil2.Range("A" & Rows.Count).End(xlUp).Row).Find(TextBox1, , , xlWhole)
If Not cel Is Nothing Then lig = cel.Row Else MsgBox "aucune correspondance trouvée", , "Pas de corespondance": Exit Sub



Mon deuxième problème est dans l'insertion (pour l'instant si mon 1er pb est résolut je pourrais le régler en faisant une consultation avant insertion) est de verifier que la personne n'est pas deja dans la base avant insertion(de facon automatique.
ci dessous ma ligne d'insertion :

num = Sheets("liste personnel").Range("A65536").End(xlUp).Row + 1
Sheets("liste personnel").Select


J'espère avoir été assez clair sur mes problèmes.

D'avance merci.

Cdlt
 

Paf

XLDnaute Barbatruc
Re : Recherche sur une base excel par nom et/ou prenom

bonjour,

pour le premier soucis:

Code:
If TextBox1 <> "" Then
   Set cel = Feuil2.Range("A2:A" & Feuil2.Range("A" & Rows.Count).End(xlUp).Row).Find(TextBox1, , , xlWhole)
      If Not cel Is Nothing Then 
         lig = cel.Row 
         if Cells(cel.Row,2)= textboxt2 ' si la cellule en colonne B (prénom) égale la textbox prénom 
            code....
         end if
      
      Else MsgBox "aucune correspondance trouvée", , "Pas de corespondance": Exit Sub
....

non testé faute de jeu d'essai.

A+
 

gusmp29200

XLDnaute Nouveau
Re : Recherche sur une base excel par nom et/ou prenom

Bonjour paf et merci pour ta réponse. cependant j'ai une erreur près textbox il me demande then ou goto.

j'ai essayé d'en mettre un donnant donc sur le code mais ca ne va pas.

je vais essayer de mettre le fichier en dispo (il fait 2.41 méga) sachant que c'est ma toute première version comme ca il y aura une base d'essai.

depuis je l'ai modifié (surtout sur les autorisations d'accées. j'ai viré aussi pas mal de feuille afin d'alléger le fichier

https://www.dropbox.com/s/2s38ysefhuneyff/Tableau .xls?n=196907705

merci d'avance
 

Paf

XLDnaute Barbatruc
Re : Recherche sur une base excel par nom et/ou prenom

re,

en voyant le classeur, peut_être une autre solution:

dans userform2:

saisir le nom, vérifier qu'il existe, et en même temps copier les prénom trouvés avec ce nom dans une listbox ( en remplacement de la textbox)

au clic sur le prénom voulu, déclenchement du code pour l'affichage des données (actuellement dans Private Sub CommandButton3_Click()

Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim DerLig As Long, Compt As Integer

With Worksheets("Liste personnel")
DerLig = .Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To DerLig
    If UCase(.Cells(i, 1)) = UCase(TextBox1) Then
        'ComboBox2.AddItem .Cells(i, 2)
        ListBox2.AddItem .Cells(i, 2)
        ListBox2.List(ListBox2.ListCount - 1, 1) = i

        Compt = Compt + 1
    End If
Next
If Compt = 0 Then MsgBox "Pas de correspondance "
End With
End Sub

Code:
Private Sub ListBox2_Click()
   'ici le code d'affichage des données
End Sub


le numéro de la ligne du nom/prénom choisi est inscrit dans la listbox et récupérable par:
Code:
ListBox2.Column(1, ListBox2.ListIndex)

dans l'userform1:
le même principe pourrait être ado(a)pté sauf qu'au lieu d'une listbox il faudrait une combobox qui permet en plus de saisir une valeur
Saisir un nom, s'il existe déjà, affichage des prénoms existants, si la personne est différente saisir le prénom dans la comnbobox et poursuivre la saisie.

A+

NB= 2,42 Mo le classeur quasi vide ??
 

gusmp29200

XLDnaute Nouveau
Re : Recherche sur une base excel par nom et/ou prenom

Ok merci je vais voir ca.
Pour le classeur en effet je ne sais pas pourquoi ce poids. je vais extraire tous mes modules, user,et autres et les reinjecter dans un nouveau fichier.

Je test ca demain au taf et je vous tiens au courant.

Encore merci!!
 

gusmp29200

XLDnaute Nouveau
Re : Recherche sur une base excel par nom et/ou prenom

Re bonjour; alors je reviens car du coup nickel ca fonctionne avec tes proposition. j'ai juste mis une combobox a la place de la listebox ce qui me permet de gerer ma consultation et ma modif.

Par contre bien que j'ai mis combobox1.clear dans mon programme de reinitialisation de mes textobox, checkbox et combobox, celle ci reste avec une donnée du moment que c'est moi qui l'ai rentré dans le cadre d'une modification.

Comment puis je faire pour la remettre totalement a zero?

Deuxième question actuellement si je ne met rien dans ma combobox mon programme plante (lors d'une recherche) comment puis je faire pour que dans ce cas la il fasse la recherche que par le nom?

D'avance merci.

NB: j'ai essayé de voir d'ou pouvez venir ce poids pour un fichier avec presque rien et pour l'instant rien trouvé!! mais je continu mes recherces.

Cdlt
 

Discussions similaires

Statistiques des forums

Discussions
312 108
Messages
2 085 371
Membres
102 876
dernier inscrit
BouteilleMan