Gestion des doublons [Résolu]

Messages postés
34
Date d'inscription
jeudi 19 juillet 2007
Dernière intervention
16 mars 2008
- 10 mars 2008 à 19:21 - Dernière réponse :
Messages postés
34
Date d'inscription
jeudi 19 juillet 2007
Dernière intervention
16 mars 2008
- 12 mars 2008 à 18:50
Bonjour,

J'aimerais faire la macro suivante :

Selection de  2 feuilles via une combobox
Puis à l'aide de la selection on va se positionner sur la première feuille sur la colonne F et chercher les doublons.
Pour les valeurs avec doublons on fait la somme des lignes des colonnes H,I et J indépendamment.
Pour les valeurs sans doublons on conserve les valeurs des colonnes H,I et J

Ensuite
on fait pareil sur la deuxième feuille (qui contient les mêmes codes
que la première feuille dans la colonne F mais pas les mêmes valeurs
dans H, I et J)

Enfin on soustrait les valeurs des 2 feuilles sur les colonnes H,I et J correspondant aux mêmes codes dans la colonne F.

J'ai commencer mon code uniquement pour identifier les doublons mais pour le reste je suis un peu concé mai je continue de chercher
Quelqu'un aurait des idées.............

Sub test  ()
Dim celluleTrouvee As Range
Dim FirstCell As String

If IsEmpty(ActiveCell) Then
MsgBox "Pas de recherche sur une cellule vide."
Exit Sub
End If
FirstCell = ActiveCell.Address
Set celluleTrouvee = Worksheets(""). _
Range("A1:C150").Find(What:=ActiveCell. _
Value, After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext)
celluleTrouvee.Activate
If ActiveCell.Address = FirstCell Then
MsgBox "Il n'y a pas de doublon correspondant à cette valeur."
Exit Sub
End If
MsgBox ActiveCell.Address & " est un doublon."
Do While Not (celluleTrouvee Is Nothing)
Set celluleTrouvee = Worksheets("Feuil1"). _
Range("A1:C150").FindNext(ActiveCell)
celluleTrouvee.Activate
If ActiveCell.Address = FirstCell Then
Set celluleTrouvee = Nothing
Exit Do
End If
MsgBox ActiveCell.Address & " est un doublon."
Loop
MsgBox "Fin de recherche."
End Sub
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Dernière intervention
20 novembre 2013
- 11 mars 2008 à 07:18
3
Merci
Salut,


ta methode me semble compliquee et risquee car la fonction find ne marche que dans un sens soit ligne soit colonne mais pas les 2. Ors ta plage vas de A1 a C150. De plus un find qui ne trouve rien plante le code si tu n' as pas prevu le coup ce qui est ton cas. Donc les lignes qui contiennent find ou findnext doivent etre precedees de On Error Resume Next.

Ce que je te propose c' est une autre methode que voici:

Sub test()
    Dim MaCellule As Range, i As Long, msg As String
    Dim FirstCell As String, ValeurRecherche As Variant
    With ActiveCell
        ValeurRecherche = .Value 'ici le point est OBLIGATOIRE !
        FirstCell = .Address 'ici le point est OBLIGATOIRE !
    End With
    If ValeurRecherche = "" Then
        msg = "Impossible de faire une recherche a partir d'une cellule vide. "
    Else
        i = 0
        With Worksheets("Feuil1") ' ici tu peux remplacer feuil1 par Userform1.Combobox1.value
          For Each MaCellule In .Range("A1:C150") 'pour chaque cellule de la plage A1:C150
            'si la valeur de la cellule est = a la valeur recherchee et que ce n' est pas la cellule active
            If MaCellule.Value = ValeurRecherche And MaCellule.Address <> FirstCell Then
                MaCellule.Value = "" 'alors on efface
                i = i +1 'et on compte le nombre de cellule effacee
            End If
        Next
        End With
        If i > 0 Then
            msg = i & " doublon(s) de la cellule " & FirstCell & " a(ont) ete supprime(s). "
        Else
            msg = "Aucun doublon de la cellule " & FirstCell & " n'a ete trouve. "
        End If
    End If
    MsgBox msg, vbInformation, "Fin de recherche."
End Sub

Vala

A+

Merci bigfish_le vrai 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de bigfish_le vrai
Messages postés
34
Date d'inscription
jeudi 19 juillet 2007
Dernière intervention
16 mars 2008
- 12 mars 2008 à 18:50
0
Merci
salut big fig je suis ok pour ta methode mais mais coeur de problème reside ensuite sur le fait que le doi faire la somme de ligne qui ont des doublons et çà je débute et je sais vraiment pas le faire!!!!!

AURAIS TU des idées??????

Merci d'avance.....
Commenter la réponse de freshyback

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.