Bonjour,
J'ai pu en recoupant différent post et en adaptant certains code arriver là (En fait pour tout dire je suis vraiment une buse en vba).
La situation : Donc, j'ai un fichier avec une liste d'exposants a qui l'on envoi un mail, certains ont une adresse mails d'autres non, on repère, parmi ceux qui ont des adresses mails, quels sont ceux qui ont ouvert le mail.
Ensuite on copie les lignes de ceux qui n'ont pas ouvert le mail vers un autre classeur qui me permettra de créer des étiquettes de publipostage pour envoyer le dossier par courrier.
Les problèmes : En l'état je n'arrive pas à récupérer les informations des exposants n'ayant pas de mail car la formule ne se copie pas lorsqu'elle ne trouvent pas de mails dans la colonne N, par contre je récupère les entêtes de colonne placés en ligne 5. Ces entêtes se retrouvent ensuite au milieu du tableau après le tri effectuer en fin de code.
Est-ce que quelqu'un a une piste pour faire évoluer ce code dans le bon sens ?
😱
Fred
J'ai pu en recoupant différent post et en adaptant certains code arriver là (En fait pour tout dire je suis vraiment une buse en vba).
Code:
Private Sub CommandButton4_Click()
Application.ScreenUpdating = False
compteur = 6
Workbooks.Open "D:\Documents\Goral-Expo\Traitement Mailing\Exposants\Exposants Etiquettes.xlsx"
Workbooks("Exposants Traitement Mailing.xlsm").Activate
If MsgBox("Préparer le fichier étiquettes publipostage ?", vbYesNo) = vbYes Then
Range("V6").Select
'modif de la formule pour utiliser les cols T et N
ActiveCell.FormulaR1C1 = "=COUNTIF(C[-2],RC[-8])"
Range("V6").Select
Selection.AutoFill Destination:=Range("V6:V" & Range("N65535").End(xlUp).Row), Type:=xlFillDefault
Range("V6:V65535").Select
For i = Range("N65535").End(xlUp).Row To 1 Step -1
'22 a la place de 15 pour correspondre a la col V
If Cells(i, 22).Value = 0 Then
'si = 0 donc si faux les copier et les coller dans un classeur
Rows(i).Copy Destination:=Workbooks("Exposants Etiquettes.xlsx").Sheets("Feuil1").Range("A" & compteur)
compteur = compteur + 1
End If
Next i
Workbooks("Exposants Etiquettes.xlsx").Activate
Range("R:R,S:S,T:T").ClearContents
Range("$A$6:$Q$65535").Sort Key1:=Range("B6"), Order1:=xlAscending
Workbooks("Exposants Traitement Mailing.xlsm").Activate
End If
[N6].Select
Application.ScreenUpdating = True
End Sub
La situation : Donc, j'ai un fichier avec une liste d'exposants a qui l'on envoi un mail, certains ont une adresse mails d'autres non, on repère, parmi ceux qui ont des adresses mails, quels sont ceux qui ont ouvert le mail.
Ensuite on copie les lignes de ceux qui n'ont pas ouvert le mail vers un autre classeur qui me permettra de créer des étiquettes de publipostage pour envoyer le dossier par courrier.
Les problèmes : En l'état je n'arrive pas à récupérer les informations des exposants n'ayant pas de mail car la formule ne se copie pas lorsqu'elle ne trouvent pas de mails dans la colonne N, par contre je récupère les entêtes de colonne placés en ligne 5. Ces entêtes se retrouvent ensuite au milieu du tableau après le tri effectuer en fin de code.
Est-ce que quelqu'un a une piste pour faire évoluer ce code dans le bon sens ?
😱
Fred
Dernière édition: