Odkaz ve VBA na soubor s proměnným názvem Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

tomasholecek
nováček
Příspěvky: 17
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Odkaz ve VBA na soubor s proměnným názvem

Příspěvekod tomasholecek » 22 úno 2011 10:51

Dobrý den, prosím o pomoc se zapsáním syntaxe. Problém je takovýto: mám otevřené dva soubory, z nichž jeden se jmenuje "Souhrn.xlsm" a druhý otevřený soubor má pokaždé jiný název. A potřeboval bych vytvořit proceduru, ve které by se mi do sešitu "Souhrn.xlsm" vložil vzorec s odkazem na druhý otevřený soubor
Nějak takto

Kód: Vybrat vše

Windows("Souhrn.xlsm").Activate
Range("B674").Select
'ActiveCell.FormulaR1C1 = _
        "='.......................'!R18C1&"doplnkovy text""


kde místo teček potřebuji dát odkaz na druhý otevřený sešit. (Vždy budou otevřené vždy pouze dva sešity)
Děkuji předem za pomoc

Reklama
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Odkaz ve VBA na soubor s proměnným názvem

Příspěvekod navstevnik » 22 úno 2011 11:14

Nazev toho druheho souboru ziskan jak? Z InputBoxu, ComboBoxu, odkazem na bunku s nazvem souboru?
Obecne retezec ..."='.......................'!R18C1... rozdel a vloz odkaz na nazev souboru: ..."='" & odkaz & "'!R18C1...
Vzdyt do bunky vkladas retezec, tak retezec poskladej dle potreby vcetne promennych obsahujicich prislusne casti retezce.

tomasholecek
nováček
Příspěvky: 17
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Odkaz ve VBA na soubor s proměnným názvem

Příspěvekod tomasholecek » 22 úno 2011 12:52

Název toho souboru je jeden ze dvou otevřených souborů. Problém je takový, že mám asi dvěstě souborů, které se jmenují různě. Potřebuji každý z nich otevřít, změnit co potřebuji a pak do souboru "souhrn.xlsm" dát vzorcem odkaz na tento otevřený soubor a protože se odkazuji vždy na stejné buňky (ale ve 200 rozdílných souborech), chtěl jsem to řešit makrem. A právě nevím, jak do proměnné dostat název druhého otevřeného souboru.

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Odkaz ve VBA na soubor s proměnným názvem

Příspěvekod navstevnik » 22 úno 2011 14:05

Ted je dotaz alespon pro mne jasnejsi.
Tato procedura vrati nazev toho dalsiho (druheho, pokud je jich otevreno vice, pak posledniho) otevreneho souboru do globalni promenne (tuto promennou vloz do retezce pro vlozeni formuly do bunky):

Kód: Vybrat vše

Option Explicit

Public SecWbkName As String

Sub SecondWorkbook()
  Dim Wbk As Workbook
  For Each Wbk In Application.Workbooks
    If Wbk.Name <> ThisWorkbook.Name Then
      SecWbkName = Wbk.Name
    End If
  Next Wbk
  Debug.Print SecWbkName
End Sub

Komentar k procedure snad vzhledem k jednoduchosti neni potreba.

PS.: to chces rucne otevirat cca 200 souboru a pak je zase ukladat a zavirat? To che resit pomoci procedury (to vlozeni nove hodnoty muze byt rucni).
Doplneno:
Ted jsem zjistil, ze s tou kupou souboru jiz experimentujes - viewtopic.php?f=35&t=60825&p=442634#p442634 , takze jmeno zrovna otevreneho druheho souboru mas v nejake promenne, tak to pouzij, zmenit obsah bunek, pridat zapis zmeny do nejakho souhrnneho souboru taktez lze doresit v procedure otevirani tech souboru.

tomasholecek
nováček
Příspěvky: 17
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Odkaz ve VBA na soubor s proměnným názvem  Vyřešeno

Příspěvekod tomasholecek » 23 úno 2011 09:46

Díky moc za pomoc. Pomohlo mi to. S tou kupou souborů v předchozím dotazu je to řešené tak, že otvírá jeden podruhém všechny soubory v adresáři:

Kód: Vybrat vše

 For Each objFile In objDir.Files
      If objFSO.GetExtensionName(objFile) = SExt Then
        Workbooks.Open Filename:=SPath & objFSO.GetBaseName(objFile) & "." & SExt
        ActiveWorkbook.RunAutoMacros Which:=xlAutoOpen

A teď řeším trošku odlišný problém, že jednak potřebuji otevřít konkrétní soubor, v něm změnit (bohužel ručně nějaké hodnoty, takže to nejde procedurou) a pak provázat se souhrnem a někdy potřebuji vytvořit soubor nový (tzn zatím neexistující) uložit a pak provázat se souhrnem. Takže kód výše se mi nepodařilo do toho zakomponovat, i když jsem to zkoušel (možná to nějak jde, ale nepřišel jsem na to :-).
Každopádně mi pomohl tvůj příspěvek. Děkuji


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti