Message box qui affiche par odee decroisant
Fermé
lepapillon2015
Messages postés
27
Date d'inscription
jeudi 2 avril 2015
Statut
Membre
Dernière intervention
3 mai 2015
-
1 mai 2015 à 16:32
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 3 mai 2015 à 02:59
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 3 mai 2015 à 02:59
A voir également:
- Message box qui affiche par odee decroisant
- Message - Guide
- Recuperer message whatsapp supprimé - Guide
- Message d'absence thunderbird - Guide
- Message du pere noel gratuit whatsapp - Accueil - Messagerie instantanée
- Adresse ip box - Guide
3 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
2 mai 2015 à 12:09
2 mai 2015 à 12:09
Bonjour Lepapillon, bonjour le forum,
J'avais répondu à ce post en te secouant un peu à cause de ta demande plus qu'incomplète. Un "modérateur" a cru bon de supprimer ma réponse qui n'avait vraiment rien d'offusquant, je te l'assure. Résultat, tu n'as toujours pas de réponse...
Moralité, certains modérateurs feraient mieux de se modérer eux même... !
J'avais répondu à ce post en te secouant un peu à cause de ta demande plus qu'incomplète. Un "modérateur" a cru bon de supprimer ma réponse qui n'avait vraiment rien d'offusquant, je te l'assure. Résultat, tu n'as toujours pas de réponse...
Moralité, certains modérateurs feraient mieux de se modérer eux même... !
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
2 mai 2015 à 16:27
2 mai 2015 à 16:27
Bonjour,
Voici une macro à adapter les cellules contenant les sommes.
Voir le site mentionné plus haut pour les tableaux
Voici une macro à adapter les cellules contenant les sommes.
'http://silkyroad.developpez.com/vba/tableaux/#LXIV-D Sub Tri_Tableau() Dim Valeur As Integer Dim i As Integer Dim Cible As Variant Dim Tableau() As Single Dim NomTableau(3) As String 'Alimente les éléments du tableau NomTableau(0) = Sheets(1).Range("A1").Value 'a adapter les cellules contenant les sommes NomTableau(1) = Sheets(2).Range("A1").Value NomTableau(2) = Sheets(3).Range("A1").Value NomTableau(3) = Sheets(4).Range("A1").Value ReDim Tableau(0 To 3) For i = 0 To UBound(Tableau()) Tableau(i) = NomTableau(i) Next i Do 'tri décroissant Valeur = 0 For i = 0 To UBound(Tableau) - 1 If Tableau(i) < Tableau(i + 1) Then Cible = Tableau(i) Tableau(i) = Tableau(i + 1) Tableau(i + 1) = Cible Valeur = 1 End If Next i Loop While Valeur = 1 'vérification du tri décroissant For i = 0 To UBound(Tableau) MsgBox Tableau(i) Next i 'Pour obtenir un ordre croissant, il suffit de boucler du dernier élément 'du tableau, vers le premier. 'For i = UBound(Tableau) To 0 Step -1 'Debug.Print Tableau(i) 'Next i End Sub
Voir le site mentionné plus haut pour les tableaux
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
3 mai 2015 à 02:59
3 mai 2015 à 02:59
Bonsoir les animaux, bonsoir le forum,
Une autre proposition à adapter car malgré mes conseils, Lepapillon, tu manques toujours de clarté. Le code proposé considère que la somme se trouve dans la colonne A de chaque onglet (vu que tu expliques très mal ce point là) et que les 4 onglets sont les 4 premiers...
Dans ton premier post tu parle d'ordre décroissant puis dans la réponse 2 tu parles d'ordre croissant. Je crois que c'est surtout en désordre dans ta tête...
Le code utilise la fonction Large pour l'ordre décroissant. Il te suffit de remplacer Large par Small pour passer à l'ordre croissant. Tu verras, il y a une ligne commentée.
Le code doit être placé dans l'onglet Feuil4 [Feuil4(Feuil4)]. Il se déclenchera chaque fois que tu activeras cet onglet...
Une autre proposition à adapter car malgré mes conseils, Lepapillon, tu manques toujours de clarté. Le code proposé considère que la somme se trouve dans la colonne A de chaque onglet (vu que tu expliques très mal ce point là) et que les 4 onglets sont les 4 premiers...
Dans ton premier post tu parle d'ordre décroissant puis dans la réponse 2 tu parles d'ordre croissant. Je crois que c'est surtout en désordre dans ta tête...
Le code utilise la fonction Large pour l'ordre décroissant. Il te suffit de remplacer Large par Small pour passer à l'ordre croissant. Tu verras, il y a une ligne commentée.
Le code doit être placé dans l'onglet Feuil4 [Feuil4(Feuil4)]. Il se déclenchera chaque fois que tu activeras cet onglet...
Private Sub Worksheet_Activate() Dim I As Byte 'déclare la variable I (Incrément) Dim TS(1 To 4) 'déclare le tableau de variables TS (Tableau des Sommes) Dim RNG(1 To 2, 1 To 4) 'déclare le tableau des variables RNG (RaNG) For I = 1 To 4 'boucle 1 : de 1 à 4 'récupère la somme des 4 premiers onglets dans la dernière cellule éditée de la colonne A de chacun TS(I) = Sheets(I).Cells(Application.Rows.Count, 1).End(xlUp).Value Next I 'prochaine valeur de la boucle 1 For I = 1 To 4 'boucle 1 : de 1 à 4 'renvoie dans la première colonne du tableau RNG la Ième plus grande valeur du tableau TS RNG(1, I) = Application.WorksheetFunction.Large(TS, I) 'ordre décroisant 'RNG(1, I) = Application.WorksheetFunction.Small(TS, I) 'ordre croisant For J = 1 To 4 'boucle 2 : de 1 à 4 'récupère dans la colonne 2 du tabelau RBG le nom de l'onglet contenant cette Ième plus grande valeur If RNG(1, I) = TS(J) Then RNG(2, I) = "Feuil" & J: Exit For Next J 'prochaine valeur de la boucle 2 Next I 'prochaine valeur de la boucle 1 'message renvoyant les sommes et leur emplacement dans l'ordre décroissant MsgBox RNG(1, 1) & " / " & RNG(2, 1) & Chr(13) _ & RNG(1, 2) & " / " & RNG(2, 2) & Chr(13) _ & RNG(1, 3) & " / " & RNG(2, 3) & Chr(13) _ & RNG(1, 4) & " / " & RNG(2, 4) End Sub
2 mai 2015 à 13:20
J'ai Quatre feuilles, avec une colonne remplis de chiffre chacune de façons aléatoire. A la fin de chaque colonne, il y'a la somme de cette dernière en A20. J'ai fait des boutons permettant d'aller de feuille en feuille, et je souhaitait faire une macro avec une message box qui quand j'arrive sur la feuille 4 me classe par ordre croissant les sommes des feuilles et me dise quelle somme est la plus élevé.
Voilà j'espere avoir été plus précis, éspérant que tu peux m'aider....
2 mai 2015 à 13:22
msgbox(sheets("NomDeLaFeuille1").range("CelluleDeLaSomme1").value + sheets("NomDeLaFeuille2").range("CelluleDeLaSomme2").value + sheets("NomDeLaFeuille3").range("CelluleDeLaSomme3").value)
end sub
J'avais cette macro pour essayer de m'inspirer mais je m'emmêle les pinceaux pour essayer de classer par ordre croissant, sachant que les sommes sont aléatoires...