Palo235
01.04.09,08:04
Ahoj poradaci
Potreboval by som pomoct, chcel by som v powerpointe pracovat s dvoma excelovskymi tabulkami naraz. Skusal som hoci ake vzorce a nepodarilo sa mi to naist

vzorec z powerpointu na xls ide v pohode ale ked mam tie tabulky oboje v powerpointe netusim ako su tam zaznamenane

='[x.xls]Index'!$A1

pridal som aj prilohu pre lepsie pochopenie
Ivus44
01.04.09,06:27
A nebolo by jednoduchsie s tymi tabulkami pracovat v exceli a dat ich do powerpointu az na odprezentovanie? Dalo by sa to podla mna v powerpointe tak, ze prvu tabulku mas v liste 1 a druhu tabulku, si umiestnis do listu 2. A tam uz pekne rozozna umiestnenie buniek, pre pracovanie so vzorcami.
Palo235
01.04.09,08:54
praveze tak som to mal doposial ale ide o to ze ked taham data nechci mat v kazdom slide a chci to mat v prvom slide .... z dovodu: keby som spravil z tabulky "databaza" urobil chybu tak ju opravim len v prvej a nasledovne sa po odkliknuti sami opravia .)
Ivus44
01.04.09,09:12
Neviem teraz spravne pochopit, co chces dosiahnut :) skus tak ,,lopatisticky,, povedat, co je cielom..
Chobot
01.04.09,09:37
praveze tak som to mal doposial ale ide o to ze ked taham data nechci mat v kazdom slide a chci to mat v prvom slide .... z dovodu: keby som spravil z tabulky "databaza" urobil chybu tak ju opravim len v prvej a nasledovne sa po odkliknuti sami opravia .)


Neviem teraz spravne pochopit, co chces dosiahnut :) skus tak ,,lopatisticky,, povedat, co je cielom..

Ja asi viem, čo je jeho cieľom, ale to nebude možné dosiahnuť. Excel je takto len vnorená funkcia v PoverPointe a vždy môžeš mať aktívnu len jednu tabuľku. Naraz obe nemôžu byť aktívne a ani prepojené.

To je také, ako keby si do Wordu vložil ten istý obrázok 2x a na jenom si niečo upravil. hoci ide o rovnaké obrázky, po vložení už ide o 2 rôzne objekty, preto úpravou jedného sa druhý automaticky neupraví. Dalo by sa to aj podrobnejšie vysvetliť, ale je to na dlhšie rozprávanie a nemá to význam, keď to nejde.
Palo235
02.04.09,11:54
skusal som ich s makrom oznacit a je to Object 5 a 4

ActiveWindow.Selection.SlideRange.Shapes("Object 5").Select
ActiveWindow.Selection.SlideRange.Shapes("Object 4").Select

aj ked to je iny objekt s tym nejde pracovat :) skoda a uz si hovoril ze tu excelovsku tabulku co mam k powerpointu hodim dovnutra
PaloPa
02.04.09,14:02
Páči sa:

Sub ManipulWithXLS()
'ActiveWindow.Selection.SlideRange.Shapes("Object 5").Select

'Dim fTxt As PowerPoint.Shape
'Dim objSlide As PowerPoint.Slide
'Dim objText As PowerPoint.Shape

Dim objXLbookZdroj, objXLbookCiel

'objXLbook = fTxt.OLEFormat.Object
Set objXLbookZdroj = ActiveWindow.Selection.SlideRange.Shapes("Object 4").OLEFormat.Object
Set objXLbookCiel = ActiveWindow.Selection.SlideRange.Shapes("Object 5").OLEFormat.Object

'objXLbookCiel.Worksheets(1).Range("A1").Value = "Hello!"
objXLbookCiel.Worksheets(1).Range("A1").Value = objXLbookZdroj.Worksheets(1).Range("A1").Value

Set objXLbookZdroj = Nothing
Set objXLbookCiel = Nothing

End Sub


Viď prílohu.

V Návrhovom móde:
ALT+F8, Run

Palo
PaloPa
02.04.09,14:06
...
To je také, ako keby si do Wordu vložil ten istý obrázok 2x a na jenom si niečo upravil. ...

Vo Worde som to zatiaľ nepotreboval, ale v Exceli to ide.
Užitočné napr pre vkladanie loga.

