Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

traitement de données dans un tableau

2 réponses
Avatar
vincerig
Bonjour,

ma première difficulté consiste à formaliser mon problème (d'ou un titre hper générique).
Donc bien mieux qu'un long discour, je souhaite trouver un moyen de convertir le tableau 1 en tableau 2

Tableau 1 :
nom action
A U
A V
B W
C X
C Y
C Z

Tableau 2 :
nom action action action
A U V
B W
C X Y Z

Merci de votre aide

2 réponses

Avatar
FFO
Salut à toi
Soit Feuil1 colonne A et B les données source, Feuil2 colonne A le résultat
Je te propose ce code :

Do While Sheets("Feuil1").Range("A1").Offset(i, 0).Row <
Sheets("Feuil1").Range("A65535").End(xlUp).Row + 1
If Sheets("Feuil1").Range("A1").Offset(i, 0) =
Sheets("Feuil1").Range("A1").Offset(i + 1, 0) Then
Donnée = Donnée & " " & Sheets("Feuil1").Range("B1").Offset(i, 0)
Else
Donnée = Sheets("Feuil1").Range("A1").Offset(i, 0) & Donnée & " " &
Sheets("Feuil1").Range("B1").Offset(i, 0)
Sheets("Feuil2").Range("A65535").End(xlUp).Offset(1, 0) = Donnée
Donnée = ""
End If
i = i + 1
Loop

Celà devrait convenir
Dis moi !!!
Avatar
FFO
Rebonjours à toi

Ma première proposition ramène le résultat sur 1 colonne (colonne A) Feuil2
Je te propose cette 2° version qui ramène le résultat sur plusieurs colonnes
en feuil2
Toujours Colonne A et B Feuil1 les données

Le code :

j = 1
Do While Sheets("Feuil1").Range("A1").Offset(i, 0).Row <
Sheets("Feuil1").Range("A65535").End(xlUp).Row + 1
If Sheets("Feuil1").Range("A1").Offset(i, 0) =
Sheets("Feuil1").Range("A1").Offset(i + 1, 0) Then
Sheets("Feuil2").Range("A65535").End(xlUp).Offset(1, j) =
Sheets("Feuil1").Range("B1").Offset(i, 0)
j = j + 1
Else
Sheets("Feuil2").Range("A65535").End(xlUp).Offset(1, j) =
Sheets("Feuil1").Range("B1").Offset(i, 0)
Sheets("Feuil2").Range("A65535").End(xlUp).Offset(1, 0) =
Sheets("Feuil1").Range("A1").Offset(i, 0)
j = 1
End If
i = i + 1
Loop

Peut être mieux
Dis moi !!!