COMPARER DES DONNEES

H

Halo

Guest
Bonjour,
Je souhaite adapter la fonction transposer les valeurs stockées dans une colonne vers une ligne.

Dans la colonne n d'un tableau se suivent plusieurs valeurs parfois identiques.
Dans la colonne n+1 en face de chacunes des valeurs de la colonne n se trouvent une valeur résultat. Cette valeur peut-être différente d'une ligne à l'autre même si la valeur de la colonne n est identique.

En fait je souhaite pouvoir transposer de colonne vers ligne les valeurs de la colonne n+1 dès que je détecte que la valeur de la colonne n change.

Pour une meilleur compréhension voir exemple ci-après
n n+1
1 A
1 A
1 B
1 C
3 F
4 D
4 A
5 C

Résultat
n n+1
1 A A B C
1
1
1
3 F
4 D A
5 C


Merci d'avance
 
M

myDearFriend

Guest
Bonsoir Halo,


Ci-dessous une proposition pour résoudre ton problème :

Sub Regroupement()
Dim TabTemp As Variant
Dim V As Variant
Dim L As Long, Ligne As Long, VL As Long
Dim ColDepart As Integer, C As Integer
   'Définition de la colonne de départ (colonne n)
   ColDepart = 1
   With ActiveSheet
      'Mémorisation de l'ensemble des données
      L = .Range("A65536").End(xlUp).Row
      TabTemp = .Range(.Cells(1, ColDepart), .Cells(L, ColDepart + 1)).Value
      'Mémorisation de la première donnée et ligne associée
      V = TabTemp(1, 1)
      VL = 1
      'Pour chaque ligne suivante
      For Ligne = 2 To UBound(TabTemp, 1)
         'La valeur a t'elle changé ?
         If TabTemp(Ligne, 1) = V Then
            'Si non
            C = .Cells(VL, 256).End(xlToLeft).Column + 1
            .Cells(VL, C).Value = TabTemp(Ligne, 2)
            .Cells(Ligne, ColDepart + 1) = ""
         Else
            'Si oui
            V = TabTemp(Ligne, 1)
            VL = Ligne
         End If
      Next Ligne
   End With
End Sub


Cordialement.

Didier_mDF
myDearFriend-3.gif
 

Discussions similaires

Réponses
15
Affichages
429

Statistiques des forums

Discussions
312 414
Messages
2 088 230
Membres
103 775
dernier inscrit
CriCri92