< návrat zpět

MS Excel


Téma: Dosazení jména sešitu. rss

Zaslal/a 5.3.2014 14:26

Zdravím všechny,
mám na vás prosbičku. potřebuji dosazovat do vzorce vždy název souboru, který samozřejmě není vždy stejný. U všeho ostatního, jsem to zvládnul, ale při vytváření vždy musím dosadit jeden vzoreček, který mi v tabulce něco vyhledá a pak jej později zruším a použiju data. A problém je, jak jinak zadat tento vzorec, ale sproměnou názvů souboru ? Jedná se o změnu tohoto [prevadec.xlsm] na cokoliv jiního, dle názvu sešitu. Nemělo by se jednat o nic těžkého a na internetu se pár napadů našel, ale bohužel mi ani jeden nefunguje a netuším proč.

ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-2],[prevadec.xlsm]TL!R2C1:R150C5,3,FALSE)),""!"",(VLOOKUP(RC[-2],[prevadec.xlsm]TL!R2C1:R150C5,3,FALSE)))"

Poradí někdo ?

V makru názvy řeším takto, tím jsem se jim vyhnul a vše funguje, bohužel u tohodle ne a ne přijít na řešení. prřitom je mi jasné, že je jednoduché 6 .
Set Prevadec = ActiveWorkbook
Prevadec.Activate


Všem moc díky za radu...

stop Uzamčeno - nelze přidávat nové příspěvky.

#018136
avatar
MsgBox ActiveWorkbook.Name

ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-2],["&activeworkbook.name&"]TL!R2C1:R150C5,3,FALSE)),""!"",(VLOOKUP(RC[-2],["&activeworkbook.name&"]TL!R2C1:R150C5,3,FALSE)))"citovat
#018137
avatar
? Tak teď nevím.

Možná sem špatně napsal. Potřebuji tu proměnou v tom vzorci :
"=IF(ISERROR(VLOOKUP(RC[-2],[prevadec.xlsm]TL!R2C1:R150C5,3,FALSE)),""!"",(VLOOKUP(RC[-2],[prevadec.xlsm]TL!R2C1:R150C5,3,FALSE)))"
Jde o ten název prevadec.xlsm, který bych potřeboval měnit, podle aktuálního názvů souboru. Mě napadlo asi toto, ale to nefunguje :
"=IF(ISERROR(VLOOKUP(RC[-2],[" + Activeworkbook.name + "]TL!R2C1:R150C5,3,FALSE)),""!"",(VLOOKUP(RC[-2],[" + Activeworkbook.name + "]TL!R2C1:R150C5,3,FALSE)))" Skusil jsem i:
" & Activeworkbook.name & "citovat
#018138
avatar
Tak sorry, já asi psal v době, kdy jsem tam viděl jen jednu větu.

Bohužel, zkusil jsem a výsledek je tohle Run-time error 1004. Application-defined or object-defided error.

A ["&ActiveWorkbook.Name&"] takhle mě to nepustí napsat, musím zapsat takto [" & ActiveWorkbook.Name & "].citovat
icon #018139
avatar
skús to pochopiť z tohto (nie je to úplný návod, ale pokiaľ to pochopíš, tak si to dokážeš i upraviť):Sub WithVariable()
Dim MyBook As String
MyBook = ActiveWorkbook.Name
MyBook = "[" & MyBook & "]" & ActiveSheet.Name
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-2]," & MyBook & "!R2C1:R150C5,3,FALSE)),""!"",(VLOOKUP(RC[-2]," & MyBook & "!R2C1:R150C5,3,FALSE)))"
End Sub
citovat
#018140
avatar
TAK SUPER. Ještě sjem tam měl jednu chybu, ale už vím kde je problém.

Moc díky, chyběla mi tam právě toto:
Dim MyBook As String
MyBook = ActiveWorkbook.Name

Tím jsem si to jméno nastavil v době, kdy byl aktivní ten soubor a né, až později, kdy jsem dělal v jiném. A proto to házelo tu chybu.

Ještě jednou moc díky, to bylo přesně to co potřebuju. Poradit, ale ne zas moc, abych musel na to přijít aspoň trochu já.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje