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: