Sortare personalizata de tip left to right

Închis
IPP
Moderator
Moderator
Mesaje: 4197
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Sortare personalizata de tip left to right

Mesaj de IPP » Mie Iul 29, 2009 7:59 am

Buna ziua

Lucrez la un proiect care se doreste a fi utilizat pe versiuni diverse ale Excelului: 2000, xp, 2003.

Fiind implicate un numar de cca.170 de coloane, va fi nevoie de diverse sortari de tipul left to right dar personalizate. Am reusit o prima varianta (folosindu-ma de custom list) dar din cauza rigiditatii folosirii acestei solutii pot aparea probleme serioase. Este vorba de modul de stocare a listelor personalizate in Excel si la care face referire macro. Este suficient ca unul dintre utilizatori sa aiba alte liste personalizate salvate in computerul propriu sau sa stearga una existenta (modificand astfel indicele listei) pentru ca rularea macro sa fie compromisa. Criteriile de selectie vor fi in timp dinamice iar numarul de utilizatori suficient de mare astfel incat solutia mutarii mele de la o statie de lucru la alta pentru verificarea-modificarea listelor de sortare personalizate sa fie ineficienta.

In concluzie apelez la dvs. pentru eventuale sugestii de genul stocarii ordinii de sortare personalizate la nivel de fisier si nu statie de lucru.

Multumesc
IP

Avatar utilizator
Dr.Excel
Site Admin
Site Admin
Mesaje: 1997
Membru din: Sâm Ian 24, 2009 1:45 pm
Localitate: Bucharest
Contact:

Re: Sortare personalizata de tip left to right

Mesaj de Dr.Excel » Mie Iul 29, 2009 8:45 am

poti sa adaugi custom list-ul dinamic in codul VBA, apoi il stergi

...il adaugi:

Cod: Selectaţi tot

Application.AddCustomList ListArray:=Array("Elem1", "Elem2", ...)

... sortezi :

Cod: Selectaţi tot

Dim n 
n = Application.GetCustomListNum(Array("Elem1", "Elem2", ...))
Selection.Sort Key1:=Range("Prima celula de pe coloana de sortare"), Order1:=xlAscending, _ 
Header:=xlGuess, OrderCustom:=n, MatchCase:=False, Orientation:= _ 
xlTopToBottom
...apoi il stergi:

Cod: Selectaţi tot

Dim n
n = Application.GetCustomListNum(Array("Elem1", "Elem2", ...))
Application.DeleteCustomList n
spune-mi daca este ok

MCT, MCITP
MOS Master Instructor
IT Learning

IPP
Moderator
Moderator
Mesaje: 4197
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Sortare personalizata de tip left to right

Mesaj de IPP » Mie Iul 29, 2009 9:56 am

Buna ziua

Va multumesc pentru promptitudinea raspunsului. In mod cert voi incerca solutia propusa de dvs. si, daca va fi cazul, voi reveni

Multumesc inca o data
IP

IPP
Moderator
Moderator
Mesaje: 4197
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Sortare personalizata de tip left to right

Mesaj de IPP » Vin Iul 31, 2009 11:05 am

Buna ziua

Ma vad nevoit sa revin deoarece solutia primita nu functioneaza in cazul meu (folosesc Excel 2000) si nu imi dau seama care este cauza atat timp cat la rularea macro nu am primit nici o eroare.

La testarea pe etape merge adaugarea, respectiv stergerea listei personalizate dar sortarea dorita nu.

Daca doriti (si imi spuneti si cum) voi atasa si un fisier-test pentru a putea vedea codul in intregime.


IP

Avatar utilizator
Dr.Excel
Site Admin
Site Admin
Mesaje: 1997
Membru din: Sâm Ian 24, 2009 1:45 pm
Localitate: Bucharest
Contact:

Re: Sortare personalizata de tip left to right

Mesaj de Dr.Excel » Vin Iul 31, 2009 1:21 pm

aveti mai jos, la un post nou, incarca atasment

MCT, MCITP
MOS Master Instructor
IT Learning

IPP
Moderator
Moderator
Mesaje: 4197
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Sortare personalizata de tip left to right

Mesaj de IPP » Vin Iul 31, 2009 1:37 pm

Atasat este fisierul de test

IP
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Avatar utilizator
Dr.Excel
Site Admin
Site Admin
Mesaje: 1997
Membru din: Sâm Ian 24, 2009 1:45 pm
Localitate: Bucharest
Contact:

Re: Sortare personalizata de tip left to right

Mesaj de Dr.Excel » Vin Iul 31, 2009 2:14 pm

in cod selectezi doar L3, trebuie sa selectezi tot dreptunghiul: L2:FG3, apoi sortezi dupa randul L3

MCT, MCITP
MOS Master Instructor
IT Learning

Închis

Înapoi la “Visual Basic for Application (VBA) cu Excel - Intrebari tehnice”