Merci pour ce magnifique tuto, c'est fortement utile pour traiter en VBA les différentes manières de tri d'un tableau
7 жыл бұрын
Merci à vous mon Cher Abdelaziz
@GeorgeBander7 жыл бұрын
C'est super ça aussi !!! Trier avec le système macro, est très original !! Merci une fois de plus pour cet excellent tuto !!! Bonne soirée cher professeur !!! Repos pour moi, pendant quelques jours, je vais en profiter pour regarder plein de petites choses !! A bientôt !!!
7 жыл бұрын
Vous avez déjà eu le temps de faire les deux ? Vous êtes impressionnant ! Profitez bien de votre repos mon cher Gérard.
@GeorgeBander7 жыл бұрын
Bien évidemment cher professeur, il est arrivé juste après mon premier commentaire, et j'ai "sauté" dessus immédiatement ! Merci !!
@yayaouattara76737 жыл бұрын
Merci professeur moi j ai enregistrer une macro qui me permet de importer des données de classeur excel contenant des données provenant des mes bureaux annexes dans une base excel ou chaque colonne représente un bureau ce qui marche bien SAUF que je suis obliger de revenir saisir la colonnes "A" ou "B" ou "C" dans le macro a chaque fois que je veux importer je voudrais un macro ou je pourrai passer directement a la colonne suivante ou la colonne ou j aurai sélectionné manuellement avec le curseur
7 жыл бұрын
Bonjour difficile de vous répondre comme ça et d'imaginer le processus, je pense que le code VBA est sans doute les plus approprié pour pointer sur les bureaux annexes et remplir les colonnes suivantes en mémorisant les dernières qui ont été renseignées afin d'en incrémenter l'indice.
@yayaouattara76737 жыл бұрын
EFFECIVEMNT XA POURRAI M AIDER
@romlef5267 жыл бұрын
Bonjour, j'ai une petite question, dans le tri A-Z ou Z-A dans vba qui sont xlAscendig ou Xldescendig, est il possible de remplacer ces termes dans le code par une case à cocher !!! admettons que je mette dans une page excel 2 cases à cocher AZ et l'autre ZA ! est il possible de remplacer les xlascendig dans vba par la case adéquat ??? dommage que le code généré par excel pour l'enregistrement des macros soit mal optimisé car sinon le code en lui même est pas fait !!! excellente vidéo une fois de plus !!!! bonne soirée à vous
7 жыл бұрын
Oui tout à fait Rom Lef mais cela implique à mon sens un code VBA associé qui reprend l'ensemble des instructions et qui définit xlAscending lorsqu'une case est cochée et xlDescending lorsque c'est l'autre, si possible avec une procédure externe à laquelle on passe en paramètre, celui de la case cochée, qui par une instruction If ne change que le tri et garde le reste du code, en peu comme les select case de ce tuto pour faire varier les tris du tableau. Très bonne soirée à vous aussi
@romlef5267 жыл бұрын
oui ça reste assez complexe à mettre en oeuvre !!!! merci de votre réponse, @bientôt :)
@blabla1994984 жыл бұрын
Bonjour comme je ne connais pas le nombre de ligne je fais SortFields.Add2 Key:=Range("C:C" _ ) et With ActiveWorkbook.Worksheets("Feuil2").Sort .SetRange Range("A:C") Ma question est comment faire pour laisser vide la première ligne pour que je puisse mettre par la suite les noms de mes colonnes?
@blabla1994984 жыл бұрын
C'est bon j'ai trouvé une solution.
4 жыл бұрын
Pardonnez moi pour le retard de réponse. Oui vous avez replacé Add2 par Add ?
@@blabla199498 Très bien, bravo pour avoir trouvé le correctif adapté à votre cas
@jpm312007 жыл бұрын
Bonjour Stéphane, J'ai une question, est-il possible de faire un tri sur une variable tableau ??? Jean-Pierre MENDEZ lol
7 жыл бұрын
Tout à fait avec la méthode Sort de la classe Array : Array.Sort(nom_de_votre_tableau) Bonne soirée Jean Pierre Mendez ;)
@jpm312007 жыл бұрын
Super je vais tester !!!!
@jpm312007 жыл бұрын
Au secours Stéphane !!! J’ai essayé comme vous me l’avez indiqué la méthode Array.sort(MonTableau), et le Grand Mendez est dans les choux. J’ai repris l’exemple du tuto, j’ai donc défini "MonTableau" et charger les données de l'exemple avec l'entête. Option Explicit Option Base 1 Sub Tri_Variable_Tableau() Dim MonTableau As Variant MonTableau = ActiveWorkbook.Worksheets("Mots").[B2].CurrentRegion.Value Array.Sort(MonTableau).SortFields.Clear Array.Sort(MonTableau).SortFields.Add Key:=1, _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With Array.Sort(MonTableau) .SetRange 1 .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .Apply End With ActiveWorkbook.Worksheets("Mots").Range("B2:D" & UBound(MonTableau)).Value = MonTableau End Sub J'ai remplacer Key:=Range("B3:B42") par Key:=1 rien ne fonctionne déjà dès qu'il arrive sur "Array.Sort(MonTableau)" il me met un message d'erreur, J'en déduit que je n'ai pas bien compris la méthode !!! Au cas ou mon mail : jpm31200@gmail.com Encore merci pour votre aide Jean-Pierre
7 жыл бұрын
Il y a un souci avec la méthode Sort pour l'objet Array en VBA quand il s'agit de trier des tableaux de valeurs, mais on peut écrire le code avec une double boucle pour le tri. Dans l'exemple que je vous propose, sont écrits de B2 à B6 respectivement les valeurs suivantes : 18,25,12,15,6. Nous chargeons ces valeurs dans un tableau de variables avec la procédure tableau qui appelle une procédure de tri: Sub tableau() Dim mon_tableau(0 To 4) As Integer Dim ligne As Byte For ligne = 2 To 6 mon_tableau(ligne - 2) = Cells(ligne, 2).Value Next ligne trier (mon_tableau) End Sub Sub trier(mon_tableau) Dim tampon As String Dim i As Byte: Dim j As Byte Dim val_min As Byte: Dim val_max As Byte val_min = LBound(mon_tableau) val_max = UBound(mon_tableau) For i = val_min To val_max - 1 For j = i + 1 To val_max If mon_tableau(i) > mon_tableau(j) Then tampon = mon_tableau(i) mon_tableau(i) = mon_tableau(j) mon_tableau(j) = tampon End If Next j Next i For i = 0 To 4 MsgBox mon_tableau(i) Next i End Sub Et au dernier msgbox, toutes les valeurs sont dans l'ordre croissant
@jpm312007 жыл бұрын
Bonsoir Stéphane ☺ Merci pour votre réactivité 👍👍👍, Génial, par contre c'est plus compliqué que avec la fonction sort En tout cas merci de m'avoir répondu aussi vite 👍👍👍 et je vous souhaite une très bonne soirée ☺☺☺ Jean-pierre