Liste dans l'ordre inverse
a
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 SubEst-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 Functiona
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 SubEt en gros menus_deroulants correspond à ton code, le problème vient-il de là ?
Edit: Autant pour moi, cela fonctionne parfaitement merci beaucoup !