Trouve Valeur min
JL1949
Messages postés
3
Statut
Membre
-
ThauTheme Messages postés 1564 Statut Membre -
ThauTheme Messages postés 1564 Statut Membre -
Bonjour,
j'aimerai savoir comment faire en VBA dans une Macro comment trouvé la valeur minimum dans une colonne Range avec variable et lorsque cette valeur a été trouvé remplacé le contenu d'une autre colonne sur la même ligne a la première ligne et ensuite supprimer les autres lignes.
Exemple
Ligne A B
1 12 2017
2 6 2018
3 72 2019
Résultat
Ligne A B
1 2018 2017
Merci!
j'aimerai savoir comment faire en VBA dans une Macro comment trouvé la valeur minimum dans une colonne Range avec variable et lorsque cette valeur a été trouvé remplacé le contenu d'une autre colonne sur la même ligne a la première ligne et ensuite supprimer les autres lignes.
Exemple
Ligne A B
1 12 2017
2 6 2018
3 72 2019
Résultat
Ligne A B
1 2018 2017
Merci!
A voir également:
- Vba minimum entre 2 valeurs
- Supercopier 2 - Télécharger - Gestion de fichiers
- 2 ecran pc - Guide
- Faire 2 colonnes sur word - Guide
- Whatsapp 2 - Guide
- Gta 6 trailer 2 - Guide
2 réponses
Bonjour JL, bonjour le forum,
peut-être comme ça :
peut-être comme ça :
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim VM As Integer 'déclare la variable VM (Valeur Minimum)
Dim I As Integer 'déclare la variable I (Incrément)
Dim TR(1) As Variant 'déclare la variable TR (Tableau des Résultats)
Set O = Worksheets("Feuil1") 'définit l'onglet O
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
VM = Application.WorksheetFunction.Min(Application.Index(TV, , 1)) 'définit la valeur minimum VM
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau de valeurs TV
If TV(I, 1) = VM Then 'si la donnée ligne I colonne 1 de TV est égale à la valeur minimum VM
TR(0) = TV(I - 1, 2) 'récupère dans TR(0 la donnée ligne I - 1 colonne 2 de TV
TR(1) = TV(I, 2) 'récupère dans TR(1) la donnée ligne I colonne 2 de TV
End If 'end if
Next I 'prochaine ligne de la boucle
O.Range("A1").CurrentRegion.Clear 'efface les données
O.Range("A1").Resize(1, 2).Value = TR 'renvoie dans A1 redimensionnée le tableau TR
End Sub