Pokec ako - viď prílohu.
Palo
Palo235
03.04.09,09:43
no ked to nejde s vzorcami tak pomozu makra dik pomohlo to

ale zas mam dalsi problem

zapisal som si svoje makro takto

Sub Macro1()
' Makro zaznamenané 3. 4. 2009 uživatelem vavrek
' Zdroj Object 49
' Tabulka Object 48
' Nadpis Object 47

Dim objXLbookZdroj, objXLbookTabulka, objXLbookNadpis
Dim x, y As Integer

x = 2

znova:

Set objXLbookZdroj = Application.ActivePresentation.Slides(1).Shapes("Object 49").OLEFormat.Object
Set objXLbookTabulka = Application.ActivePresentation.Slides(x).Shapes("Object 48").OLEFormat.Object
Set objXLbookNadpis = Application.ActivePresentation.Slides(x).Shapes("Object 47").OLEFormat.Object

y = x + 1

' Nadpis
objXLbookNadpis.Worksheets(1).Range("A1").Value = objXLbookZdroj.Worksheets(1).Range("A" & y).Value

' Tabulka A
objXLbookTabulka.Worksheets(1).Range("A1").Value = objXLbookZdroj.Worksheets(1).Range("B2").Value
objXLbookTabulka.Worksheets(1).Range("A2").Value = objXLbookZdroj.Worksheets(1).Range("C2").Value
objXLbookTabulka.Worksheets(1).Range("A3").Value = objXLbookZdroj.Worksheets(1).Range("D2").Value
objXLbookTabulka.Worksheets(1).Range("A4").Value = objXLbookZdroj.Worksheets(1).Range("E2").Value
objXLbookTabulka.Worksheets(1).Range("A5").Value = objXLbookZdroj.Worksheets(1).Range("F2").Value
objXLbookTabulka.Worksheets(1).Range("A6").Value = objXLbookZdroj.Worksheets(1).Range("G2").Value
' Tabulka B
objXLbookTabulka.Worksheets(1).Range("B1").Value = objXLbookZdroj.Worksheets(1).Range("B" & y).Value
objXLbookTabulka.Worksheets(1).Range("B2").Value = objXLbookZdroj.Worksheets(1).Range("C" & y).Value
objXLbookTabulka.Worksheets(1).Range("B3").Value = objXLbookZdroj.Worksheets(1).Range("D" & y).Value
objXLbookTabulka.Worksheets(1).Range("B4").Value = objXLbookZdroj.Worksheets(1).Range("E" & y).Value
objXLbookTabulka.Worksheets(1).Range("B5").Value = objXLbookZdroj.Worksheets(1).Range("F" & y).Value
objXLbookTabulka.Worksheets(1).Range("B6").Value = objXLbookZdroj.Worksheets(1).Range("G" & y).Value
' Tabulka C
objXLbookTabulka.Worksheets(1).Range("C1").Value = objXLbookZdroj.Worksheets(1).Range("I" & y).Value
objXLbookTabulka.Worksheets(1).Range("C2").Value = objXLbookZdroj.Worksheets(1).Range("J" & y).Value
objXLbookTabulka.Worksheets(1).Range("C3").Value = objXLbookZdroj.Worksheets(1).Range("K" & y).Value
objXLbookTabulka.Worksheets(1).Range("C4").Value = objXLbookZdroj.Worksheets(1).Range("L" & y).Value
objXLbookTabulka.Worksheets(1).Range("C5").Value = objXLbookZdroj.Worksheets(1).Range("M" & y).Value
objXLbookTabulka.Worksheets(1).Range("C6").Value = objXLbookZdroj.Worksheets(1).Range("N" & y).Value
' Tabulka D
objXLbookTabulka.Worksheets(1).Range("D1").Value = objXLbookZdroj.Worksheets(1).Range("P" & y).Value
objXLbookTabulka.Worksheets(1).Range("D2").Value = objXLbookZdroj.Worksheets(1).Range("G" & y).Value
objXLbookTabulka.Worksheets(1).Range("D3").Value = objXLbookZdroj.Worksheets(1).Range("R" & y).Value
objXLbookTabulka.Worksheets(1).Range("D4").Value = objXLbookZdroj.Worksheets(1).Range("S" & y).Value
objXLbookTabulka.Worksheets(1).Range("D5").Value = objXLbookZdroj.Worksheets(1).Range("T" & y).Value
objXLbookTabulka.Worksheets(1).Range("D6").Value = objXLbookZdroj.Worksheets(1).Range("U" & y).Value

