NH000001000001 ap sc1 fp l6 l8 l12 ft2 pt2 expbd dco dne dnm dmi pff
NH000001000002 ap fond s12 sc1 fp l6 l8 ft2 cr52 c20 expt dsc dco dne
dnm pff
Comme j'ai 4000 articles comme ceux là, j'aimerai savoir si il existe un
moyen de transposer de la sorte des données initialement en colonnes, en
lignes.
Pour rappel De JB J'avais juste à modifier un paramètre : remplacer " For i = 2 to 30 " par "For i = 2 to 54776 "
Bonjour,
? tu veux dire quoi ?
Que JB commence son tri à la deuxième ligne
Francois L
? tu veux dire quoi ?
Que JB commence son tri à la deuxième ligne
Re,
Il s'agissait de Sébastien et non pas de JB... et ma macro traitait bien toutes les lignes, y compris la première, même si la boucle commençait à 2.
Sub transpose() ' Traitement ligne 1 Range("A1:B1").Copy Destination:=Range("C1:D1") ' Traitement des lignes suivantes cpt = 1 j = 5 For i = 2 To 30 If Range("A" & i).Value = Range("A" & i - 1).Value Then Cells(i, 2).Copy Destination:Îlls(cpt, j) Else cpt = cpt + 1 j = 4 Cells(i, 1).Copy Destination:Îlls(cpt, j - 1) Cells(i, 2).Copy Destination:Îlls(cpt, j) End If j = j + 1 Next i End Sub
-- François L
? tu veux dire quoi ?
Que JB commence son tri à la deuxième ligne
Re,
Il s'agissait de Sébastien et non pas de JB... et ma macro traitait bien
toutes les lignes, y compris la première, même si la boucle commençait à 2.
Sub transpose()
' Traitement ligne 1
Range("A1:B1").Copy Destination:=Range("C1:D1")
' Traitement des lignes suivantes
cpt = 1
j = 5
For i = 2 To 30
If Range("A" & i).Value = Range("A" & i - 1).Value Then
Cells(i, 2).Copy Destination:Îlls(cpt, j)
Else
cpt = cpt + 1
j = 4
Cells(i, 1).Copy Destination:Îlls(cpt, j - 1)
Cells(i, 2).Copy Destination:Îlls(cpt, j)
End If
j = j + 1
Next i
End Sub
Il s'agissait de Sébastien et non pas de JB... et ma macro traitait bien toutes les lignes, y compris la première, même si la boucle commençait à 2.
Sub transpose() ' Traitement ligne 1 Range("A1:B1").Copy Destination:=Range("C1:D1") ' Traitement des lignes suivantes cpt = 1 j = 5 For i = 2 To 30 If Range("A" & i).Value = Range("A" & i - 1).Value Then Cells(i, 2).Copy Destination:Îlls(cpt, j) Else cpt = cpt + 1 j = 4 Cells(i, 1).Copy Destination:Îlls(cpt, j - 1) Cells(i, 2).Copy Destination:Îlls(cpt, j) End If j = j + 1 Next i End Sub
-- François L
Fredo P.
Effectivement autant pour moi ,dans ce cas ,il suffit de changer une ligne Sub trans() Dim L1#, L2#, plg As Range, i % L1 = 1 While Cells(L1, 1) <> "" i = i + 1 L2 = Application.Match(Cells(L1, 1), [A:A], 0) Cells(i, 3) = Cells(L1, 1) L2 = Application.Match(Cells(L1, 1), [A:A], 1) Set plg = Range(Cells(L1, 2), Cells(L2, 2)) Range(Cells(i, 4), Cells(i, 4 + L2 - L1)) =Application.transpose(plg) L1 = L2 + 1 Wend End Sub L
Effectivement autant pour moi ,dans ce cas ,il suffit de changer une ligne
Sub trans()
Dim L1#, L2#, plg As Range, i %
L1 = 1
While Cells(L1, 1) <> ""
i = i + 1
L2 = Application.Match(Cells(L1, 1), [A:A], 0)
Cells(i, 3) = Cells(L1, 1)
L2 = Application.Match(Cells(L1, 1), [A:A], 1)
Set plg = Range(Cells(L1, 2), Cells(L2, 2))
Range(Cells(i, 4), Cells(i, 4 + L2 - L1))
=Application.transpose(plg)
L1 = L2 + 1
Wend
End Sub
L
Effectivement autant pour moi ,dans ce cas ,il suffit de changer une ligne Sub trans() Dim L1#, L2#, plg As Range, i % L1 = 1 While Cells(L1, 1) <> "" i = i + 1 L2 = Application.Match(Cells(L1, 1), [A:A], 0) Cells(i, 3) = Cells(L1, 1) L2 = Application.Match(Cells(L1, 1), [A:A], 1) Set plg = Range(Cells(L1, 2), Cells(L2, 2)) Range(Cells(i, 4), Cells(i, 4 + L2 - L1)) =Application.transpose(plg) L1 = L2 + 1 Wend End Sub L
Fredo P.
oups! toujours sous la condition du tri par ordre croissant des deux colonnes. Sub trans() Dim L1#, L2#, plg As Range, i % L1 = 1 While Cells(L1, 1) <> "" i = i + 1 L1 =Application.Match(Cells(L1, 1), [A:A], 0) Cells(i, 3) = Cells(L1, 1) L1 = L1 + (L1 = 2) L2 = Application.Match(Cells(L1, 1), [A:A], 1) Set plg = Range(Cells(L1, 2), Cells(L2, 2)) Range(Range(Cells(i, 4), Cells(i, 4 + L2 - L1)).Address) Application.transpose(plg) L1 = L2 + 1 Wend End Sub
oups!
toujours sous la condition du tri par ordre croissant des deux colonnes.
Sub trans()
Dim L1#, L2#, plg As Range, i %
L1 = 1
While Cells(L1, 1) <> ""
i = i + 1
L1 =Application.Match(Cells(L1, 1), [A:A], 0)
Cells(i, 3) = Cells(L1, 1)
L1 = L1 + (L1 = 2)
L2 = Application.Match(Cells(L1, 1), [A:A], 1)
Set plg = Range(Cells(L1, 2), Cells(L2, 2))
Range(Range(Cells(i, 4), Cells(i, 4 + L2 - L1)).Address) Application.transpose(plg)
L1 = L2 + 1
Wend
End Sub
oups! toujours sous la condition du tri par ordre croissant des deux colonnes. Sub trans() Dim L1#, L2#, plg As Range, i % L1 = 1 While Cells(L1, 1) <> "" i = i + 1 L1 =Application.Match(Cells(L1, 1), [A:A], 0) Cells(i, 3) = Cells(L1, 1) L1 = L1 + (L1 = 2) L2 = Application.Match(Cells(L1, 1), [A:A], 1) Set plg = Range(Cells(L1, 2), Cells(L2, 2)) Range(Range(Cells(i, 4), Cells(i, 4 + L2 - L1)).Address) Application.transpose(plg) L1 = L2 + 1 Wend End Sub
Fredo P.
Il s'agissait de Sébastien et non pas de JB... Avec Tunderbird le premier post de cette discussion est de JB à 18H55 le
suivant est de Seb à 19H04 . C'est ce qui m'a "gouré".
Il s'agissait de Sébastien et non pas de JB...
Avec Tunderbird le premier post de cette discussion est de JB à 18H55 le
suivant est de Seb à 19H04 . C'est ce qui m'a "gouré".