Vba excel

Makrá, VBA kód - príklady, kúsky kódu

Vba excel

Poslaťod johntik » 23.11.2009, 11:44

Zdravim vas,

potreboval by som pomoct ohladne makra v excel 2003.
jedna sa o vytvorenie grafu z tabulky. napriklad z dvoch stlpcov by automaticky vytvorilo graf na novom zosite.

potom by som to potreboval hodit do cyklu, aby mi to z kazdeho riadku vytvorilo novy graf na novom zosite.

dikes
johntik
 
Príspevky: 4
Registrovaný: 23.11.2009, 11:32
Udelené poďakovania: 0 krát
Prijaté poďakovania: 1 krát

Re: Vba excel

Poslaťod Palo-admin » 23.11.2009, 20:15

Na tomto fóre sa už riešili nejaké veci s grafmi.
Excel 2003 - dynamický zdroj údajov pre graf
Je tam i popis ako urobiť graf manuálne.

Bez veľkého "vedátorovania" stačí pustiť záznam makra pri vytváraní grafu
(Nástroje / Makro / Zaznamenať nové makro...)

Všetky možnosti sú odchytené automaticky, potom stačí v makre nahradiť pevné údaje premennými,
napr. rozsah grafu a následne dať do cyklu.

Viď príklad:
Graf_makrom.xls


Kód: Vybrať všetko
Sub UrobGraf()
'
' Macro recorded 23.11.2009 by PaloPa - PC-PROG
Dim xSheet, xRange, xGrfNm, xNadpis
Dim aSheet, aRange, aGrfNm, aNadpis
Dim i

xSheet = "Sheet1;Sheet2": aSheet = Split(xSheet, ";")
xRange = "B3:D10;B3:C10": aRange = Split(xRange, ";")
xGrfNm = "Graf_A;Graf_B": aGrfNm = Split(xGrfNm, ";")
xNadpis = "Moj Graf;Tvoj Graf": aNadpis = Split(xNadpis, ";")

On Error GoTo xErr
    For i = LBound(aRange) To UBound(aRange)
        Charts.Add
        ActiveChart.ChartType = xl3DColumn
        'ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("B3:D10"), PlotBy:=xlColumns
        ActiveChart.SetSourceData Source:=Sheets(aSheet(i)).Range(aRange(i)), PlotBy:=xlColumns
        ActiveChart.Location Where:=xlLocationAsNewSheet, Name:=aGrfNm(i) '"Graf_X"
       
        With ActiveChart
            .HasTitle = True
            .ChartTitle.Characters.Text = aNadpis(i) '"Moj Graf"
            .Axes(xlCategory).HasTitle = True
            .Axes(xlCategory).AxisTitle.Characters.Text = "Os X"
            .Axes(xlSeries).HasTitle = True
            .Axes(xlSeries).AxisTitle.Characters.Text = "Os Y"
            .Axes(xlValue).HasTitle = True
            .Axes(xlValue).AxisTitle.Characters.Text = "Oz Z"
        End With
       
        ActiveChart.HasDataTable = True
        ActiveChart.DataTable.ShowLegendKey = True
xRes:
    Next i
       
Exit Sub
xErr:
    Resume xRes

End Sub
Nemáte oprávnenie prezerať súbory priložené v tomto príspevku.
Palo-admin
Administrátor stránky
 
Príspevky: 473
Registrovaný: 18.07.2008, 16:43
Udelené poďakovania: 6 krát
Prijaté poďakovania: 63 krát

Re: Vba excel

Poslaťod johntik » 02.12.2009, 10:08

zdravim, diky za informacie,

neviem este spravit ako zacyklim, ze mam urcity pocet riadkov, a pre kazdy riadok potrebujem spravit z dvoch stlpcov vzdy graf na novom harku
johntik
 
Príspevky: 4
Registrovaný: 23.11.2009, 11:32
Udelené poďakovania: 0 krát
Prijaté poďakovania: 1 krát

Re: Vba excel

Poslaťod Palo-admin » 02.12.2009, 21:24

johntik píše:zdravim, diky za informacie,
neviem este spravit ako zacyklim, ze mam urcity pocet riadkov, a pre kazdy riadok potrebujem spravit z dvoch stlpcov vzdy graf na novom harku


