COMMENT COMPTER SANS LES DOUBLONS??

leo456

XLDnaute Nouveau
QUI POURRAIT TROUVER LA SOLUTION AU PROBLEME SUIVANT :


VOICI LES CELLULES A COMPTER:


UNE MAISON
UNE TABLE
UN LIT
UNE MAISON
UN LIT
UNE MAISON


RESULTAT: 1X MAISON
1X LIT
1 X TABLE



J AIMERAIS SAVOIR SI IL EXISTE UN MOYEN POUR COMPTER LES CELLULES SANS PRENDRE EN COMPTE LES DOUBLONS.
NOTER QUE JE NE PEUX PAS UTILISER LA FONCTION 'NBSI' CAR LA LISTE EN QUESTION CONTIENT 2000 CELLULES ET QUE CE SONT DES TITRES DE FILMS EXTREMENT VARIES...


MERCI D AVANCE A CELUI OU CELLE QUI AURAIT UNE PETITE SOLUTION!!!
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Leo, bonjour le forum,

Alors voilà après un cacul fort complexe dont je ne peux révéler ici l'ossature, l'armature et complexiture, je peux te garantir que, sans compter les doublons, tu n'en n'auras qu'un de chaque. Ne me remercie pas c'est tout naturel...

p.s. Sorry Leo comme mon pote José va mieux j'ai décidé de terminer ma grève de la déconne et quand j'ai lu ton post je n'ai pas pu m'empêcher.
 

soft

XLDnaute Occasionnel
Salut Léo, Robert, le Forum,

Je pense que Robert attend un peu plus de précision, tu nous dit que ton résultat doit être

1 x Maison
1 x lit
1 x table

Si je comprends l'explication que tu donnes, tu ne souhaite remplir une plage de cellules avec les données sans doublons, ce qui donneras :

Maison
Lit
Table

Alors en partant de l'idée que ta liste se trouve dans la colonne A et que tu souhaites ton résultat dans la colonne C (il faut un peu deviner...). Essaye cette macro :


Code:
Sub Liste()
    Dim i As Long, X As Long, Tableau() As String, Doublon As Boolean, t
    
    ReDim Tableau(1)
    
    'Effacements des résultats précédents
    If Range('C1') <> '' Then Range('C1:' & Range('C1').End(xlDown).Row).ClearContents
    
    For i = 1 To Range('A1').End(xlDown).Row
        Doublon = False
        For Each t In Tableau
            If t = Range('A' & i) Then Doublon = True
        Next t
        If Not Doublon Then
            X = X + 1
            ReDim Preserve Tableau(X + 1)
            Tableau(X) = Range('A' & i)
        End If
    Next i
    
    X = 1
    
    For Each t In Tableau
        If t <> '' Then
            Range('C' & X) = t
            X = X + 1
        End If
    Next t
    
End Sub

Edition : J'ai enfin trouvé comment mettre en forme le code ...

Message édité par: soft, à: 31/10/2005 15:29
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Leo, Soft, bonjour le forum,

Léo je suis désolé. j'ai l'impression que tu as mal pris mon intervention. Je promets qu'à l'avenir je ne risquerai plus jamais une vanne avect toi. Je serai bref car je cours me faire tatouer leo456 sur le front afin de ne jamais perdre de vue ton pseudo et tenir ma promesse.
 

Hervé

XLDnaute Barbatruc
Bonjour leo, robert, soft, michel

Leo, ne crie pas tu m'a réveillé en pleine sieste (les majuscules sur le net signifie : hurler à la mort)

Une autre solution VBA, en partant du meme postulat que soft :

Sub Bouton2_QuandClic()
Dim data As Collection
Dim c As Range
Dim i As Integer

Set data = New Collection

On Error Resume Next
For Each c In Range('a1:a' & Range('a65536').End(xlUp).Row)
&nbsp; &nbsp; data.Add c, CStr(c)
Next c
On Error GoTo 0

For i = 1 To data.Count
&nbsp; &nbsp; Cells(i, 3) = data(i)
Next i
End Sub

salut

PS : robert je suis mort de rire.

edition : il manquait un bout à la macro

Message édité par: Hervé, à: 31/10/2005 14:01
 

soft

XLDnaute Occasionnel
Sérieusement Léo, relis le titre de ta question et les explications que tu donnes.

On est disposés à t'aider mais on aprécie particulièrement 2 choses :

-Les questions bien posées (peut-être même un fichier exemple)

-De nous dire si la/les réponses conviennent

Edition:
Ben voilà Robert tu t'es pas trop foulé pour aateindre le 1000e
A ta place je remercierais Léo qui t'as bien aidé

Message édité par: soft, à: 31/10/2005 14:29
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Léo, Soft, Michel, Hervé, bonjour le forum,

Léo enfin tu me rassures. Je vois que t'as quand même un peu d'humour. Mais Soft a raison tu devrais les remercier à eux de t'avoir aider alors que je n'ai fait que déconner.


Édition

Yeah ! Ça y est ! deux heures que je ne raconte que des conneries pour devinir Accro... Je fais peter la bouteille de champ et la bois (oui tout seul ! quoi ?) à la santé de Lily, de Guy, de José en particulier et à celle de tous les membres de ce fabuleux site.
Je vous donne rendez-vous très bientôt dans le salon pour un
Lien supprimé...

Jean-Pierre gare à ta tête... tu frises la correctionnelle...


Message édité par: Robert, à: 31/10/2005 15:30
 

Discussions similaires

Statistiques des forums

Discussions
314 588
Messages
2 110 988
Membres
111 002
dernier inscrit
Lolo73i