Bonjour,
Le pb auquel je me heurte est le suivant.
Je suis positionné sur une feuille. Je désire en appuyant sur un bouton placé sur cette feuille lancer sa copie, puis trier un tableau placé dans cette feuille.
La procédure associé au boton est la suivante. Tout fonctionne jusqu'à la ligne tableau.sort ... ou une erreur est remontée.
Ce que je ne comprends pas c'est qu'en reprenant quasiment le même code placé dans la feuille copiée associé au même bouton que la feuille initiale, j'arrive trier les données désirées:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 Private Sub CommandButton1_Click() ' Fonction d'initialisation des variables, en particulier l_f_plan feuille a copier ici Initialisation ' Copie de la feuille l_f_plan sur laquelle je veux travailler Worksheets(l_f_Plan.Name).Copy Before:=Worksheets(l_f_Plan.Name) ActiveSheet.Name = "Planning_Trie" ' Creation d'un objet feuille correspondant a la feuille qui vien d'etre copiee Dim l_f_Temp As Worksheet Set l_f_Temp = ThisWorkbook.Sheets("Planning_Trie") ' Insertion d'une colonne l_f_Temp.Columns("A:A").Insert Shift:=xlToRight ' Comptage du nombre de lignes de la feuille Dim nb_doc As Variant nb_doc = l_f_Temp.Range("B65536").End(xlUp).Row ' Remplissage de la colonne crée avec le numero de ligne For num_doc = 1 To nb_doc l_f_Temp.Cells(num_doc, 1) = num_doc Next ' Creation du tableau à trier Dim tableau As Range Set tableau = l_f_Temp.Rows("5:" & nb_doc) ' Tri de ce tableau tableau.Sort Key1:=Range("F5"), Order1:=xlAscending, Key2:=Range("D5") _ , Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False _ , Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _ xlSortNormal End Sub
C'est comme si la fonction de tri ne fonctionnait qu'à partir du moment ou elle est lancée dans une procédure ou fonction dont le code est placé dans la feuille ou sont situés les données à trier, et non pas dans une autre feuille.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Private Sub CommandButton1_Click() Dim l_f_Temp As Worksheet Set l_f_Temp = ThisWorkbook.Sheets("Planning_Trie") ' Comptage du nombre de lignes de la feuille Dim nb_doc As Variant nb_doc = l_f_Temp.Range("B65536").End(xlUp).Row ' Creation du tableau à trier Dim tableau As Range Set tableau = l_f_Temp.Rows("5:" & nb_doc) ' Tri de ce tableau tableau.Sort Key1:=Range("F5"), Order1:=xlAscending, Key2:=Range("D5") _ , Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False _ , Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _ xlSortNormal End Sub
Quelqu'un a-t-il déjà rencontré ce problême ???
Merci d'avance pour vos réponses,
Partager