Re : Recherchev et nbsi en vba
Merci Modeste !
Tu as tout à fait compris, c'est exactement ce que j'essaie de faire depuis 3 jours... Comme tu l'as vu je suis débutant et j'ai pas tout compris à ce que tu as fait...
Est ce que tu peux m'expliquer avec un commentaire ce que ca signifie pour que je puisse m'améliorer ?
En tout cas je te remercie de ton aide et de ta patience
------
Dim Model As String
Dim Cells3 As Range
Set liste = CreateObject("scripting.dictionary")
Target = Worksheets("Feuil2").Range("B4") 'defini target pour ce chemin
Model = Worksheets("Feuil2").Range("A6") 'defini model pour ce chemin
ActiveWorkbook.Sheets("Feuil2").Range("A7:B1000").ClearContents 'efface le contenu
For Each Cells3 In Worksheets("Feuil1").Range("B5:B" & Worksheets("Feuil1").Range("B1000").End(xlUp).Row) 'pour chaque cellule dans la feuil1 collone B
If IsDate(Cells3) Then 'si les cellules sont des dates
If Month(Cells3) = Month(Target) Then 'si les dates correspondent au mois selectionner dans la liste deroulante
If Cells3.Offset(0, 1) = Model Then 'si la cellule à droite de la date est égalle à l'article selectionner dans la liste deroulante
If Not liste.exists(Cells3.Offset(0, 2).Value) Then
liste(Cells3.Offset(0, 2).Value) = liste(Cells3.Offset(0, 2).Value) + 1
Else
liste(Cells3.Offset(0, 2).Value) = liste(Cells3.Offset(0, 2).Value) + 1
End If
End If
End If
End If
Next
If liste.Count > 0 Then
Worksheets("Feuil2").Range("A7").Resize(liste.Count, 1) = Application.Transpose(liste.keys)
Worksheets("Feuil2").Range("B7").Resize(liste.Count, 1) = Application.Transpose(liste.items)
End If
End Sub
-----
Pour 2012 YTD du coup je supose qu'il fait que je dise quelque chose comme ca ? ou c'est complètement déconnant?
If target = "2012 YTD" then
year(cells3) = year(01/01/2012)
end if
Merci encore pour ton aide !