rangement alphabetique d'un rajout avec une boucle

  • Initiateur de la discussion Initiateur de la discussion n3Twork
  • 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 !

n3Twork

XLDnaute Occasionnel
Bonjour partant du code de BDDfournisseursV31 je voudrai savoir si c possible de ranger chaque nouvel ajout de maniere alphabetique ?


Code:
Private Sub CommandButton4_Click()
Dim AjoutDansGroupe As Object
Dim NV As String
Dim ZT As Integer
Dim ZU As Integer
On Error GoTo fin

If UserForm8.ListBox2.Value = '' Then
MsgBox 'Un groupe de diffusion et une adresse email doivent etre sélectionnés . '
Exit Sub

Else
NV = UserForm8.nouvelleVal.Value
With Sheets('données').Rows(1)
Set AjoutDansGroupe = .Find(UserForm8.ListBox2, LookIn:=xlValues)
ZT = AjoutDansGroupe.Column
ZU = Sheets('données').Cells(1, ZT).End(xlDown).Row + 1
  
Sheets('données').Cells(ZU, ZT) = NV
UserForm8.ListBox3.AddItem (NV)
End With
End If
Exit Sub

fin:
If Err = 6 Then
ZU = 2
Resume Next
End If

Groupe = ''

End Sub
 
Re:rangement alphabetique d'un rajout avec une bou

re,
avant l'ajout dans la liste tu peux utiliser
Sheets('données').Range(cells(1,1),cells(zu,zt)).sort key:=xlDescending, orientation:=xlSortRows
Tri en ordre Décroissant suivant les lignes, j'ai pas vérifié où débute ta plage à trier !

Ciao
 
Re:rangement alphabetique d'un rajout avec une bou

bonsoir


tu peux tester cette adaptation


Private Sub CommandButton4_Click()
Dim AjoutDansGroupe As Object
Dim NewMail As String
Dim ZT As Integer, ZU As Integer
Dim Tableau() As String
Dim Valeur As Integer, i As Integer
Dim Cible As Variant

On Error GoTo Fin

If UserForm8.ListBox2.Value = '' Then
MsgBox 'Un groupe de diffusion et une adresse email doivent etre sélectionnés . '
Exit Sub

Else
NewMail = UserForm8.ListBox1
With Sheets('feuil5').Rows(1)
Set AjoutDansGroupe = .Find(UserForm8.ListBox2, LookIn:=xlValues)
ZT = AjoutDansGroupe.Column
ZU = Sheets('feuil5').Cells(65536, ZT).End(xlUp).Row

If ZU = 1 Then
UserForm8.ListBox3.AddItem NewMail
Sheets('feuil5').Cells(2, ZT) = NewMail
Exit Sub
End If

'recuperation données existante dans la liste de diffusion
For i = 0 To ZU - 2
ReDim Preserve Tableau(i + 1)
Tableau(i) = Sheets('feuil5').Cells(i + 2, ZT).Value
Next i

ReDim Preserve Tableau(i) 'ajout nouvelle donnée
Tableau(i) = NewMail

Do 'boucle pour trier le tableau
Valeur = 0
For i = 0 To UBound(Tableau) - 1
If Tableau(i) < Tableau(i + 1) Then
Cible = Tableau(i)
Tableau(i) = Tableau(i + 1)
Tableau(i + 1) = Cible
Valeur = 1
End If
Next i
Loop While Valeur = 1


UserForm8.ListBox3.Clear

For i = UBound(Tableau) To 0 Step -1 'alimentation après tri
UserForm8.ListBox3.AddItem Tableau(i)
Sheets('feuil5').Cells(UBound(Tableau) - i + 2, ZT) = Tableau(i)
Next i

End With
End If

Exit Sub
Fin:
If Err = 6 Then
ZU = 2
Resume Next
End If

Groupe = ''

End Sub




bonne soirée
MichelXld
 
Re:rangement alphabetique d'un rajout avec une bou

bonjour

effectivement si tu fais juste un copier/coller sans adapter les noms d'objets à ton classeur , ça ne risque pas de fonctionner

Private Sub CommandButton4_Click()
Dim AjoutDansGroupe As Object
Dim NewMail As String
Dim ZT As Integer, ZU As Integer
Dim Tableau() As String
Dim Valeur As Integer, i As Integer
Dim Cible As Variant

On Error GoTo Fin

If UserForm8.ListBox2.Value = '' Then
MsgBox 'Un groupe de diffusion et une adresse email doivent etre sélectionnés . '
Exit Sub

Else
NewMail = nouvelleVal
With Sheets('Données').Rows(1)
Set AjoutDansGroupe = .Find(UserForm8.ListBox2, LookIn:=xlValues)
ZT = AjoutDansGroupe.Column
ZU = Sheets('Données').Cells(65536, ZT).End(xlUp).Row

If ZU = 1 Then
UserForm8.ListBox3.AddItem NewMail
Sheets('Données').Cells(2, ZT) = NewMail
Exit Sub
End If

'recuperation données existante dans la liste de diffusion
For i = 0 To ZU - 2
ReDim Preserve Tableau(i + 1)
Tableau(i) = Sheets('Données').Cells(i + 2, ZT).Value
Next i

ReDim Preserve Tableau(i) 'ajout nouvelle donnée
Tableau(i) = NewMail

Do 'boucle pour trier le tableau
Valeur = 0
For i = 0 To UBound(Tableau) - 1
If Tableau(i) < Tableau(i + 1) Then
Cible = Tableau(i)
Tableau(i) = Tableau(i + 1)
Tableau(i + 1) = Cible
Valeur = 1
End If
Next i
Loop While Valeur = 1


UserForm8.ListBox3.Clear

For i = UBound(Tableau) To 0 Step -1 'alimentation après tri
UserForm8.ListBox3.AddItem Tableau(i)
Sheets('Données').Cells(UBound(Tableau) - i + 2, ZT) = Tableau(i)
Next i

End With
End If

Exit Sub
Fin:
If Err = 6 Then
ZU = 2
Resume Next
End If

Groupe = ''

End Sub




bonne journée
MichelXld
 
- 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

Discussions similaires

Réponses
5
Affichages
915
Réponses
7
Affichages
454
Réponses
4
Affichages
735
Réponses
10
Affichages
665
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour