Classement automatique

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

maval

XLDnaute Barbatruc
Bonjour et bon dimanche à tous,

J'ai une feuille avec dans les cellules des des valeurs de "A4:L1000" que je rentre a l'aide d'un formulaire par la ligne "A4" et j'aimerai que les lignes se mette par ordre croissant automatiquement "A, B,C ect..." par apport a la colonne "A"

je joint mon fichierpour exemple

Je vous remercie d'avance

Cordialement

Max
 

Pièces jointes

Re : Classement automatique

Bonjour,
autrement dit tu veux effectuer un tri croissant si je comprends bien. Si c'est bien le cas, tu peux :
- utiliser la propriété Range.CurrentRegion pour définir ta plage de cellule (pas obligé mais utile dans certains cas).
- utiliser la méthode Range.Méthode pour effectuer le tri.
Regarde ici sur le site de Jacques Boisgontier un exemple d'utilisation de cette méthode (regarde la partie Tri en VBA avec 1 exemple de tri 1 critère et un autre de tri 2 critères).
A+
 
Dernière édition:
Re : Classement automatique

Bonjour Maval,

Essayer ce code dans le module de Feuil1:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lmax As Long
If Not Intersect(Target, Range("A4:A" & Rows.Count)) Is Nothing Then
  lmax = Cells(Rows.Count, "a").End(xlUp).Row
  If lmax > 4 Then Range("A4:L" & lmax).Sort key1:=Range("A4"), order1:=xlAscending, Header:=xlNo
End If
End Sub
 
Re : Classement automatique

Bonjour mapomme

J'ai un petit souci quand je rentre les infos par mon formulaire sa m'efface une ligne

Je joint le fichier avec le formulaire

Merci @+

Max
 

Pièces jointes

Re : Classement automatique

(re)

Essayer le code suivant (ôter la procédure évènementielle Worksheet_Change dans Feuil1 -> cf post #3)
VB:
Private Sub CommandButton1_Click()
Dim Ctrl As Control, L As Long, i As Long

  With Sheets("Feuil1")
    L = .Range("A65000").End(xlUp).Row + 1
    If L < 4 Then L = 4
    For i = 1 To 12
      .Cells(L, i) = Me.Controls("TextBox" & i)
    Next i
    If L > 4 Then .Range("A4:L" & L).Sort key1:=.Range("A4"), order1:=xlAscending, Header:=xlNo
  End With
End Sub
 

Pièces jointes

Dernière édition:
- 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
4
Affichages
378
Réponses
12
Affichages
722
Réponses
22
Affichages
1 K
Retour