Changement de col pour trie spécial

  • Initiateur de la discussion Temjeh
  • Date de début
T

Temjeh

Guest
Bonjour

Hervé ma fait ceci(qui fonctionne tres bien) pour un trie spécial:

Sub Macro1()
Dim tablo As Variant
Dim tablosplit As Variant
Dim i As Integer
Dim j As Byte, k As Byte
Dim temp

tablo = Range('a1:a' & Range('a65536').End(xlUp).Row)
ReDim Preserve tablo(1 To UBound(tablo), 1 To 2)

For i = 1 To UBound(tablo)
tablosplit = Split(tablo(i, 1), ' ')
tablo(i, 2) = tablosplit(1)
Next i

For i = 1 To UBound(tablo)
For j = 1 To UBound(tablo)
If tablo(i, 2) < tablo(j, 2) Then
For k = 1 To 2
temp = tablo(i, k)
tablo(i, k) = tablo(j, k)
tablo(j, k) = temp
Next k
End If
Next j
Next i

For i = 1 To UBound(tablo)
Cells(i, 2) = tablo(i, 1)
Next i

End Sub

J'aimerais si possible aulieu de lire col A et mettre le trie en col B mettre col C et insére le trie en col D. J,ai essayé mais j'ai des erreurs.

Merci beaucoup

Temjeh
 

pat1545.

XLDnaute Accro
Salut,

pour comprendre, il faut lire le code ici:
ici on parle de la colonne A
tablo = Range('a1:a' & Range('a65536').End(xlUp).Row)

ici (cells,i,2) le 2 signifie 2 eme colonne, donc la B
For i = 1 To UBound(tablo)
Cells(i, 2) = tablo(i, 1)
Next i

à toi d'adapter sur une feuille d'essai pour essayer de comprendre comment ça se passe.
Bye
 
T

Temjeh

Guest
Désolé mais si vous pouvez encore me guider un peu.

Ceci fonctionne;

Sub Trie_Adresse()
Dim tablo As Variant
Dim tablosplit As Variant
Dim i As Integer
Dim j As Byte, k As Byte
Dim temp

tablo = Range('C1:C' & Range('C65536').End(xlUp).Row)
ReDim Preserve tablo(1 To UBound(tablo), 1 To 2)

Columns('D:D').Select
Selection.Insert Shift:=xlToRight

For i = 1 To UBound(tablo)
tablosplit = Split(tablo(i, 1), ' ')
tablo(i, 2) = tablosplit(1)
Next i

For i = 1 To UBound(tablo)
For j = 1 To UBound(tablo)
If tablo(i, 2) < tablo(j, 2) Then
For k = 1 To 2
temp = tablo(i, k)
tablo(i, k) = tablo(j, k)
tablo(j, k) = temp
Next k
End If
Next j
Next i

For i = 1 To UBound(tablo)
Cells(i, 4) = tablo(i, 1)
Next i

Columns('C:C').Select
Selection.Delete Shift:=xlToLeft

End Sub

Mais j'ai omis de dire que il doit faire suivre sa ligne avec lui

Tries les données de col C en col D (le code est bon trie bien col C) mais est-ce possible de faire suivre toute sa ligne? car j'ai des données qui sont associées à sa ligne de col A à I.

Merci

temjeh

Temjeh
 

Discussions similaires

Statistiques des forums

Discussions
312 343
Messages
2 087 440
Membres
103 546
dernier inscrit
mohamed tano