Stránka 1 z 1

Excel - VBA - sloučení buňek  Vyřešeno

Napsal: 15 pro 2017 13:04
od Albeda
Zdravím komunitu,

potřeboval bych pomoci s mým makrem.

Co řeším - V cca 100 dokumentech, kde jsou cca 3 listy musím sloučit buňky stylem A1:B1; C1:D1, atd ... Musím je sloučit pouze v dané oblasti.

Co mám - makro, které toto dělá. Proměnná poc_rad a poc_slo je řádek a sloupec první buňky a kon_rad a kon_slo zase poslední buňka.

Co potřebuji - vymyslet lehký způsob na přepisování první a poslední buňky. Představuji si, že bych otevřel dokument, klikl na požadovaný list a například označil všechny buňky, které chci sloučit podle pravidla (viz "co řeším"), na něco klikl a bylo by.

Snad chápete a děkuji za případnou pomoc :-)

Kód: Vybrat vše

Sub SlucBunky()
'Program na slouceni bunek

'Pocatek
poc_rad = 3
poc_slo = 4
'Konec
kon_rad = 28
kon_slo = 31

a = 0
   
For i = poc_rad To kon_rad
    For j = poc_slo To kon_slo Step 2
        If j < kon_slo Then
            a = j + 1
        Else
            a = j
        End If
        Range(Cells(i, j), Cells(i, a)).Merge
    Next
Next

End Sub

Re: Excel - VBA - sloučení buňek

Napsal: 15 pro 2017 18:03
od elninoslov
To chcete označovať v každom zo 100 súborov manuálne nejakú oblasť, a ešte pre viac listov ? Nieje na to nejaké pravidlo, na základe ktorého by sa dalo automaticky určiť akej oblasti a akého listu sa to má týkať ?

Re: Excel - VBA - sloučení buňek

Napsal: 20 pro 2017 07:47
od Albeda
Zdravím a děkuji za odpověď.

Bohužel pravidlo spíše ne. "Range" na sloučení se často mění. Raději bych každý list, který bude takto změněn ručně odkliknul a takto i zároveň zkontroloval. Kdybych si mohl vymýšlet, aby to bylo snažší, zavedl bych následující pravidla:

1) poc_rad = najdi první buňku, co obsahuje "čas:" a odečti 1 řádek.

2)poc_slo = to stejný a přičti jeden sloupec

3)kon_rad = najdi poslední buňku obsahující "Kód akce"

4)kon_slo = najdi buňku (hledej zleva do prava) bez žádnédného ohraničení a odečti dva sloupce

Viz obrázek. Ještě akorát nevím, jak to udělat, abych to makro nemusel při každém novém spuštění dalšího dokumentu znovu vytvářet stylem copy-paste.

karta.jpg