Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

[Excel] Svi nazivi radnih listova na jednom slozeni po abecedi

  • 9 odgovora
  • 9.347 pregleda

Najnovija ↓

[Excel] Svi nazivi radnih listova na jednom slozeni po abecedi 04.10.2007. u 23:19 · pre 232 meseca #1
Pozdrav Excel majstorima,
postoji li nacin (mislim na VBA) da se nazivi radnih listova (otvorenih i onih koji ce se tek otvoriti ) automatski pojavljuju na jednom radnom listu slozeni po abecedi u koloni A , a u koloni B da budu ispisani podaci iz celije F2 za svaki radni list?

Hvala,
Re: [Excel] Svi nazivi radnih listova na jednom slozeni po abecedi 05.10.2007. u 00:08 · pre 232 meseca #2
Možda ovako nešto. Prvo se izvuku potrebni podaci, a onda se odradi sortiranje kompletne A i B kolone...
Code:
Public Sub MojMakro()
Dim brojac As Long
brojac = 0
    
    For Each Sheet In Workbooks(1).Worksheets
        If Not Sheet.Name = "spisak" Then
        brojac = brojac + 1
        Worksheets("spisak").Cells(brojac, 1).Value = Sheet.Name
        Worksheets("spisak").Cells(brojac, 2).Value = Sheet.Cells(2, 6).Value
        End If
    Next Sheet

Worksheets("spisak").Columns("A:B").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub
Potpis
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
Re: [Excel] Svi nazivi radnih listova na jednom slozeni po abecedi 24.10.2007. u 10:53 · pre 231 mesec #5
Ako koristiš VBA često ćeš biti u prilici da se pitaš zašto se neki program ne izvršava ili dalje neočekivane rezultate. Koristeći alat za debagovanje u VB Editoru laše ćeš pronaći greške.
Ideja je da određenu liniju koda koju znaš da se izvšrava (pre otkaza) označiš kao Break point. Tokom izvršavanja program će da se zaustavi pre te tačke.
Onda možeš da ispitaš sadržaj promenljivih, ćelija ... u prozoru Immediate. Jednostavno otkucaš u ovom prozoru ?brojac, gde je brojac varijabla čiju vrednost želiš da proveriš.

Nakon Break Pointa program možeš da izvršavaš linuju po liniju (F8), uz proveru određenih varijabli, sadržaja ćelija itd.

Detaljnije http://www.cpearson.com/excel/Debug.htm.

U tvom slučaju ako pogledaš u debug režimu, kao što sam opisao verovatno ćeš naći da se petlja izvršava samo jednom. Onda pogledaj u Immediate Window
?Workbooks(1).Name
i verovatno ćeš dobiti odgovor - makro gleda pogrešnu radnu svesku. Umesto Workbooks(1) stavi ThisWorkbook. Ako i nije u tome problem verujem da ćeš koristeći debuger naći rešenje.
Potpis
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Re: [Excel] Svi nazivi radnih listova na jednom slozeni po abecedi 21.12.2007. u 01:20 · pre 229 meseci #8
Ako sam razumeo šta hoćeš da dobije onda bi moglo ovako

Code:


Sub UbaciListove()

Dim red As Integer
Dim ime As String

    Sheets("spisak").Select
red = 1
ime = Sheets("spisak").Cells(red, 1).Value

While ime <> ""
    MsgBox red & " " & ime
    Sheets(red + 1).Select
    Sheets(red + 1).Copy After:=Sheets(red + 1)
    ActiveWorkbook.Sheets(red + 2).Name = ime
    red = red + 1
    ime = Sheets("spisak").Cells(red, 1).Value
Wend

End Sub
Potpis
Možda je tačno da je sve već rečeno, samo nisu svi sve čuli i razumeli ...
Re: [Excel] Svi nazivi radnih listova na jednom slozeni po abecedi 30.01.2010. u 16:29 · pre 203 meseca
izmenjeno 2 puta, poslednji put Sudarica 30.01.2010. u 17:32
  1. Sudarica30.01.2010. u 17:32zapis iz teksta poruke
  2. Sudarica30.01.2010. u 17:31zapis iz teksta poruke
#10
zahvaljujem Marko_I na makro naredbi i meni to treba.



Code:

Public Sub MojMakro()
Dim brojac As Long
brojac = 0
    
    For Each Sheet In Workbooks(1).Worksheets
        If Not Sheet.Name = "spisak" Then
        brojac = brojac + 1
        Worksheets("spisak").Cells(brojac, 1).Value = Sheet.Name
        Worksheets("spisak").Cells(brojac, 2).Value = Sheet.Cells(2, 6).Value
        End If
    Next Sheet

Worksheets("spisak").Columns("A:B").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub
[/quote]

Bilo bi dobro još dodati

1. Hiperlink na popis radnih listova tako da me odvede na radni list koji mi treba.
2. Pomoću forme pretraživati sheet npr. ukucam ime i prezime osobe koja mi treba, pronađe ga i otvori taj sheet.
Dali mi može neko još dodati ovou u naredbu
Zahvaljujem
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme