Annuaire avec formulaire

laryngo19

XLDnaute Junior
Bonjour à toutes et à tous,

Je me tourne vers vous pour solliciter votre aide. Dans un service de visite à domicile de patients, les infirmières disposent d'un téléphone fixe sur lequel elles reçoivent des appels en absence. Pour des raisons médico-légales, le répondeur est désactivé. Elle n'ont à leur connaissance en rentrant que les numéros d'appelants en absence. Elles recherchent alors avec le numéro qui a pu les appeler en cherchant sur leur agenda...Fastidieux !

J'ai donc réalisé un fichier avec une colonne numéros et en regard, une colonne identité. J'ai réalisé un tri pour avoir soit les numéros par ordre croissants, soit les noms par ordre alphabétique. (je n'ai pas réussi à lier les cellules entre elles pour filtrer à l'envie soit une colonne, soit l'autre. J'ai été obligé de faire par sélection de lignes)

Je souhaiterai avoir un formulaire en accueil sur le bureau de leur PC avec une liste déroulante avec les numéros (ou mieux en les saisissant) pour obtenir l'identité de l'appelant en absence.

Je souhaiterai également avoir sur ce formulaire une liste déroulante avec les noms alphabétiques de ma liste, et une fonction qui indiquerait le numéro correspondant.

Pour être parfait, le formulaire pourrait permettre la saisie de nouvelles entrées....

Je n'ai pas trouvé ce genre d'outil en parcourant le forum. Mais j'ai peut-être mal cherché.

Pensez-vous que ce soit réalisable ?

Je sais, mon problème c'est d'avoir l'imagination débordante et pas grand-chose de savoir faire....
Je vous remercie et serai attentif à tous vos conseils et réflexions.

Cordialement,
laryngo19
 

Pièces jointes

  • annuaire essai.xlsx
    8.5 KB · Affichages: 48
  • annuaire essai.xlsx
    8.5 KB · Affichages: 63
  • annuaire essai.xlsx
    8.5 KB · Affichages: 66

exene

XLDnaute Accro
Re : Annuaire avec formulaire

Bonjour,

Un essai en pièce jointe, deux listes déroulante en A1 etD1

@ plus
 

Pièces jointes

  • annuaire essai.xlsx
    9.8 KB · Affichages: 47
  • annuaire essai.xlsx
    9.8 KB · Affichages: 58
  • annuaire essai.xlsx
    9.8 KB · Affichages: 55

laryngo19

XLDnaute Junior
Re : Annuaire avec formulaire

Bonjour exene,

Je te remercie de ta proposition. Elle est simple et me permets de comprendre les formules utilisées, donc c'est du bonheur !
J'ai essayé en frappe plutôt qu'en sélection dans la liste déroulante des numéros...et ça fonctionne impeccablement.
Je pense même qu'il serait préférable de taper directement le numéro visualisé sur l'écran du téléphone (appel en absence) plutôt que le choisir dans la liste déroulante, ça serait peut-être plus facile...non ? Mes infirmières sont exceptionnelles, mais à l'ordinateur, elles font ce qu'elles savent faire, le remède ne doit pas être pire que le mal...lol Mon souhait étant de leur simplifier la vie !

Ensuite, connais-tu un moyen simple pour réduire les espaces entre les chiffres des numéros de téléphone ? Je les ai dictés avec un logiciel de reconnaissance vocale et il me les a mis avec espace...

Merci,
laryngo19
 

laryngo19

XLDnaute Junior
Re : Annuaire avec formulaire

Bonjour Theze,

