Comparaison en VBA

Bonjour

je travail sur un projet un peu compliqué ou je dois comparer 5 colonnes a d'autre 5 colonnes comme dans cette photo exemple

lsaqcbh

le principe c'est de comparer les fonctionnalitées entre les deux releases et dans le resultats on aura les nouvelles fonctionnalitées qui existent dans le release2 et qui n'existent pas dans le release 1 en affichant aussi les communautées qui utilisent ces nouvelles fonctionnalitées avec le pourcentage de leur PNR dependant de du Total PNRS , je galére a trouver une solution vu que je suis un debutant en VBA , c'est la premiere fois que je participe dans le forum j'espere que vous m'aidiez ,

voici le fichier sur lequel je travaille : https://www.cjoint.com/c/FErnTFqR0tv

merci d'avance

Bonsoir,

Afin de nous faciliter la tâche et de nous permettre de répondre précisément à tes demandes,

Ajoute sur ton fichier d'exemple, les résultats attendus.

Merci

Bonsoir

je vous remercie pour votre reponse rapide , voila le fichier avec un exemple de resultat , dans le resultats je dois afficher les nouvelles fonctionnalitées dans le deuxieme release dans une colonne et dans l autre colonne je dois afficher les communautées qui utilisent cette fonctionnalitées avec le pourcentage de leurs PNRS parraport au total_PNRS , voila le fichier: https://www.cjoint.com/c/FErpmbl7Uav

si vous pouvez m'aider je vous remercie

Bonsoir,

Un début de solution peut être.

18comparaison01.xlsm (17.68 Ko)

Bonjour Bernard

Merci a vous pour votre effort ca marche tres bien parcontre le resultat se répéte deux fois , comment faire pour enlever la répitition ?

Bonjour Mateos

Bonjour Bernard22

Ci joint le code à remplacer dans le module 1

Sub results()
Derl1 = Range("A" & Rows.Count).End(xlUp).Row
Derl2 = Range("G" & Rows.Count).End(xlUp).Row
TotalPNR = 0
For i = 3 To Derl2
    TotalPNR = TotalPNR + Range("J" & i)
Next i

ligne = 3

For J = 3 To Derl2
    ok = 1
    For i = 3 To Derl1
        If Range("I" & J) = Range("C" & i) Then
        ok = 0
        End If
    Next i
   If ok = 1 Then
   '
    mot = Range("I" & J)

'ok
    phrase = ""
    For k = 3 To Derl2
        If Range("I" & k) = mot Then
            phrase = phrase & Range("G" & k) & " pourcentage PNR:" & Format((Range("J" & k) * 100 / TotalPNR), "0.00") & "%" & ";"
        End If
    Range("N" & ligne) = mot
    Range("O" & ligne) = phrase

    Next k
    ligne = ligne + 1
   End If

Next J
End Sub

Bonjour M12

merci a vous aussi pour votre aide , mais il y a aussi le meme probleme le reultat se repete deux foix j'arrive pas a trouver d'ou viens ce bug .

Re,

Teste avec celui là

Sub results()
Derl1 = Range("A" & Rows.Count).End(xlUp).Row
Derl2 = Range("G" & Rows.Count).End(xlUp).Row
TotalPNR = 0
For i = 3 To Derl2
    TotalPNR = TotalPNR + Range("J" & i)
Next i

ligne = 3

For J = 3 To Derl2
    ok = 1
    For i = 3 To Derl1
        If Range("I" & J) = Range("C" & i) Then
        ok = 0
        End If
    Next i
   If ok = 1 Then
   '
    mot = Range("I" & J)

'ok
    phrase = ""
    For k = 3 To Derl2
        If Range("I" & k) = mot Then
            phrase = phrase & Range("G" & k) & " pourcentage PNR:" & Format((Range("J" & k) * 100 / TotalPNR), "0.00") & "%" & ";"
        End If
            If Range("N" & ligne - 1) <> mot And Range("O" & ligne - 1) <> phrase Then
                Range("N" & ligne) = mot
                Range("O" & ligne) = phrase
                Else
                ligne = ligne - 1
            End If
    Next k
    ligne = ligne + 1
   End If

Next J
End Sub
Rechercher des sujets similaires à "comparaison vba"