Sub b()
Dim pf As Range, pfse As Range, msg$, t$, tt$, ttt$, tArr, i%
' pour créer données de test
ActiveSheet.AutoFilterMode = False
[C1:E15] = Empty: [C1] = "ENTETE": [C2] = "1": [C4] = "2"
Range("C2:C4").AutoFill Destination:=Range("C2:C15"), Type:=xlFillDefault
[D2:D15].FormulaLocal = "=ENT(ALEA()*MAINTENANT())": [E2:E15].FormulaR1C1 = "=INT((RC[-1]*ROW())/2013)"
'/// fin création données test
'Visualiser les données
MsgBox "Appliquer le filtre automatique?", vbInformation + vbOKOnly, "Voir les données de test"
'Ci-dessous utilisation de filtre automatique en VBA
Range("C1:C15").AutoFilter Field:=1, Criteria1:="<>"
Set pf = [_FILTERDATABASE]
Set pfse = pf.Offset(1).Resize(pf.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
t = Replace(pfse.Offset(, 1).Address(0, 0), ":", ","): tt = Replace(pfse.Offset(, 2).Address(0, 0), ":", ",")
ttt = t & "," & tt
MsgBox ttt, vbExclamation, "Voici les adresses des non vides en colonne D et E" 'pour test
tArr = Split(ttt, ",")
For i = LBound(tArr) To UBound(tArr)
msg = msg & "Addresse Cellule: " & tArr(i) & vbTab & "Valeur Cellule: " & Range(tArr(i)) & vbCrLf
Next i
MsgBox msg, vbInformation, "Voici les valeurs des données des cellules non vides en colonne D et E"
ActiveSheet.AutoFilterMode = False
End Sub