Tri de données ni ordre croissant, ni ordre decroissant...
Résolu/Fermé
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
-
Modifié le 13 nov. 2017 à 18:46
yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 - 14 nov. 2017 à 17:40
yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 - 14 nov. 2017 à 17:40
A voir également:
- Trier une liste par ordre croissant python sans sort
- Excel trier par ordre croissant chiffre - Guide
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Le fichier à télécharger contient une liste de chats. triez-la comme dans le tableau ci-dessous (attention, on ne voit que le début…). quel est le mot formé par les 8 dernières lettres de la colonne code ? - Forum Word
2 réponses
yg_be
Messages postés
23471
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 février 2025
Ambassadeur
1 568
13 nov. 2017 à 19:26
13 nov. 2017 à 19:26
bonsoir, moi je ferais ainsi: écrire une petite fonction VBA qui retourne 3, 1, 2, 4 quand la valeur en entrée est 1, 2, 3 ou 4.
puis utiliser cette fonction, par exemple dans une colonne supplémentaire, et ensuite utiliser cette colonne comme source de tri.
exemple:
puis utiliser cette fonction, par exemple dans une colonne supplémentaire, et ensuite utiliser cette colonne comme source de tri.
exemple:
Function gptri(nb As Integer) As Integer 'retourne 3, 1, 2, 4 quand la valeur en entrée est 1, 2, 3 ou 4 Select Case nb Case 1 gptri = 3 Case 2 gptri = 1 Case 3 gptri = 2 Case 4 gptri = 4 Case Else gptri = 99 End Select End Function
yg_be
Messages postés
23471
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 février 2025
Ambassadeur
1 568
13 nov. 2017 à 22:16
13 nov. 2017 à 22:16
je voulais voir le code "construire un autre tableau a partir de ce premier tableau", pour pouvoir l'adapter avec le tri.
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
13 nov. 2017 à 22:27
13 nov. 2017 à 22:27
Dsl,
Je n´ai pas encore fait ma boucle pcq je ne sais pas comment procéder au tri...enfin une boucle ou j´efface les valeurs de mes tables mais pas d´importation de mes données...
Je n´ai pas encore fait ma boucle pcq je ne sais pas comment procéder au tri...enfin une boucle ou j´efface les valeurs de mes tables mais pas d´importation de mes données...
For Bi = 0 To UBound(V) Set Wsh = ThisWorkbook.Worksheets(V(Bi)) Set Wsi = ThisWorkbook.Worksheets(V2(Bi)) With Wsh If V2(Bi) = "MC GG" Then If .Range("A2") <> "" Then Range("TMCGG").EntireRow.Delete 'code de ma feuille V(Bi) a ma feuille V2(Bi) ElseIf V2(Bi) = "MC GM" Then If .Range("A2") <> "" Then Range("TMCGM").EntireRow.Delete ElseIf V2(Bi) = "MC MG" Then If .Range("A2") <> "" Then Range("TMCGP").EntireRow.Delete ElseIf V2(Bi) = "MC MG" Then If .Range("A2") <> "" Then Range("TMCMG").EntireRow.Delete ElseIf V2(Bi) = "MC MM" Then If .Range("A2") <> "" Then Range("TMCMM").EntireRow.Delete ElseIf V2(Bi) = "MC Otros" Then If .Range("A2") <> "" Then Range("TMCO").EntireRow.Delete ElseIf V2(Bi) = "MC Beta" Then If .Range("A2") <> "" Then Range("TMCBeta").EntireRow.Delete End If End With Next Bi
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
13 nov. 2017 à 23:25
13 nov. 2017 à 23:25
Je ne demande pas un code tout fait mais je solicite des pistes de recherches... pcq je galere depuis un petit moment maintenant....
Merci yg_be
Merci yg_be
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
14 nov. 2017 à 15:08
14 nov. 2017 à 15:08
With Wsh
NbLi = Application.WorksheetFunction.CountA(.Range("A:A")): ReDim DatosTemp(3, NbLi): j = 1
For Ligne = 1 To 4
For i = 2 To NbLi
If .Range("F" & i).Value = 2 And Ligne = 1 Then
DatosTemp(1, j) = .Range("D" & i).Value
DatosTemp(2, j) = .Range("E" & i).Value
DatosTemp(3, j) = .Range("F" & i).Value
j = j + 1
ElseIf .Range("F" & i).Value = 3 And Ligne = 2 Then
DatosTemp(1, j) = .Range("D" & i).Value
DatosTemp(2, j) = .Range("E" & i).Value
DatosTemp(3, j) = .Range("F" & i).Value
j = j + 1
ElseIf .Range("F" & i).Value = 1 And Ligne = 3 Then
DatosTemp(1, j) = .Range("D" & i).Value
DatosTemp(2, j) = .Range("E" & i).Value
DatosTemp(3, j) = .Range("F" & i).Value
j = j + 1
ElseIf .Range("F" & i).Value = 4 And Ligne = 4 Then
DatosTemp(1, j) = .Range("D" & i).Value
DatosTemp(2, j) = .Range("E" & i).Value
DatosTemp(3, j) = .Range("F" & i).Value
j = j + 1
End If
Next i
Next Ligne
ReDim Datos(1 To j - 1, 1 To 3)
For iLi = 1 To j - 1
For iCol = 1 To 3
Datos(iLi, iCol) = DatosTemp(iCol, iLi)
Next iCol
Next iLi
End With
3 boucles, table temporaire, 2 variants, et 4 conditions ca le fait... Mais pcq j´ai que 4 valeur de catégories a ranger, si j´avais eu plus ceci ne conviendrait pas.
Je reste attentif a tout commentaire qui pourrait m´aider a progresser. Merci d´avance
yg_be
Messages postés
23471
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 février 2025
1 568
>
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
14 nov. 2017 à 17:40
14 nov. 2017 à 17:40
bonjour,
moi je ferais plus simple:
1) je mettrais dans le tableau de destination toutes les données, avec une colonne en plus que je remplirais avec la fonction gptri.
2) je trierais le tableau en fonction de la dernière colonne
3) je supprimerais la dernière colonne
moi je ferais plus simple:
1) je mettrais dans le tableau de destination toutes les données, avec une colonne en plus que je remplirais avec la fonction gptri.
2) je trierais le tableau en fonction de la dernière colonne
3) je supprimerais la dernière colonne
13 nov. 2017 à 20:07
Je n´ai pas trop saisi ta réponse, c´est pas la premiere fois tu me diras....
J´ai un premier tableau avec n lignes et dans ma 3 ieme colone j´ai la valeure 1,2,3 ou 4.
Je souhaite contruire un autre tableau a partir de ce premier tableau et que les valeur soit ordonnées de la facon suivante: 2-3-1-4.
Je ne saisi pas comment faire ma boucle sur mes n lignes de mon premier tableau et construire mon segond.
Merci d´avance de ta réponse
13 nov. 2017 à 20:32
et ensuite de trier sur la quatrième colonne.
si tu partages ton fichier ou donnes plus d'infos, la suggestion sera peut-être différente.
13 nov. 2017 à 20:43
exemple mon tableau 1:
ligne 1- colone 3: 4
ligne 2- colone 3: 3
ligne 3- colone 3: 2
ligne 4- colone 3: 1
Et en vba je souhaite construire mon tableau 2 avec les lignes rangées en fonction de la valeur de ma colonne 3, par vba et non le faire manuelement.
tableau 2:
ligne 1- colone x: 2
ligne 2- colone x: 3
ligne 3- colone x: 1
ligne 4- colone x: 4
dsl si j´ai mal compris ta réponse.
Merci yg_be
13 nov. 2017 à 20:49
Merci
13 nov. 2017 à 21:07
en feuille 1 mon tablea et en feuille 2 le résultat que je souhaite obtenir, cela me parrait pas si compliqué mais je n´y suis pas arrivé...