Stránka 1 z 2
Excel 2003 - zobrazení obsahu buňky z databáze
Napsal: 28 pro 2009 10:52
od hortv
Do dané buňky potřebuji zobrazit obsah buňky A(x-tého řádku rozsáhlé databáze) v okamžiku, kdy je tento řádek vyselektován! Něco na způsob tvorby Formuláře z Dat, ale s možností samostatného umístění dané buňky(buněk) kdekoliv na listu. (Nemohu nejít žádnou funkci na způsob: go to! která by odkazovala na vyselektovaný řádek (buňku)). Je to řešitelné?
Re: Excel 2003 - zobrazení obsahu buňky z databáze
Napsal: 28 pro 2009 11:43
od navstevnik
Pokud jsem dobre porozumel, pozadavek lze resit pouzitim udalostni procedury Worksheet_SelectionChange. V editoru VBA vloz do modulu prislusneho listu udalostni proceduru:
Kód: Vybrat vše
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim TClmn As Range, SCll As Range
' vyber zdrojoveho sloupce, zde A:A :
Set TClmn = Me.Range("a:a")
If Intersect(Target, TClmn) Is Nothing Then Exit Sub
Set SCll = Target.Resize(1, 1)
Set SCll = SCll.Offset(0, TClmn.Column - SCll.Column)
' vlozit do cilove bunky, zde C1:
Me.Range("c1").Value = SCll.Value
Set TClmn = Nothing
Set SCll = Nothing
End Sub
pripadnou upravu pro jiny zdrojovy sloupec a jinou cilovou bunku viz poznamky v procedure, vhodne dodrzet rozdilny sloupec pro cilovou bunku
Re: Excel 2003 - zobrazení obsahu buňky z databáze
Napsal: 28 pro 2009 13:56
od hortv
Díky, to je to, co jsem potřeboval. Otrocky jsem to zkopíroval, zmněnil si komentář i cílovou buňku.
Když už to takhle funguje, jak by se musel VBA změnit, aby to místo hodnoty vrátilo číslo vyselektované buňky (A?)
Re: Excel 2003 - zobrazení obsahu buňky z databáze
Napsal: 28 pro 2009 14:18
od navstevnik
V procedure v radku, ve kterem je do cilove bunky zapisovana hodnota (Value), nahrad pro cislo radku:
Kód: Vybrat vše
...
Me.Range("c1").Value = SCll.Row
...
a pro adresu bunky:
Kód: Vybrat vše
...
Me.Range("c1").Value = SCll.Address(0, 0)
...
Re: Excel 2003 - zobrazení obsahu buňky z databáze
Napsal: 28 pro 2009 15:02
od hortv
V původním dotazu jsem poukazoval na cíl, kterého bych chtěl dosáhnout tj. po vyselektování ve zdrojovém sloupci mít možnost zobrazení údajů z vybraného řádku do různých buněk na listu. V konkrétním případě jde o tisk adres. Výše uvedené řeší jednu buňku. V Excelu se dokáži poměrně dobře orientovat, ale už ne ve VBA. Moje představa byla asi poněkud naivní. Vídím že problematika je podstatně složitější. Nebo existuje nějaká jednoduchá cyklická procedura, která to řeší?
Re: Excel 2003 - zobrazení obsahu buňky z databáze
Napsal: 28 pro 2009 15:52
od navstevnik
Takze pro ujasneni (v puvodnim dotazu jsi pozadoval vypsat obsah bunky), nyni:
po vyselektování ve zdrojovém sloupci mít možnost zobrazení údajů z vybraného řádku do různých buněk na listu
Nejak se v tom nevyznam.
Vyberes na listu jednu bunku v urcitem sloupci nebo blok bunek o jednom radku a nekolika sloupcich pocinaje libovolnym sloupcem a potrebujes
vypsat do bunky o udane adrese adresu vybraneho bloku nebo do ruznych bunek jednotlive adresy techto bunek?
Vhodne je pripojit prilohu s byt "rucne" vytvorenym pozadovanym vysledkem, slovni popis nemusi byt jednoznacny.
Re: Excel 2003 - zobrazení obsahu buňky z databáze
Napsal: 28 pro 2009 17:30
od hortv
Ano, vyberu na listu buňku (příklad A26) v daném sloupci – tedy A (nikoliv blok buněk). A potřebuji zapsat hodnotu této buňky do jiné, libovolně umístěné buňky. To již bylo úspěšně řešeno.
A do dalších (např. 6-ti) libovolně umístěných buněk zapsat hodnoty uvedené ve sloupcích B,C …až G tohoto řádku (tedy B26,C26….G26).
Re: Excel 2003 - zobrazení obsahu buňky z databáze
Napsal: 28 pro 2009 19:04
od navstevnik
Uvedl jsi:
V Excelu se dokáži poměrně dobře orientovat
V tom pripade nemel pro tebe byt problem (pri pouziti vyse uvedene procedury vracejici do urcene bunky (napr.: C1) adresu vybraneho radku (bunky) ve sloupci A:A) vlozit do bunek, do kterych pozadujes prenest hodnoty z bunek ve sloupcich A:G (napr.: A26, B26, C26,..., G26), vzorce pouzivajici funkce NEPŘÍMÝ.ODKAZ a POSUN.
Takze: procedura VBA vraci do bunky (napr.: C1) adresu vybrane bunky ve sloupci A:A (napr.: A26):
Kód: Vybrat vše
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim TClmn As Range, SCll As Range
' vyber zdrojoveho sloupce, zde A:A :
Set TClmn = Me.Range("a:a")
If Intersect(Target, TClmn) Is Nothing Then Exit Sub
Set SCll = Target.Resize(1, 1)
Set SCll = SCll.Offset(0, TClmn.Column - SCll.Column)
' vlozit do cilove bunky, zde C1:
Me.Range("c1").Value = SCll.Address(0, 0)
Set TClmn = Nothing
Set SCll = Nothing
End Sub
a potom vzorec do
libovolne bunky pro vlozeni obsahu (napr.):
z A26 je: =POSUN(NEPŘÍMÝ.ODKAZ(C1);0;0;1;1)
z B26 je: =POSUN(NEPŘÍMÝ.ODKAZ(C1);0;1;1;1)
z C26 je: =POSUN(NEPŘÍMÝ.ODKAZ(C1);0;2;1;1)
...
z G26 je: =POSUN(NEPŘÍMÝ.ODKAZ(C1);0;6;1;1)
Vzorce muzes doplnit o podminku vyhodnocujici prazdnou zdrojovou bunku (napr. z A26):
=KDYŽ(POSUN(NEPŘÍMÝ.ODKAZ(C1);0;0;1;1)="";"";POSUN(NEPŘÍMÝ.ODKAZ(C1);0;0;1;1))
Re: Excel 2003 - zobrazení obsahu buňky z databáze
Napsal: 01 led 2010 16:30
od hortv
Jak jsem uvedl výše, tak to funguje. To jsem ale zkopíroval tuto procedeuru přímo k příslušnému listu. V tom případě je to ale také trvale aktivní. To mi ale nevyhovuje, potřebuji si ji přiřadit k tlačítku.
Pokud vložím proceduru do modulu, tak to nefunguje a taky se to neobjevuje nikde v seznamu Maker.
Je to dáno typem procedury nebo dělám někde chybu. Díky za info.
Re: Excel 2003 - zobrazení obsahu buňky z databáze
Napsal: 01 led 2010 18:18
od navstevnik
Na zacatku dotazu jsi uvedl:
Kód: Vybrat vše
...potřebuji zobrazit obsah...v okamžiku, kdy je tento řádek vyselektován!
nyni pises
Kód: Vybrat vše
...V tom případě je to ale také trvale aktivní. To mi ale nevyhovuje, potřebuji si ji přiřadit k tlačítku.
Ujasni si, prosim, co potrebujes, jasne sformuluj pozadavek, napr.:
"Vyberu bunku ve sloupci A:A, po stisku tlacitka (kde ma byt?, pri rozsahlejsi databazi odroluje) ma byt obsah bunek Axx:Gxx vlozen do libovolnych bunek na tomtez (jinem) listu", potom muzes ocekavat presne odpovidajici pomoc. Nejsem telepat, takze nemohu znat ucel pozadovane pomoci; zadost o poskytnuti demo souboru jsi ignoroval.
PS.: Drive jsem uvedl, ze procedura ma byt v editoru VBA vlozena do modulu prislusneho listu, udalostni procedury jsou aktivni pouze v modulu prislusneho objektu - list, sesit. Uvod do tvorby procedur viz treba zde:
http://www.officir.ic.cz/excelentne.html
Re: Excel 2003 - zobrazení obsahu buňky z databáze
Napsal: 01 led 2010 19:11
od hortv
Když jsem se pustil do řešení problému, domníval jsem se, že to bude záležitost jednoho odpoledne. Trochu jsem se do toho zamotal a předpokládal jsem, že po malém nakopnutí budu již dál sám pokračovat. Nechtěl jsem nechat někoho řešit ceou problematiku.
Co se týká možnosti poslat demo soubor, to vidím nyní poprvé. Nabídku jsem zde nenašel. Ale rád ji využiji. Soubor připravím a pošlu na e-mail.
Re: Excel 2003 - zobrazení obsahu buňky z databáze
Napsal: 01 led 2010 20:21
od navstevnik
Samozrejme lze pridat soubor jako prilohu (pod oknem odpovedi je karta pro pripojeni prilohy, muze se i zkomprimovat) nebo jako prilohu soukrome zpravy (SZ).