Ton formulaire est super ! Je t'en remercie. J'ai le même problème à résoudre que signalé précédemment : j'ai fait la saisie des numéros avec des espace entre chaque binôme...Ce qui impose dans la reconnaissance de les saisir avec les mêmes espaces. Peut-on corriger ça d'entrée de jeux (j'ai une liste de plus de 200 numéros)

Cordialement,

Laryngo19
 

laryngo19

XLDnaute Junior
Re : Annuaire avec formulaire

RE :

J'ai modifié pour voir la colonne numéros en sélectionnant dans Format la forme "téléphone" dans format divers...Mais cela ne m'avance pas à grand chose si ce n'est que lorsque je rajoute un numéro nouveau, il s'inscrit avec espaces entre les binômes.
Du côté du code, je ne sais pas si on peut écrire une formule du genre 00 00 00 00 00 = 0000000000 et où le mettre ?

copie du code :

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

Dim Plage As Range
Dim Cel As Range
Dim Col As Integer

'si appui sur la touche Entrée
If KeyCode = 13 Then

'défini la colonne de recherche (noms colonne A ou numéros colonne B)
If OptionButton2.Value = True Then Col = 1 Else Col = 2

'défini la plage de recherche
With Worksheets("Feuil1")

Set Plage = .Range(.Cells(2, Col), .Cells(.Rows.Count, Col).End(xlUp))

End With

'effectue la recherche
Set Cel = Plage.Find(TextBox1.Text, , xlValues, xlPart)

'si trouvé...
If Not Cel Is Nothing Then

'indique le résultat
If Col = 1 Then

TextBox2.Text = Cel.Offset(, 1).Value

Else

TextBox2.Text = Cel.Offset(, -1).Value

End If

'sinon...
Else

'affiche le message
TextBox2.Text = "Pas trouvé !"

End If

Merci pour votre aide,
laryngo19
 

Dranreb

XLDnaute Barbatruc
Re : Annuaire avec formulaire

Bonjour.
Une autre proposition avec un Userform.
 

Pièces jointes

  • CBxLiéesLaryngo19.xls
    194.5 KB · Affichages: 64
  • CBxLiéesLaryngo19.xls
    194.5 KB · Affichages: 65
  • CBxLiéesLaryngo19.xls
    194.5 KB · Affichages: 59

Si...

XLDnaute Barbatruc
Re : Annuaire avec formulaire

salut

ou encore ...

remarque : la liste des noms s'initialise quand on a choisi un n° (pour tourner autour des autres personnes) mais on peut s'en dispenser.
 

Pièces jointes

  • annuaire.xlsm
    23.2 KB · Affichages: 66
  • annuaire.xlsm
    23.2 KB · Affichages: 78
  • annuaire.xlsm
    23.2 KB · Affichages: 69

laryngo19

XLDnaute Junior
Re : Annuaire avec formulaire

Bonjour Dranreb, bonjour à tous,

Je viens de découvrir ta proposition Dranreb, elle est à la fois séduisante (couleur d'affichage dans les fenêtres du Userform et surtout possibilité de faire une saisie d'ajout de correspondant pour alimenter la liste), mais à la fois "terriblement" dangereuse car elle permet de supprimer un correspondant en cas de clic intempestif !! Et ça, mes infirmières en sont capable sans le faire exprès ! (moi aussi d'ailleurs, même si je suis capable de ressaisir le correspondant...)

Mais je te remercie beaucoup pour ton aide précieuse. Je vais découvrir la proposition de Si... (qui commence à me connaître depuis le temps qu'il m'apporte ses compétences !!)

@ plus, cordialement,
laryngo19
 

laryngo19

XLDnaute Junior
Re : Annuaire avec formulaire

Bonjour Si...

Encore une fois c'est génial !!
Y a t-il une façon d'améliorer le Userform en insérant une fonction saisie de nouveau correspondant ? Sinon, insertion nouvelle ligne (en manuel), écriture du nom avec le numéro correspondant en face ; sélection tableau pour tri de A à Z pour être sûr que ce nouveau correspondant soit à la bonne place (si je veux imprimer l'annuaire par exemple)...
Et puis, (mais là, j'abuse..) un bouton pour une nouvelle recherche qui réinitialise le Userform.
ça serait super...

Je te remercie, cordialement,
laryngo19
 

Theze

XLDnaute Occasionnel
Re : Annuaire avec formulaire

Re,

Un petit masque de saisie très simple afin d'insérer les espaces automatiquement. Remplacer le code existant pas celui-ci :
Code:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

    Dim Plage As Range
    Dim Cel As Range
    Dim Col As Integer
    
    'ajoute les espaces automatiquement
    If KeyCode <> 8 Then
    
        If Len(TextBox1.Text) = 2 Then TextBox1.Text = TextBox1.Text & " "
        If Len(TextBox1.Text) = 5 Then TextBox1.Text = TextBox1.Text & " "
        If Len(TextBox1.Text) = 8 Then TextBox1.Text = TextBox1.Text & " "
        If Len(TextBox1.Text) = 11 Then TextBox1.Text = TextBox1.Text & " "
        
    End If
    
    'empêche d'aller plus loin, une fois le dernier n° inscrit et lance la recherche
    If Len(TextBox1.Text) = 14 Then
    
        If KeyCode <> 8 Then KeyCode = 13
    
    End If
    
    'si appui sur la touche Entrée
    If KeyCode = 13 Then

        'défini la colonne de recherche (noms colonne A ou numéros colonne B)
        If OptionButton2.Value = True Then Col = 1 Else Col = 2

        'défini la plage de recherche
        With Worksheets("Feuil1")

            Set Plage = .Range(.Cells(2, Col), .Cells(.Rows.Count, Col).End(xlUp))

        End With

        'effectue la recherche
        Set Cel = Plage.Find(TextBox1.Text, , xlValues, xlPart)

        'si trouvé...
        If Not Cel Is Nothing Then

            'indique le résultat
            If Col = 1 Then

                TextBox2.Text = Cel.Offset(, 1).Value

            Else

                TextBox2.Text = Cel.Offset(, -1).Value

            End If

        'sinon...
        Else

            'affiche le message
            TextBox2.Text = "Pas trouvé !"

        End If

    End If

End Sub

Hervé.
 

laryngo19

XLDnaute Junior
Re : Annuaire avec formulaire

RE Theze,

Je l'ai fait, ça fonctionne très bien pour les numéros à rechercher. Par contre si on souhaite chercher par nom de correspondant, la saisie des lettres se fait de la même manière (par paquet de 2 lettres) et Excel botte en touche...

Cordialement,
laryngo19
 

Dranreb

XLDnaute Barbatruc
Re : Annuaire avec formulaire

supprimer un correspondant en cas de clic intempestif
Voir à limiter un tout petit peu le risque comme ça :
VB:
Private Sub BtnAjoutSupp_Click()
If LCou = 0 Then
   LCou = CL.PlgTablo.Rows.Count
   CL.PlgTablo.Rows(LCou).Copy
   CL.PlgTablo.Rows(LCou).Insert
   Application.CutCopyMode = False
   LCou = LCou + 1
   CL.PlgTablo(LCou, 1).Value = Trim$(Me.CBxIdt.Text)
   CL.PlgTablo(LCou, 2).Value = Trim$(Me.CBxTel.Text)
ElseIf MsgBox("Êtes vous sûr de vouloir supprimer " & Me.CBxIdt.Text & " ?", _
   vbYesNo + vbQuestion, Me.Caption) = vbYes Then
   CL.PlgTablo.Rows(LCou).Delete
   End If
CL.Actualiser
End Sub
Indépendamment de ça on peut ajouter cette procédure pour faciliter la frappe d'un nouveau nom prénom :
VB:
Private Sub CBxIdt_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim C As String * 1
If CBxIdt.SelStart >= InStr(CBxIdt.Text & " ", " ") Then
   If CBxIdt.SelStart > 0 Then C = Mid$(CBxIdt.Text, CBxIdt.SelStart, 1)
   If UCase(C) <> LCase(C) Then KeyAscii = Asc(LCase$(Chr$(KeyAscii))): Exit Sub
   End If
KeyAscii = Asc(UCase$(Chr$(KeyAscii)))
End Sub
 

laryngo19

XLDnaute Junior
Re : Annuaire avec formulaire

Bonsoir Dranreb,

J'ai modifié la 1ère partie. Effectivement le questionnement sur la suppression sécurise et rappelle à l'ordre l'utilisateur.
J'ai ajouté la 2ème partie de code en dessous, mais si je peux rentrer un nouveau nom, je ne peux pas entrer un nouveau numéro de téléphone et valider la saisie. Je me suis planté en quelque part ?

Cordialement,
laryngo19
 

Pièces jointes

  • annuaire Dranreb.xls
    214 KB · Affichages: 49
  • annuaire Dranreb.xls
    214 KB · Affichages: 60
  • annuaire Dranreb.xls
    214 KB · Affichages: 44

laryngo19

XLDnaute Junior
Re : Annuaire avec formulaire

RE Dranreb,

Autant pour moi, je viens de le refaire et cela fonctionne. Je dois vérifier sur plusieurs saisies car j'ai l'impression d'une difficulté sur mon pavé numérique qui se désélectionne quand je veux saisir un numéro...à vérifier, ce n'est peut-être qu'une mauvaise manipulation...Je vois ça et je te dis.

Merci pour ces apports.

cordialement,
laryngo19
 

Pièces jointes

  • annuaire Dranreb.xls
    212 KB · Affichages: 55
  • annuaire Dranreb.xls
    212 KB · Affichages: 56
  • annuaire Dranreb.xls
    212 KB · Affichages: 61

Discussions similaires

Réponses
5
Affichages
139

Statistiques des forums

Discussions
312 206
Messages
2 086 203
Membres
103 157
dernier inscrit
youma