macro pentru filtrare

Ce este nou in Microsoft Excel 2010?
Informatii despre cum se utilizeaza Microsoft Excel 2010
Calcule, Formule, Functii, Tabele pivot, Analiza datelor, etc
Închis
alex.carabat
Mesaje: 62
Membru din: Mie Dec 12, 2012 9:38 pm

macro pentru filtrare

Mesaj de alex.carabat » Mar Ian 22, 2013 4:02 pm

In coloana X sunt inregistrari.
Inregistrarile se filtreaza si, pentru fiecare rezultat, se creeaza cate un nou sheet cu denumirea filtrarii.

Exemplu: Daca in coloana X, am inregistrarile A, B, C si D, atunci se vor crea 4 sheeturi: sheet A, sheet B, sheet C si sheet D. Fiecare sheet creat va contine coloana filtrata.
Exemplu: Daca in coloana X, am doar inregistrarile A, si B, atunci se vor crea doar 2 sheeturi: sheet A si sheet B. Fiecare sheet creat va contine coloana filtrata.

Se poate face un macro?

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

Re: macro pentru filtrare

Mesaj de IPP » Mar Ian 22, 2013 9:18 pm

Buna seara

Se poate face un macro.

Daca veti reveni cu un fisier exemplu concludent ca structura a informatiei (si cateva informatii fictive pe care sa se poata lucra) si cu specificatii clare privind coloana care este esentiala in acea filtrare... va mariti sansele sa primiti raspunsul asteptat.

Pana atunci nu stiu cine va reusi sa faca ceva pe deplin functional folosind doar ceea ce ati spus pana acum.

IP

alex.carabat
Mesaje: 62
Membru din: Mie Dec 12, 2012 9:38 pm

Re: macro pentru filtrare

Mesaj de alex.carabat » Mie Ian 23, 2013 9:50 am

Am revenit cu un fisier atasat. In fisier exista un sheet GENEREAL, care, in urma aplicarii macro-ului ce filtreaza coloana A, ar trebui sa-mi genereze sheet-urile A, B, C, D, L si M.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

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

Re: macro pentru filtrare

Mesaj de IPP » Mie Ian 23, 2013 8:37 pm

Buna seara

Aveti atasat spre testare un fisier.
Obiectiv: copierea informatiilor filtrate in o foaie (sau mai multe, dupa caz) noua/noi avand denumirea/denumirile in functie de informatia de pe coloana A.

Premise: nu se vor redenumi sau sterge foile (“General” si “proviz”, ultima ajuta la prelucrare)
Informatia filtrata nu se va intinde pe mai mult de 65536 de randuri (sau va trebui editat in cod)
Nota: codul se va bloca daca va exista in fisier o foaie cu o denumire identica cu cea care ar trebui creata ca urmare a rularii macro.

Am folosit urmatorul cod:

Cod: Selectaţi tot

Sub GenereazaFoi()

'IPP - 23.01.2013

Application.ScreenUpdating = False

Sheets("proviz").Cells.Clear
Sheets("General").Select
Range("A1").CurrentRegion.Copy Destination:=Sheets("proviz").Range("A1")

Application.CutCopyMode = False

Sheets("proviz").Select
Range("A1").Select
        Range("A1").CurrentRegion.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

Range("A65536").End(xlUp).Select

Do Until ActiveCell.Row = 1
    If ActiveCell <> ActiveCell.Offset(-1, 0) Then
     Selection.AutoFilter Field:=1, Criteria1:=ActiveCell.Value
     Selection.CurrentRegion.Copy
     Worksheets.Add After:=Worksheets("General")
     ActiveSheet.Paste
     ActiveSheet.Name = Range("A2").Value

 Sheets("proviz").Select
 Selection.AutoFilter

    End If
ActiveCell.Offset(-1, 0).Select
Loop

Sheets("General").Select

Application.ScreenUpdating = True
End Sub
Acesta:
Sterge eventuala informatie din foaia proviz
Copiaza tabelul din foaia General in foaia proviz
Sorteaza randurile dupa coloana A
Parcurge coloana A de jos in sus si pentru fiecare item diferit efectueaza o filtrare, creaza o foaie noua unde copiaza continutul filtrarii si redenumeste foaia dupa valoarea din A2

Pentru testare: deschideti fisierul atasat, activati macro/continutul, efectuati filtrarea dorita (daca nu va fi filtrat nimic se vor genera foi pentru fiecare item de pe coloana A din in foaia “General”) si apasati “butonul” gri

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

alex.carabat
Mesaje: 62
Membru din: Mie Dec 12, 2012 9:38 pm

Re: macro pentru filtrare

Mesaj de alex.carabat » Joi Ian 31, 2013 12:03 pm

Merge perfect. Multumesc!

Închis

Înapoi la “Intrebari despre Excel 2010”