Comparaison de lignes et cellules, code macro VBA

Yad

XLDnaute Nouveau
Bonjour à tous

Je suis toute débutante et autodidacte dans le codage de VBA et les macros excel...

Je souhaiterai obtenir de l'aide puisqu'il me semble que je fasse partie des rares débutants ddu forum.

Je vous explique le problème:

je souhaiterai comparter des lignes qui contiennent plusieurs informations différentes; certaines des valeurs peuvent être els memes mais j'aimerai signaler un MsgBox seulement si au moins deux cellules par lignes sont identiques.



Et éventuellement si possible me signaler lesquels??


Pensez vous que ce codage n'est pas trop compliqué?


Merci d'avance
 

Yad

XLDnaute Nouveau
Re : Comparaison de lignes et cellules, code macro VBA

ce n'était absolument pas pour dire que j'étais préssée; c'est juste que je en sais pas trop comment vous échangez...
Je me suis inscrite il y a moins d'une heure....


Je ne voulais pas brusquer, désolée...
 
G

Guest

Guest
Re : Comparaison de lignes et cellules, code macro VBA

Re,

Tu as moins d'une heure d'inscription. Alors patiente, ton tour viendra. Essaie de trouver sur le forum des sujets similaires et tente de les adapter à ton projet.

Si tu as des difficultés pour adapter, reviens avec une demande illustrant ta difficulté, un fichier exemple de ce que tu as et comment tu as tenté d'y répondre + un exemple de ce que tu souhaites obtenir.

A+
 

job75

XLDnaute Barbatruc
Re : Comparaison de lignes et cellules, code macro VBA

Bonjour Yad, salut Hasco,

Voyez le fichier joint avec la macro du bouton :

Code:
Private Sub CommandButton1_Click()
Dim plage As Range, t, h&, L%, s(), i&, j&, n As Byte, k%
Set plage = [B2:K31] 'à adapter
t = plage
h = UBound(t)
L = UBound(t, 2)
ReDim s(1 To 2) 'pour le stockage des 2 valeurs
For i = 1 To h - 1
  For j = i + 1 To h
    n = 0
    For k = 1 To L
      If Application.CountIf(plage.Rows(i), t(j, k)) Then
        n = n + 1: s(n) = t(j, k)
        If n = 2 Then
          MsgBox "Valeurs " & s(1) & " et " & s(2) & _
          " en lignes " & i & " et " & j, , "Doublons"
          Exit For
        End If
      End If
    Next
  Next
Next
End Sub
Je me suis contenté de lister les 2 premières valeurs faisant doublons (il peut évidemment y en avoir plus).

A+
 

Pièces jointes

  • Doublons de lignes(1).xls
    54 KB · Affichages: 57
Dernière édition:

job75

XLDnaute Barbatruc
Re : Comparaison de lignes et cellules, code macro VBA

Bonjour Yad, Hasco, le forum,

Maintenant avec cette macro tous les doublons (>1) sont listés :

Code:
Private Sub CommandButton1_Click()
Dim plage As Range, t, h&, L%, i&, j&, n As Byte, k%, s()
Set plage = [B2:K31] 'à adapter
t = plage
h = UBound(t)
L = UBound(t, 2)
For i = 1 To h - 1
  For j = i + 1 To h
    n = 0
    For k = 1 To L
      If Application.CountIf(plage.Rows(i), t(j, k)) Then
        ReDim Preserve s(n)
        s(n) = t(j, k)
        n = n + 1
      End If
    Next
    If n > 1 Then MsgBox "Valeurs :" & vbLf & _
    Join(s, vbLf), , " Doublons lignes " & i & " et " & j
  Next
Next
End Sub
Fichier (2).

A+
 

Pièces jointes

  • Doublons de lignes(2).xls
    55 KB · Affichages: 53

job75

XLDnaute Barbatruc
Re : Comparaison de lignes et cellules, code macro VBA

Re,

Avec les versions (1) et (2), s'il y a des doublons sur une ligne, ils peuvent être listés même s'ils n'apparaissent qu'une fois sur les autres lignes.

Cela est corrigé dans cette version (3) :

Code:
Private Sub CommandButton1_Click()
Dim plage As Range, t, h&, L%, i&, j&, n As Byte, k%
Dim x%, y As Variant, s()
Set plage = [B2:K31] 'à adapter
t = plage
h = UBound(t)
L = UBound(t, 2)
For i = 1 To h - 1
  For j = i + 1 To h
    n = 0
    ReDim s(0)
    For k = 1 To L
      x = Application.CountIf(plage.Rows(i), t(j, k))
      If x Then
        y = Application.Match(t(j, k), s, 0)
        If IsError(y) Or IsNumeric(y) And x > 1 Then
          ReDim Preserve s(n)
          s(n) = t(j, k)
          n = n + 1
        End If
      End If
    Next
    If n > 1 Then MsgBox "Valeurs :" & vbLf & _
    Join(s, vbLf), , " Doublons lignes " & i & " et " & j
  Next
Next
End Sub
A+
 

Pièces jointes

  • Doublons de lignes(3).xls
    55.5 KB · Affichages: 57

Discussions similaires

Statistiques des forums

Discussions
312 680
Messages
2 090 865
Membres
104 681
dernier inscrit
Gtcheumawe