Nedá sa sem pripojiť ten XLS súbor? Neviem čo presne treba.
Palo
Palo-admin
Administrátor stránky
 
Príspevky: 473
Registrovaný: 18.07.2008, 16:43
Udelené poďakovania: 6 krát
Prijaté poďakovania: 63 krát

Re: Vba excel

Poslaťod johntik » 03.12.2009, 10:53

Zdravim vas,
pripajam vam ten xls subor, dufam, ze vam to bude jasnejsie.

dakujem za pomoc
Nemáte oprávnenie prezerať súbory priložené v tomto príspevku.
johntik
 
Príspevky: 4
Registrovaný: 23.11.2009, 11:32
Udelené poďakovania: 0 krát
Prijaté poďakovania: 1 krát

Re: Vba excel

Poslaťod Palo-admin » 03.12.2009, 14:39

johntik píše:Zdravim vas,
pripajam vam ten xls subor, dufam, ze vam to bude jasnejsie.

dakujem za pomoc


Pripájam riešenie.
Logika postavená na kopírovaní a obmene vzorového listu v grafmi.
Mená jednotlivých listov sú tvorené údajmi stĺpca CISUZI
(Predpokladám že sú jedinečné)

Palo
Nemáte oprávnenie prezerať súbory priložené v tomto príspevku.
Palo-admin
Administrátor stránky
 
Príspevky: 473
Registrovaný: 18.07.2008, 16:43
Udelené poďakovania: 6 krát
Prijaté poďakovania: 63 krát

Re: Vba excel

Poslaťod johntik » 03.12.2009, 15:28

Zdravim,

dakujem velmi pekne za pomoc, troska som sa zamotal, ale uz mi to je jasne konecne.

prajem vela uspechov
johntik
 
Príspevky: 4
Registrovaný: 23.11.2009, 11:32
Udelené poďakovania: 0 krát
Prijaté poďakovania: 1 krát

Re: Vba excel

Poslaťod Rebel » 10.12.2009, 11:45

Ahojte

chcel by som Vas poziadat o pomoc. Potreboval by som kratky program vo VBA, ktory mi ulozi v exceli cisla len vo vybranej oblasti zlava doprava vzostupne. Skusal som to makrom ktore ponuka excel ale uklada mi vzdy len cisla v prvom riadku a za dalsie bunky nie su stale na tom istom mieste.
Dakujem za pomoc a ochotu.

Miro.
Rebel
 
Príspevky: 1
Registrovaný: 10.12.2009, 11:36
Udelené poďakovania: 0 krát
Prijaté poďakovania: 0 krát

Re: Vba excel

Poslaťod Palo-admin » 10.12.2009, 12:31

Rebel píše:Ahojte

chcel by som Vas poziadat o pomoc. Potreboval by som kratky program vo VBA, ktory mi ulozi v exceli cisla len vo vybranej oblasti zlava doprava vzostupne. Skusal som to makrom ktore ponuka excel ale uklada mi vzdy len cisla v prvom riadku a za dalsie bunky nie su stale na tom istom mieste.
Dakujem za pomoc a ochotu.

Miro.


Ahoj Miro,
Pri odchytávaní makra je treba zapnúť v príslušnom dialógu
možnosť sortovania v riadku (viď obrázok)

1) Údaje / Zoradiť
2) v dialógu Zoradiť tlačidlo Možnosti
3) voľba "Zoradiť zľava do prava"


Vo výslednom makre je to potom táto časť kódu:
Orientation:=xlLeftToRight

Kód: Vybrať všetko
Sub Makro1()
' Makro zaznamenané 10.12.2009 , autor  PaloPa - PC-PROG

    Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _
        DataOption1:=xlSortNormal
End Sub


Palo
Nemáte oprávnenie prezerať súbory priložené v tomto príspevku.
Palo-admin
Administrátor stránky
 
Príspevky: 473
Registrovaný: 18.07.2008, 16:43
Udelené poďakovania: 6 krát
Prijaté poďakovania: 63 krát


Späť na MS Office VBA - Visual Basic for Applications

Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 1 hosť

cron