Bonjour à tous,
Novice en VBA, j'ai créé un formulaire pour remplir une base de données (tableau) qui fonctionnait bien jusqu'à maintenant..
Cependant au moment de la fermeture, j'aimerais que le tableau se trie automatiquement, j'avais donc écrit le code suivant :
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
ActiveWorkbook.Worksheets("Affaires").ListObjects("AffairesTab").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("Affaires").ListObjects("AffairesTab").Sort. _
SortFields.Add2 Key:=Range("AffairesTab[[#All],[Délai fabrication]]"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Affaires").ListObjects("AffairesTab").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Je reçois alors une erreur d'exécution "1004 : méthode range de l'objet _global"
J'ai mis en jaune où le débogage situe l'erreur.
La colonne à trier est calculé à partir des données rentraient dans le tableau. Elle est composé de nombre (délai en jour) ou si rien n'est rentré, des mots comme "pas de date prévu" ou "livré"
Je me demande si cela vient du faite que j'ai à la fois des nombres et des mots dans la colonne à trier, toutefois cela fonctionne bien lorsqu'on trie "manuellement" le tableau avec la fonction tri
Merci d'avance pour votre aide!
Freshman
Novice en VBA, j'ai créé un formulaire pour remplir une base de données (tableau) qui fonctionnait bien jusqu'à maintenant..
Cependant au moment de la fermeture, j'aimerais que le tableau se trie automatiquement, j'avais donc écrit le code suivant :
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
ActiveWorkbook.Worksheets("Affaires").ListObjects("AffairesTab").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("Affaires").ListObjects("AffairesTab").Sort. _
SortFields.Add2 Key:=Range("AffairesTab[[#All],[Délai fabrication]]"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Affaires").ListObjects("AffairesTab").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Je reçois alors une erreur d'exécution "1004 : méthode range de l'objet _global"
J'ai mis en jaune où le débogage situe l'erreur.
La colonne à trier est calculé à partir des données rentraient dans le tableau. Elle est composé de nombre (délai en jour) ou si rien n'est rentré, des mots comme "pas de date prévu" ou "livré"
Je me demande si cela vient du faite que j'ai à la fois des nombres et des mots dans la colonne à trier, toutefois cela fonctionne bien lorsqu'on trie "manuellement" le tableau avec la fonction tri
Merci d'avance pour votre aide!
Freshman