Bonsoir Monique, Nadia, Jacques, le Forum
Je savais bien que tu viendrais dans ce Fil Monique je l'avais prédis le 12/03/2006 à 17:37
Pour la différence entre VBA et les Formules, la première toute simple c'est qu'Excel se débrouillait tout seul avec ses Formules dès le début, jusqu'à Excel 4, là où il est apparu des 'Macros Functions'... VBA est arrivé bien plus tard...
VBA est du Visual Basic pour Application, c'est un language de programmation assez puissant. Il permet de modeler à la carte tout ce qui n'a pas été prévu en standard par Excel et ses outils intégrés... On peut facilement palier à des lacunes (tant niveau connaissance et maîtrise d'Excel, que tant au niveau de ce qui n'existe pas dans Excel) quand on connait bien le VBA sous Excel...
Dans le cas présent, si les fonctions dont Monique a le secret peuvent répondre à ton besoin, alors il n'est pas vraiment primordial de passer par VBA... Au contraire même, il faut essayer de privilégier tout ce que l'on peut faire sans VBA !
Mais sinon, voici la même procédure modifiée pour travailler sur des 'Fruits' en colonne 'B' et reporter leur dénombrement en Colonne 'A' :
Option Explicit
Sub TheNumeroteur()
Dim Plage As Range, Cell As Range
Dim ColPlage As Collection
Dim ItemUnique As Variant
Dim Counter As Integer
Set Plage = Range(Range('B2'), Range('B65536').End(xlUp))
Set ColPlage = New Collection
For Each Cell In Plage
On Error Resume Next
ColPlage.Add Cell, Cell
On Error GoTo 0
Next
For Each ItemUnique In ColPlage
For Each Cell In Plage
If ItemUnique = Cell Then
Counter = Counter + 1
Cell.Offset(0, -1) = Counter
End If
Next
Counter = 0
Next
End Sub
Je n'ai eu à changer que deux choses :
Ici :
Set Plage = Range(Range('
B2'), Range('
B65536').End(xlUp))
Et ici :
Cell.Offset(0,
-1) = Counter
Bonne Soirée
[ol]@+Thierry[/ol]
PS mais sinon me très chère Monique je reste toujours admiratrif de tes :
=SI(NB.SI(B$2:B2;B2)>1;'';1+MAX(D$1
1))
Et sans oublier lr petit SummProd
=SOMMEPROD(1/NB.SI(B$2:B$17;B$2:B$17))