Trier les tableaux par le code Visual Basic

  Рет қаралды 26,955

Formations Excel, Access et bien d'autres

Formations Excel, Access et bien d'autres

Күн бұрын

Пікірлер: 23
@abdelazizchelbi7531
@abdelazizchelbi7531 7 жыл бұрын
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
@GeorgeBander
@GeorgeBander 7 жыл бұрын
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.
@GeorgeBander
@GeorgeBander 7 жыл бұрын
Bien évidemment cher professeur, il est arrivé juste après mon premier commentaire, et j'ai "sauté" dessus immédiatement ! Merci !!
@yayaouattara7673
@yayaouattara7673 7 жыл бұрын
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.
@yayaouattara7673
@yayaouattara7673 7 жыл бұрын
EFFECIVEMNT XA POURRAI M AIDER
@romlef526
@romlef526 7 жыл бұрын
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
@romlef526
@romlef526 7 жыл бұрын
oui ça reste assez complexe à mettre en oeuvre !!!! merci de votre réponse, @bientôt :)
@blabla199498
@blabla199498 4 жыл бұрын
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?
@blabla199498
@blabla199498 4 жыл бұрын
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
@blabla199498 4 жыл бұрын
@ J'ai fais ceci : ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Add2 Key:=Range("E:E" _ ... .SetRange Range(Cells(2, 1), Cells(ThisWorkbook.x, 5))
4 жыл бұрын
@@blabla199498 Très bien, bravo pour avoir trouvé le correctif adapté à votre cas
@jpm31200
@jpm31200 7 жыл бұрын
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 ;)
@jpm31200
@jpm31200 7 жыл бұрын
Super je vais tester !!!!
@jpm31200
@jpm31200 7 жыл бұрын
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
@jpm31200
@jpm31200 7 жыл бұрын
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
Jeu du pendu en VBA Excel
1:22:37
Formations Excel, Access et bien d'autres
Рет қаралды 8 М.
Les tableaux de VBA [#27 FORMATION EXCEL VBA COMPLETE]
22:23
Excel Formation
Рет қаралды 22 М.
Smart Sigma Kid #funny #sigma
00:33
CRAZY GREAPA
Рет қаралды 37 МЛН
Beat Ronaldo, Win $1,000,000
22:45
MrBeast
Рет қаралды 149 МЛН
How Many Balloons To Make A Store Fly?
00:22
MrBeast
Рет қаралды 193 МЛН
EXCEL - ENREGISTRER UNE MACRO DE TRI (Et l'associer à un bouton)
10:11
Axel ROBIN : Formations
Рет қаралды 21 М.
Boucles d'instruction For Each en VBA Excel
16:02
Formations Excel, Access et bien d'autres
Рет қаралды 57 М.
Gérer les conditions et critères en VBA Excel
20:18
Formations Excel, Access et bien d'autres
Рет қаралды 64 М.
VBA comprendre les TABLEAUX (ListObjects)
14:11
En parlant de bureautique, formez-vous!
Рет қаралды 4,1 М.
These COVERS just took the originals to SCHOOL!
26:27
The Voice: Best Blind Auditions
Рет қаралды 9 МЛН
Encrypter et décrypter des données en Vba Excel
20:00
Formations Excel, Access et bien d'autres
Рет қаралды 15 М.
Smart Sigma Kid #funny #sigma
00:33
CRAZY GREAPA
Рет қаралды 37 МЛН