Tri de données ni ordre croissant, ni ordre decroissant...
Résolu/Fermé
GermPeru
yg_be
- Messages postés
- 172
- Date d'inscription
- mercredi 7 décembre 2016
- Statut
- Membre
- Dernière intervention
- 27 mars 2018
yg_be
- Messages postés
- 19275
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 17 mai 2022
A voir également:
- Trier une liste par ordre croissant python sans sort
- Tri de données ni ordre croissant, ni ordre decroissant... ✓ - Forum - VB / VBA
- Trier des données par ordre alphabétique sur excel - Guide
- Trie avancée dans une liste imbriquée sans sort() - Forum - Python
- Trier un tableau par ordre croissant c - Forum - C
- Trier un graphique par ordre croissant ✓ - Forum - Excel
2 réponses
yg_be
13 nov. 2017 à 19:26
- Messages postés
- 19275
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 17 mai 2022
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
13 nov. 2017 à 22:16
- Messages postés
- 19275
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 17 mai 2022
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
13 nov. 2017 à 22:27
- 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
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
13 nov. 2017 à 23:25
- 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
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
14 nov. 2017 à 15:08
- 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
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
14 nov. 2017 à 17:40
- Messages postés
- 19275
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 17 mai 2022
- 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
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 à 21:33
13 nov. 2017 à 21:43
Maintenant je cherche a exporter seulement une partie des donner et les ordonner en fonction de la valeur de la categorie