Recherche adresse email
Bonjour,
Après de nombreuses recherches et débutant en vba je me vois confronté à un petit problème que je n'arrive pas à résoudre.
J'ai un fichier excel qui contient plusieurs feuilles dont les feuilles suivantes:
- Actions en cours
- Paramètres
Dans la feuille "actions en cours", j'ai une liste de tâches à réaliser. Chaque tâche est associée à une personne. A côté de ce tableau mais toujours sur la feuille j'ai un filtre type "segment" qui me permet de filtrer les actions de chaque personnes. Autrement dit, le segment contient le nom des personnes.
Dans la feuille paramètre, j'ai dans la colonne D le nom des personnes (les noms sont identiques à ceux du filtre segment). En face de chaque nom, en colonne E se trouve l'adresse mail associée au nom.
Ce que je voudrais faire, c'est en fonction du nom sélectionné dans le filtre segment de la feuille "Action en cours", aller chercher le même nom dans la colonne D de la feuille "Paramètres" et copier l'adresse mail associée en colonne E pour insérer cette adresse dans mon mail comme destinataire.
J'ai donc bidouillé le bout de code ci-dessous et le problème se trouve entre les pointillés. Pour information, la séquence est déclenchée via un bouton placé sur la feuille "Actions en cours"
Sub Recherche mail()
Dim NomPersonne As String
Dim Ref As String
Dim l As Long
Dim i As Long
Dim Destinataire As string
For Each Item In ThisWorkbook.SlicerCaches(1).SlicerItems
If Item.Selected Then NomPersonne = Item.Name
Next
(Prob)................................................................................................
While Ref = NomPersonne
Sheets("Consignes & Liste menus").Activate
Cells.Find(What:=Ref).ActiveCell
l = ActiveCell.Row
i = ActiveCell.Column
Destinataire = Cells(l, i.Offset(, 1)).Value
Wend
(Prob)..................................................................................................
Set olApp = CreateObject("Outlook.application")
Set m = olApp.CreateItem(olMailItem)
With m
.Subject
.To = Destinataire
End With
End Sub
Merci pour votre aide
Bonjour, et
si je comprends bien, il s'agit de trouver une valeur
pourquoi faire un while / wend alors que le find le fera selon les paramètres indiqués dans le find
voici un exemple assez complet duquel tu peux tirer la solution
Sub rechercheadresse()
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String
Valeur_Cherchee = "XXXX"
Set PlageDeRecherche = Sheets("data").Cells
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
If Trouve Is Nothing Then
MsgBox Valeur_Cherchee & " n'est pas présent dans " & PlageDeRecherche.Address
Else
MsgBox Valeur_Cherchee & " est présent en " & Trouve.Address & ", ligne = " & Trouve.Row & " , colonne = " & Trouve.Column
End If
Set PlageDeRecherche = Nothing
Set Trouve = Nothing
End Sub