Bonjour à toutes et à tous,
j'ai deux questions relatives à la macro ci-dessous pour laquelle j'aurais besoin de votre assistance
1) comment éviter le Worksheets("Staff").Activate pour ensuite revenir sur la page principale via Worksheets("Dashboard").Activate.
En effet il s'agit d'une macro permettant d'envoyer des mails avec pièce jointes mais en arrière plan et donc non visible
En effet j'arrive à jongler entre deux feuilles distinctes (T_Reports vs Projects) au début mais pas lors de la boucle
j'ai tenté via un
mais j'ai le droit une erreur d'exécution 1004
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Set Sp = Worksheets("Staff") Set plage = Sp.Range("A1:A" & Range("A" & Rows.Count).End(xlUp).row) MsgBox Sp.Cells(ici.row, 4) & " " & Sp.Cells(ici.row, 3)
2) comment procéder au lieu d'afficher Cells(ici.row, 4) & " " & Cells(ici.row, 3) mettre cela dans un array ( ce sont des noms et prénoms que je peux facilement transformer en mail
Mon objectif étant de pouvoir le récupérer en dehors de la boucle et pouvoir le splitter pour un envoi de mail
merci par avance pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part With Olmail' .To =
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 nomtableau = "T_Reports" TblBD = Range(nomtableau) For i = 1 To UBound(TblBD) If TblBD(i, 7) > Now And TblBD(i, 7) <= Now + 56 And TblBD(i, 10) = "Y" Then Project_ID = TblBD(i, 1) periodid = TblBD(i, 2) Acronym_Range = Application.Match(Project_ID, Worksheets("Projects").Range("A:A"), 0) Acronym = Worksheets("Projects").Cells(Acronym_Range, 3) Worksheets("Staff").Activate Dim plage As Range, valeur1 As Variant, valeur2 As Variant, decalage As Integer Set plage = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).row) valeur1 = Project_ID valeur2 = periodid decalage = 7 '(de A à H) With plage Set ici = .Find(valeur1, LookIn:=xlValues) If Not ici Is Nothing Then prem = ici.Address Do If ici.Offset(0, decalage) = valeur2 Then MsgBox (Cells(ici.row, 4) & "." & Cells(ici.row, 3)) Set ici = .FindNext(ici) Loop While Not ici Is Nothing And ici.Address <> prem End If End With End If Next Worksheets("Dashboard").Activate
Partager