Modifier macro - Range au lieu de Active Cell

Le
Christophe
Bonjour:

J'ai trouv une macro qui permet de trier par ordre alphabetiques les
mots-chaines de caractres spars par des virgules l'intrieur
d'une cellule. Cette macro prend en compte la cellule active.
J'aimerais pouvoir la modifier afin q"'elle agisse sur la plage de
cellules Range("AE2:AE" & [AE2].End(xlDown).Row)

Merci par avance de votre aide.

Christophe

Sub TriCellule()
'
' TriCellule Macro
' La fonction Split transforme une chane en tableau
' La fonction Join fait l'inverse
'
Dim Chn As String, Tri As Boolean, I As Integer, Tmp As String
Chn = ActiveCell.Text
If Chn = "" Then Exit Sub
TbChn = Split(Chn, ",")
If UBound(TbChn) > 0 Then
Do
Tri = False
For I = 1 To UBound(TbChn)
If TbChn(I) < TbChn(I - 1) Then
Tmp = TbChn(I - 1)
TbChn(I - 1) = TbChn(I)
TbChn(I) = Tmp
Tri = True
End If
Next
Loop While Tri = True
Chn = Join(TbChn, ",")
ActiveCell.Value = Chn
End If
'
End Sub
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #5446501
Bonjour,

Sub TriChamp()
For Each c In Range("AE2:AE" & [AE2].End(xlDown).Row)
temp = Split(c, ",")
For I = LBound(temp) To UBound(temp)
For j = I To UBound(temp)
If temp(j) < temp(I) Then
tempo = temp(j)
temp(j) = temp(I)
temp(I) = tempo
End If
Next j
Next I
c.Value = Join(temp, ",")
Next c
End Sub

JB


On 9 avr, 10:33, Christophe
Bonjour:

J'ai trouvé une macro qui permet de trier par ordre alphabetiques les
mots-chaines de caractères séparés par des virgules à l'intérieu r
d'une cellule.  Cette macro prend en compte la cellule active.
J'aimerais pouvoir la modifier afin q"'elle agisse sur la plage de
cellules Range("AE2:AE" & [AE2].End(xlDown).Row)

Merci par avance de votre aide.

Christophe

Sub TriCellule()
'
' TriCellule Macro
' La fonction Split transforme une chaîne en tableau
' La fonction Join fait l'inverse
'
Dim Chn As String, Tri As Boolean, I As Integer, Tmp As String
Chn = ActiveCell.Text
If Chn = "" Then Exit Sub
TbChn = Split(Chn, ",")
If UBound(TbChn) > 0 Then
Do
Tri = False
For I = 1 To UBound(TbChn)
If TbChn(I) < TbChn(I - 1) Then
Tmp = TbChn(I - 1)
TbChn(I - 1) = TbChn(I)
TbChn(I) = Tmp
Tri = True
End If
Next
Loop While Tri = True
Chn = Join(TbChn, ",")
ActiveCell.Value = Chn
End If
'
End Sub


Christophe
Le #5446471
Bonjour JP:

Très fort. Merci.

Christophe
Publicité
Poster une réponse
Anonyme