Message d'erreur à l'ouverture d'un fichier suite à tri automatique tableau
Bonjour,
Je demande votre aide car je cale sur une erreur qui apparait dans mon fichier suite à un tri automatique que j'effectue.
Je vous explique par étape ce qui se passe et je vous joins le fichier pour que vous testiez si nécessaire le problème.
Le code de protection du fichier est "PROD" et le code de protection de structure et des onglets est "GOURYG".
1) J'ai un formulaire qui me permet d'ajouter des fichiers comme sur la photo, une fois la "Date d'approbation AQ" renseignée le document passe en appro dans l'onglet "Habilitation opé"
Jusque la pas de soucis, le fichier s'ajoute bien.
2) J'ajoute un nouveau fichier de la même manière, il s'ajoute donc à l'onglet "Habilitation opé".
Mais la est le problème, si il est déjà dans l'ordre alphabétique et que je clique sur mon bouton "Habilitation" dans l'onglet "Habilitation opé" alors pas de soucis je peux fermer mon fichier et le rouvir sans soucis.
Par contre si le fichier n'est pas dans l'ordre l'alphabétique alors quand je clique sur "Habilitation" le code tri pour les docs s'effectue, et le formulaire s'ouvre, ils sont donc par ordre alphabétique pas de soucis MAIS si je ferme mon fichier et que je le rouvre j'ai cette erreur qui apparait et je ne sais pas pourquoi.
Si quelqu'un sait pourquoi ou découvre pourquoi ça m'aiderai énormément. Je mets joins le fichier.
Merci d'avance
Je pense que mon code pour trier mes colonnes cause le problème mais je ne trouve pas comment faire autrement, ou avec un code plus simple.
Merci
Bonjour GGabriel
J'ai déjà eu le problème, j'ai réussi à ne plus l'avoir en supprimant le filtrage de chaque feuille à la fermeture
je les remets à l'ouverture
Ou manuellement, menu -> Données -> Filtrer
A+
Wow je cherche depuis ce matin sans aucune solution.
C'est une bonne piste, connais tu le code qui permet d'enlever les filtres sur les tableaux?
J'avais : ActiveSheet.EnableAutoFilter = False mais ça n'a pas l'air d'etre vraiment ça.
J'ai réussi à les désactiver avant fermeture mais quand j'ouvre mon fichier après avoir réaliser les tris sur le nom des entetes j'ai toujours l'erreur, ça me rend fou
Re,
Navré, le fichier est peut être malheureusement vérolé, il faudra le reconstruire
A+
J’ai déjà effectué ceci.
En fait si j’enlève les documents et que je les remets en copier coller ça marche mais ce n’est pas viable pour le fichier.
J’ai testé sur un nouveau excel, j’ai mis un tableau classique et je lui demande avec ma ligne de code de trier les entêtes par ordre alphabétique et quand j’exécute ce code que je ferme et que je rouvre même problème.
Donc le problème vient bien du moment où j’effectue le tri et non du fichier en lui même.
Y a t’il un moyen de trier de façon automatique les colonnes d’un tableau suivant les noms de leur en-tête de façon plus simple que ma procédure tri_ligne et qui ne ferai pas planter du coup mon fichier ?
Bonjour,
Oui j'ai un code que j'ai trouvé sur internet qui me permet de défiler avec la molette dans les listes déroulantes. Parfois ça marche sur 64, parfois non alors que je tourne sur 64bits aussi. La variable concerne ce même code et de mon coté je n'ai pas besoin de la déclarer.
J'ai fais un fichier test avec uniquement le code qui me fait planter le fichier, vous pouvez l'ouvrir sans problème, ajouter 2 colonnes "B" et "A" et exécuter la macro "tri_ligne". Quand vous fermez le fichier et le réouvré l'erreur apparait. Le simple fait de supprimé les 2 colonnes d'enregistrer sous à nouveau de fermer-rouvrir supprime le problème je ne comprends rien.
Je suis désespéré je ne comprends pas pourquoi, probablement que mon code fait planter quelques choses ou qu'un autre code faisant la même chose marcherait tout aussi bien mais comment? :/
Merci de votre aide si vous avez une idée
Bonjour Ggabriel,
Effectivement avec le code donné, si on ajoute des colonnes ça corrompt le fichier
2 choses en revanche :
- vous utilisez un TS (Tableau Structuré) donc autant l'utiliser correctement
- pour la clé de tri, j'utilise "Add2"
Sub TriLignes()
Dim Lo As ListObject
' Définir le TS
Set Lo = ThisWorkbook.Sheets("Habilitation opé").ListObjects("Tableau1")
' Faire le tri
With Lo.Sort
With .SortFields
.Clear
.Add2 Key:=Range("Tableau1[Opérateur]"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
End With
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Set Lo = Nothing
End SubDans le fichier ci-joint, j'ai ajouté des colonnes, fait un tri, fermé le fichier, supprimé les colonnes, fait un tri... no soucy
A voir de votre côté
A+
Bonjour,
Ton code marche très bien (mis à part que je dois mettre "add" et non "add2" pour moi, sinon ça ne fonctionne pas)
Mais ce code tri les lignes, en fait ma macro n'a pas le bon nom pour ce que je cherche à faire. J'aurai du l'appeler "Tri_colonne"
Dans mon tableau j'ai 3 colonnes de base (Opérateur, Secteur, Poste) qui ne doivent rester fixe, et j'ai des colonnes qui par un formulaire, vont se rajouter au fur à mesure à la suite de cela. Je veux que ces colonnes puissent se trier par ordre alphabétique quand j'exécute le code, mais le problème c'est que mon code actuel fait planter mon fichier quand je le rouvre à la suite d'un tri.
Le but final étant que lorsque j'ouvre une combobox dans un formulaire qui récupère toutes les entêtes de colonnes (qui vont correspondre à des noms de documents) elles soient triées dans l'ordre alphabétique.
Peut être qu'il y a un moyen plus simple de trier les infos d'une combobox par ordre alphabétique mais je n'ai pas trouvé. Du coup je tri mes colonnes et je récupère ensuite les données une à une que j'ajoute à la combo.
Je précise que je ne cherche pas à trier les infos dans les lignes (j'ai déjà ce code), je cherche juste à bouger les colonnes entières et leur info selon un ordre alphabétique.
Merci à toi tout de même pour tes réponses fournies.
CDLT
