Liste dans l'ordre inverse

Bonjour !

J'ai le code suivant, C'est une liste qui affiche les fichiers.dwg présent dans un dossier:

For j = 1 To ActiveSheet.Range("K65000").End(xlUp).Row
If Cells(j, 11) <> "" Then     'Si colonne K est rempli
Dim tabl() 'Créer une liste déroulante
    Dim t As Byte

    t = 1
    ReDim tabl(t)
    repertoire = ThisWorkbook.Path & "\Blocs\" & ActiveSheet.Name & "\" & Range("K" & j).Value 'entrez le nom du repertoire ou trouver les fichiers
    nf = Dir(repertoire & "\*.dwg*")

    Do While nf <> ""
        tabl(t) = nf
        t = t + 1
        ReDim Preserve tabl(t)
        nf = Dir ' suivant
    Loop

    With Sheets(ActiveSheet.Name).Cells(j, 23).Validation 'Entrez le numero de la feuille ainsi que la cellule correspondante 
     .Delete
     .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Join(tabl, ",")
    End With
End If

Next j
End Sub

Est-il possible d'afficher les valeur de la liste dans l'ordre inverse ? J'ai vu sur internet des .Reverse mais pas moyen que cela fonctionne j'ai des erreurs à chaque fois.

Merci

Bonjour,

une proposition de solution

For j = 1 To ActiveSheet.Range("K65000").End(xlUp).Row
If Cells(j, 11) <> "" Then     'Si colonne K est rempli
Dim tabl() 'Créer une liste déroulante
   Dim t As Byte

    t = 1
    ReDim tabl(t)
    repertoire = ThisWorkbook.Path & "\Blocs\" & ActiveSheet.Name & "\" & Range("K" & j).Value 'entrez le nom du repertoire ou trouver les fichiers
   nf = Dir(repertoire & "\*.dwg*")

    Do While nf <> ""
        tabl(t) = nf
        t = t + 1
        ReDim Preserve tabl(t)
        nf = Dir ' suivant
   Loop
     tabl=reversarray(tabl)
    With Sheets(ActiveSheet.Name).Cells(j, 23).Validation 'Entrez le numero de la feuille ainsi que la cellule correspondante 
    .Delete
     .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Join(tabl, ",")
    End With
End If

Next j
End Sub

Function reversarray(tabl)
Dim rtabl()
ReDim rtabl(LBound(tabl, 1) To UBound(tabl, 1))
     For i = LBound(tabl) To UBound(tabl) + IIf(LBound(tabl) = 1, 1, 0)
     rtabl(UBound(tabl) - i) = tabl(i)
     Next i
     reversarray = rtabl
End Function

C'est bizarre la macro a marché la première fois mais ne marche plus maintenant..

J'ai dans chaque feuille la macro evenement

Private Sub Worksheet_Activate()
Menus_deroulants

End Sub

Et en gros menus_deroulants correspond à ton code, le problème vient-il de là ?

Edit: Autant pour moi, cela fonctionne parfaitement merci beaucoup !

Rechercher des sujets similaires à "liste ordre inverse"