Recherche d'une valeur avec liste

  • Initiateur de la discussion Crazyo
  • Date de début
C

Crazyo

Guest
Bonjour,

Je vous explique mon cas: je travaille dans une petite société, et nous avons depuis peu un petit réseau de 5 ordinateurs qui nous servait uniquement pour les impressions. Mais depuis peu, j'ai mis en place un fichier excel ayant pour but de remplacer notre cahier des appels téléphoniques, avec 50 à 70 appels par jour, il grossit pas trop.

Chaque page du fichier correspond à un jour (ex: SAM 24 AVR), et chaque jour comporte tout simplement 6 colonnes:
- Interlocuteur
- Heure
- Date
- Destinataire
- Objet
- Numéro à rappeler

Le tout est largement suffisant, mais une limite est venue de nos utilisateurs un peu agés qui éprouvent les pires difficultées à retrouver des contacts. Faire l'action suivante leur est impossible (dans la mesure où ils peinent déjà dans l'utilisation des tris autos):
- [Edition]
- [rechercher]
- [options]
- [classeur]
- [rechercher tout]
Ensuite, apparait la liste où on peut repérer le bon contact suivant le jour souhaité.

Comment puis-je faire pour simplifier au maximum cette manipulation pour arriver à cette même liste au final? Faire un bouton, je sais faire, lui greffer une macro, je sais aussi, mais faire une macro capable d'effectuer une recherche en fonction d'un nom, et d'afficher le résultat avec une liste claire, j'ai pas la moindre idée de la méthode à adopter. Je vous remercie par avance...
 

Pièces jointes

  • cahierdesappelstest.zip
    8.4 KB · Affichages: 16
C

Crazyo

Guest
Désolé de vous ennuyer à nouveau. Je me suis amusé à décortiquer la formule suivante (d'ailleurs je vous remercie de nouveau, ça marche très bien);

Private Sub CommandButton1_Click()
Dim WS As Worksheet
Dim CL As Range
Dim Num As Integer
Num = 8
'Nettoyage de la plage où afficher les résultats (par exemple A8 à G33)
Range("A8:G33").ClearContents
'Si le TextBox est vide, il ne se passe rien
If TextBox1.Text <> "" Then
'Parcourons les différentes feuilles du classeur
For Each WS In Worksheets
If WS.Name <> "Liste d'appels" Then
'Parcourons les cellules de la plage de recherche (par exemple de A2 à A99)
For Each CL In WS.Range("A2:A99")
'Si la valeur recherchée est trouvée, on l'affiche dans la plage résultats
'ainsi que les cellules voisines
If InStr(UCase(CL.Value), UCase(TextBox1.Text)) > 0 Then
Range("A" & CStr(Num)).Value = CL.Value
Range("B" & CStr(Num)).Value = CL.Offset(0, 1).Value
Range("C" & CStr(Num)).Value = CL.Offset(0, 2).Value
Range("D" & CStr(Num)).Value = CL.Offset(0, 3).Value
Range("E" & CStr(Num)).Value = CL.Offset(0, 4).Value
Range("F" & CStr(Num)).Value = CL.Offset(0, 5).Value
Range("G" & CStr(Num)).Value = WS.Name
Num = Num + 1
End If
Next CL
End If
Next WS
End If
End Sub


Mais voilà, j'ai très bien compris comment exclure une feuille de la recherche...
If WS.Name <> "Liste d'appels" Then
J'ai ainsi renommé "RECHERCHE" en "Liste d'appels", mais je ne trouve pas le moyen pour exclure aussi une feuille "Annaire" de cette recherche, comment faire?
 
@

@+Thierry

Guest
Bonsoir Crayo, les gens de ce fils, le Forum

Pour exclure un seconde feuille de la boucle tu peux faire ceci :

Sub ExclureFeuille()
Dim WS As Worksheet

For Each WS In Worksheets
If WS.Name <> "Recherche" And WS.Name <> "Annuaire" Then
WS.Range("A1") = Now
End If
Next WS

End Sub

Cà marchera pour autant que tu aies bien nommé ta seconde feuille "Annuaire" et non Annaire !! lol

Bonne Soirée
@+Thierry
 

Discussions similaires

Réponses
1
Affichages
124
Compte Supprimé 979
C
Réponses
1
Affichages
444

Statistiques des forums

Discussions
312 310
Messages
2 087 119
Membres
103 478
dernier inscrit
Frederic Lagger