x = x + 1

Set objXLbookZdroj = Nothing
Set objXLbookCiel = Nothing
Set objXLbookNadpis = Nothing

GoTo znova

End Sub



poslal by som aj powerpoint subor ale ma 30 mb takze aspon makro


mam ten problem ze pri 92 slide sa mi vzdy zamrzne (nezamrzne nakonci lebo to nemam uzatvorene :P)

pise ze: Method "Object" of object `OLEFormat` failet

tento riadok je zly>>>
Set objXLbookTabulka = Application.ActivePresentation.Slides(x).Shapes("Object 48").OLEFormat.Object

a skoncilo to pri 92 slide a pritom su identicke ako pred tym tj. object sa neymenil
PaloPa
03.04.09,13:56
Robil si s debugerom vo VBA ?
Stopni si kód (breakpoint) pri x=92 a zdebuguj si príslušný objekt, či ti vôbec existuje.
Napr. možná chyba: VBA polia sa začínajú od 0 nie 1

Palo
Palo235
06.04.09,11:48
Robil si s debugerom vo VBA ?
Stopni si kód (breakpoint) pri x=92 a zdebuguj si príslušný objekt, či ti vôbec existuje.
Napr. možná chyba: VBA polia sa začínajú od 0 nie 1

Palo


- nerobil som s debugerom "ale asi to je krokovanie makra"

- ide o to ze slide 2 kde je Tabulka Object 48 a Nadpis Object 47 som cely slide s ctrl c a ctrl v rozmnozil. a aj po kontrole zostalo zachovane object 47 a 48. tak netusim preco zrovna object je chybny.

- a netusim ako tu chybnu hlasku obist kedze neviem jej cislo na doplnenie do dataerr
- dalsia vec keby som ju obisiel neviem ci mi to nevyneha 92 riadok co postupne doplna do slide
PaloPa
06.04.09,13:05
- nerobil som s debugerom "ale asi to je krokovanie makra"

- ide o to ze slide 2 kde je Tabulka Object 48 a Nadpis Object 47 som cely slide s ctrl c a ctrl v rozmnozil. a aj po kontrole zostalo zachovane object 47 a 48. tak netusim preco zrovna object je chybny.

- a netusim ako tu chybnu hlasku obist kedze neviem jej cislo na doplnenie do dataerr
- dalsia vec keby som ju obisiel neviem ci mi to nevyneha 92 riadok co postupne doplna do slide

V skratke:
1) ešte k tvojmu kodu. Z kódu čo si prilepil, je zrejmé, že príslušný cyklus po poslednej položke nekončíš. T.j. po poslednom x+1 ti to musí zhučať. Použi "For ..Next", alebo ešte lepšie "For Each .. Next" (pozri si help)

2) Debugovanie je aj "krokovanie" ale napr. aj zistenie si hodnoty aktuálnych premenných:
Zastav si kód cez F9 na ľubovoľnom riadku, klik pravým tlač. nad premennou (napr. X) a zvol "Add Watch", pripadne v "Immediate Window" (CTRL+G) zobraz hodnotu lubovolnej premennej: ? x,

atď.
Je toho na celé školenie.

Na odchytenie chýb si pozri v helpe konštrukciu "On Error"

jednoducho si vieš otestovať či ti objekt existuje, ak zastavíš kód na riadku
"Set objXLbookTabulka = Application.ActivePresentation.Slides(x).Shapes("O bject 48").OLEFormat.Object"
a do "Immediate Window" napíšeš:
? Application.ActivePresentation.Slides(92).Shapes("O bject 48").name

alebo si zmeň niečo na poslednom slide a takto si otestuj zmenenú hodnotu príslušného objektu na 92

Prípadne použi túto fn na otestovanie existujúcich objektov:
Sub Kontrola()
Dim i, j As Integer

On Error Resume Next
For i = 1 To Application.ActivePresentation.Slides.Count
Set xSld = Application.ActivePresentation.Slides(i)
Debug.Print xSld.Name
If xSld.Shapes.Count > 0 Then
For j = 1 To xSld.Shapes.Count
Debug.Print xSld.Shapes(j).Name
Next j
End If
Debug.Print vbCrLf
Next i
End Sub

P.