Changement de col pour trie spécial

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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😀').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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
8
Affichages
271
Réponses
4
Affichages
581
Réponses
2
Affichages
187
Réponses
5
Affichages
712
Réponses
3
Affichages
837
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
218
Réponses
8
Affichages
652
Réponses
10
Affichages
533
Retour