Kopiranje med različnimi inštancami Excela

Pomoč pri izdelavi makrov
Odgovori
PaPaDiZ
Prispevkov: 26
Pridružen: Pe Maj 11, 2007 7:01 am

Kopiranje med različnimi inštancami Excela

Odgovor Napisal/-a PaPaDiZ »

Pazdravljeni

Nikakor mi ne uspe spravit sukpaj kode. Makro se zaganja iz delovnega zvezka a.xls, rad bi pa da iz delovnega zvezaka b.xls kopira stolpec A, v delovni zvezek a.xls. Delovna zvezka tečeta pod različnimi inštancami excela. Prosim za pomoč, hvala
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Kopiranje med različnimi inštancami Excela

Odgovor Napisal/-a admin »

Kaj pa pomeni "Različne instance Excela"? Če pomeni to, kar naj bi pomenilo; recimo da zvezek A odprete v Excelu 2017, zvezek B pa v Excelu 2003; Potem med njima ne morete avtomatično kopirati podatkov. VBA koda lahko kontrolira samo zvezke ki tečejo znotraj ISTEGA Excela
lp,
Matjaž Prtenjak
Administrator
PaPaDiZ
Prispevkov: 26
Pridružen: Pe Maj 11, 2007 7:01 am

Re: Kopiranje med različnimi inštancami Excela

Odgovor Napisal/-a PaPaDiZ »

Oba delovna zvezka sta odprta v excelu 2010, vendar v različnih procesih.
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Kopiranje med različnimi inštancami Excela

Odgovor Napisal/-a admin »

Pozdravljeni,

To pa je čisto noramalna situacija. Excel za vsak dokument naredi nov proces. Takšen makro lahko preprosto posnamete in dobili boste sledečo kodo (Ta koda zvezek B najprej odpre in potem kopira podatke!):

Koda: Izberi vse

Option Explicit

Sub Makro1()
'
' Makro1 Makro
'

'
    Workbooks.Open Filename:="b.xlsx"
    Columns("A:A").Select
    Selection.Copy
    Windows("a.xlsx").Activate
    ActiveSheet.Paste
End Sub
lp,
Matjaž Prtenjak
Administrator
PaPaDiZ
Prispevkov: 26
Pridružen: Pe Maj 11, 2007 7:01 am

Re: Kopiranje med različnimi inštancami Excela

Odgovor Napisal/-a PaPaDiZ »

Pozdravljeni

Niste me čisto razumeli. Bom poiskušal drugače razložiti. Zvezek B se odpira preko FTP povezave in ga Excel odpre v novem procesu (če pogledam v Task Manager pod procese tečeta dva EXCEL.EXE procesa in ta drugi je ravno ta B zvezek). V prvem procesu so vsi lokalno odprti zvezki.

Hvala
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Kopiranje med različnimi inštancami Excela

Odgovor Napisal/-a admin »

če je temu tako, potem verjetno tečeta tudi pod različnimi uporabniškimi imeni ib v tem primeru podatko ne boste mogli kar preprosto kopirati z VBA kodo.
lp,
Matjaž Prtenjak
Administrator
PaPaDiZ
Prispevkov: 26
Pridružen: Pe Maj 11, 2007 7:01 am

Re: Kopiranje med različnimi inštancami Excela

Odgovor Napisal/-a PaPaDiZ »

Odpre se lokalno v novem procesu pod istim uporabniškim imenom
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Kopiranje med različnimi inštancami Excela

Odgovor Napisal/-a admin »

Vzpostavite situacijo, da sta oba zvezka odprata tako kot morata biti. V enem izmed njiju se postavite v VBA urejevalnik in poglejte ali preko VBA Project okna vidite drug delovni zvezek. Če ga vidite, potem lahko uporabite malce prirejeno kodo, ki sem vam jo poslal jaz. Če preko VBA drugega delovnega zvezka ne vidite, potem preko VBA stvari ne boste mogli kopirati, saj drugega zvezka ne morete izbrati. Psevdo koda bi bila takšna:

Koda: Izberi vse

Izberi delovni zvezek
Kopiraj stolpec A
Izberi DRUGI delovni zvezek   <--- če VBA drugega DZ ne vidi potem te kode ne more izvesti!
Kot torej vidite je stvar jasna. Če VBA ne vidi drugega delovnega zvezka, potem tja ne more kopirati podatkov.

OK: Sedaj pa če čisto programersko. Seveda rešitev obstaja, saj lahko tudi vi ročno označite nekaj v prvem zvezku iz z miško to kopirate v drugega. Seveda to deluje, le v VBA to ni preprosto rešiti (potrebno je nižjenovojsko programiranje na nivoju Windows API funkcij) in presega pomoč na tem forumu.
lp,
Matjaž Prtenjak
Administrator
PaPaDiZ
Prispevkov: 26
Pridružen: Pe Maj 11, 2007 7:01 am

Re: Kopiranje med različnimi inštancami Excela

Odgovor Napisal/-a PaPaDiZ »

Ne, v VBA urejevalniku ne vidim drugega zvezka.
Odgovori