DOUBLONS BIS

Signaler
Messages postés
34
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
16 mars 2008
-
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
-
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.

Voila mon debut de code
Mais à l'execution il ne se passe vraiment rien
Pouvez vous maider !!!!!!!!!!!!!!!!

Private Sub comparaison()
  If ComboBox1.Value <> "" And ComboBox2.Value <> "" Then

        Worksheets(CStr(Me.ComboBox2)).Activate
        Range("F5").Select
       
       

    Dim Plage As Range
    Dim Tableau(), Resultat() As String
    Dim k As Integer, j As Integer, m As Integer
    Dim Un As Collection
    Dim Doublons As String
       
    Set Un = New Collection
    'La plage de cellules à tester
    Set Plage = Range("F5:F" & Range("A65536").End(xlUp).Row)
     
   
Dim comp, comp16
Dim comp1, comp10
Dim comp2, comp11
Dim comp3, comp12
Dim comp4, comp13
Dim comp5, comp14
Dim comp6, comp15

    Dim MaCellule As Range, i As Long, msg As String
    Dim FirstCell As String, ValeurRecherche As Variant
    With ActiveCell
        ValeurRecherche = .Value
        FirstCell = .Address
    End With
    If ValeurRecherche = "" Then
        msg = "Impossible de faire une recherche a partir d'une cellule vide. "
    Else
        i = 0
        With Worksheets(CStr(Me.ComboBox2))
          For Each MaCellule In Plage
            If MaCellule.Value = ValeurRecherche And MaCellule.Address <> FirstCell Then
             
             
                comp = ActiveCell.Offset(0, 8).Value + MaCellule.Offset(0, 8).Value
               comp1 = ActiveCell.Offset(0, 9).Value + MaCellule.Offset(0, 9).Value
               comp2 = ActiveCell.Offset(0, 10).Value + MaCellule.Offset(0, 10).Value
               comp3 = ActiveCell.Offset(0, 11).Value + MaCellule.Offset(0, 11).Value
               comp4 = ActiveCell.Offset(0, 12).Value + MaCellule.Offset(0, 12).Value
               comp5 = ActiveCell.Offset(0, 13).Value + MaCellule.Offset(0, 13).Value
               comp6 = ActiveCell.Offset(0, 14).Value + MaCellule.Offset(0, 14).Value
             
              For j = 5 To 500
             
              Sheets("variations").Range("A& j").Value = MaCellule.Value
                      
               ActiveCell.Offset(0, 8).Value = comp
               ActiveCell.Offset(0, 9).Value = comp1
               ActiveCell.Offset(0, 10).Value = comp2
               ActiveCell.Offset(0, 11).Value = comp3
               ActiveCell.Offset(0, 12).Value = comp4
               ActiveCell.Offset(0, 13).Value = comp5
               ActiveCell.Offset(0, 14).Value = comp6
              
            Next
      
                i = i + 1
            End If
        Next
        End With
       
          With Worksheets(CStr(Me.ComboBox1))
          For Each MaCellule In Plage
   
            If MaCellule.Value = ValeurRecherche And MaCellule.Address <> FirstCell Then
             
             
                comp10 = ActiveCell.Offset(0, 8).Value + MaCellule.Offset(0, 8).Value
               comp11 = ActiveCell.Offset(0, 9).Value + MaCellule.Offset(0, 9).Value
               comp12 = ActiveCell.Offset(0, 10).Value + MaCellule.Offset(0, 10).Value
               comp13 = ActiveCell.Offset(0, 11).Value + MaCellule.Offset(0, 11).Value
               comp14 = ActiveCell.Offset(0, 12).Value + MaCellule.Offset(0, 12).Value
               comp15 = ActiveCell.Offset(0, 13).Value + MaCellule.Offset(0, 13).Value
               comp16 = ActiveCell.Offset(0, 14).Value + MaCellule.Offset(0, 14).Value
             
              For j = 5 To 500
             
              Sheets("variations").Range("A& j").Value = MaCellule.Value
                      
               ActiveCell.Offset(0, 8).Value = comp - comp10
               ActiveCell.Offset(0, 9).Value = comp1 - comp11
               ActiveCell.Offset(0, 10).Value = comp2 - comp12
               ActiveCell.Offset(0, 11).Value = comp3 - comp13
               ActiveCell.Offset(0, 12).Value = comp4 - comp14
               ActiveCell.Offset(0, 13).Value = comp5 - comp15
               ActiveCell.Offset(0, 14).Value = comp6 - comp16
              
            Next
   
                i = i + 1
            End If
        Next
        End With
          

    End If
 

End If

Unload comparaison

Sheets("Variations").Select

Merci de votre aide

1 réponse

Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Je vais ici me contenter de ceci :

Quand vas-tu enfin poser tes questions dans la section adéquate ???

La remarque t'en as d'ailleurs été faite, non ?

Citation de PCPT (6 mars) :

salut,
pense au bouton "réponse acceptée" sur la ou les réponses qui ont résolu ton problème

ps : attention à la rubrique, ici en VB6? pas VBA normalement?!!!