Do while ordre alphabétique

Y compris Power BI, Power Query et toute autre question en lien avec Excel
t
treerrttyt
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 24 novembre 2019

Message par treerrttyt » 24 novembre 2019, 16:28

Bonjour, comment peut-on faire une boucle qui demande un mot à inscrire en colonne (avec inputbox), et qui s'arrête une fois que le mot rentré est inférieur dans l'ordre alphabétique que le mot précédent ? Merci.
Avatar du membre
curulis57
Passionné d'Excel
Passionné d'Excel
Messages : 3'747
Appréciations reçues : 226
Inscrit le : 4 janvier 2016
Version d'Excel : 2016 FR / 2019 FR

Message par curulis57 » 24 novembre 2019, 16:37

Salut treerrttyt,

:bv3:
Le plus facile est d'inscrire ce mot à la première ligne libre et d'exécuter un SORT sur la colonne concernée.

8-)
A+
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'910
Appréciations reçues : 693
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 24 novembre 2019, 16:38

Bonjour treerttyt,

:bv:

:joindre:
dhany
t
treerrttyt
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 24 novembre 2019

Message par treerrttyt » 24 novembre 2019, 18:07

Merci pour votre réponse, il s'agit de faire cet exercice (fichier joint)
laf.odt
(6.74 Kio) Téléchargé 4 fois
Avatar du membre
curulis57
Passionné d'Excel
Passionné d'Excel
Messages : 3'747
Appréciations reçues : 226
Inscrit le : 4 janvier 2016
Version d'Excel : 2016 FR / 2019 FR

Message par curulis57 » 24 novembre 2019, 22:38

Salut treerrttyt,
Salut Dhany,

quelque chose comme ça ?
La macro démarre sur un double-clic dans la feuille.
Astuce : le mot "Faux" équivaut à une commande Annuler et termine l'encodage avec effacement de la feuille !
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim iRow%, sRep$
'
Cancel = True
Cells.Delete
Range("A1").Value = "MOTS"
'
Do
    Do
        sRep = Application.InputBox("Veuillez encoder un mot !", "Le poids des mots")
    Loop Until Not IsNumeric(sRep) And sRep <> ""
    If sRep = "Faux" Then
        Cells.Delete
        Exit Sub
    Else
        iRow = Range("A" & Rows.Count).End(xlUp).Row + 1
        Range("A" & iRow).Value = WorksheetFunction.Proper(sRep)
        If iRow > 2 And Range("A" & iRow).Value < Range("A" & iRow - 1).Value Then
            Range("C1").Value = "Nombre de mots :"
            Range("D1").Value = iRow - 1
            Exit Do
        End If
    End If
Loop
Columns.AutoFit
UsedRange.Borders.LineStyle = xlContinuous
'
End Sub
:btres:

8-)
A+
Treerrttyt.xlsm
(19.27 Kio) Téléchargé 1 fois
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message