éviter feuille.activate + question array
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
Code:
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) |
mais j'ai le droit une erreur d'exécution 1004
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:
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 |