Předmět Autor Datum
https://www.extendoffice.com/documents/excel/3685-excel-delete-empty-columns-with-header.html
host 04.05.2022 10:04
host
V Tvojom prípade akurát musíš zameniť riadok v makre z hostovho linku: If Application.WorksheetFunc…
robert13 04.05.2022 11:17
robert13
Super, děkuji, funguje.
Martin0000 04.05.2022 11:49
Martin0000
Ještě prosím makro, které by v sešitu vyhledalo veškerá čísla ve formátu obecný 8,59416E+11 a převed…
Martin0000 04.05.2022 12:02
Martin0000
Problémom je, že aj Tebou zmieňovaný tvar 8,59416E+11 je číslo, len je zobrazené vo vedeckej notácii…
robert13 05.05.2022 18:23
robert13
OK rozumím, tak se ještě zeptám na další makro, pogřebuju vycistit vzdy jiny sloupec od html kodu ja…
Martin0000 05.05.2022 19:48
Martin0000
kód funkce, kterou jsem našel přikládám, jak z toho udělat makro bohužel nevím..
Martin0000 05.05.2022 19:56
Martin0000
Daj tabuľku s ukážkou, či si mám vytvoriť dáta na skúšanie sám?
robert13 05.05.2022 20:16
robert13
Omlouvám se, zde..
Martin0000 05.05.2022 20:37
Martin0000
Čiže chceš makro, kde Ty určíš, ktorý stĺpec má prečistiť. V module s Tvojou čistiacou funkciou dopl…
robert13 06.05.2022 08:14
robert13
Super, moc děkuji, teď bych potřeboval makro, které najde všechny buňky s určitým obsahem, třeba htt…
Martin0000 08.05.2022 16:05
Martin0000
To je v poriadku. Čo si mu povedal, to Ti vrátil. Povedal si mu: nájdi bunku obsahujúcu "http" a zar…
robert13 08.05.2022 19:08
robert13
Nikde... Proto se ptám jak to udělat, aby našel všechny?
Martin0000 08.05.2022 19:12
Martin0000
A aj si rozmýšľal nad tým, čo som Ti poslal v predošlej domácej úlohe? Tam predsa tiež bolo potrebné…
robert13 08.05.2022 19:27
robert13
Děkuji. poslední
Martin0000 09.05.2022 08:27
Martin0000

Problémom je, že aj Tebou zmieňovaný tvar 8,59416E+11 je číslo, len je zobrazené vo vedeckej notácii i keď je nastavený všeobecný formát bunky.
Riešenie Tvojho problému závisí od toho, či v rámci tabuľky máš i iné stĺpce, kde by došlo k neželanej úprave formátu čísla, keby sa použilo makro na jednotný hromadný formát pre čísla.
Neviem o spôsobe, ako by sa dalo v bunke so všeobecným formátom zistiť, či je číselný obsah zobrazený štandardne alebo vo vedeckej notácii.
Preto sa nedá vyhľadať medzi bunkami v stĺpci konkrétna bunka, ktorá je zobrazená vo vedeckej notácii. Dá sa ale celý stĺpec skonvertovať na formát "číslo", čím sa zruší forma vedeckej notácie.
Takto by sa dala celá tabuľka prejsť, konkrétne kontrolou, či bunka v každom treťom riadku tabuľky (prvé dva riadky sú záhlavie) obsahuje číselnú hodnotu a ak áno, tak celý stĺpec skonvertuje na formát "číslo".
To ale znamená, že všetky číselné stĺpce budú mať jednotný formát, lebo nemôžem dopredu vedieť, ktorý stĺpec môže obsahovať vedeckú notáciu. Tým ale neviem dodržať, že v niektorom stĺpci by som chcel napr 12 miestne číslo bez desatinných miest ale v inom stĺpci by som chcel napr. číslo s oddeľovaním tisícov a na dve desatinné miesta.
Dalo by sa to riešiť tak, že podľa obsahu záhlavia by sa makro rozlíšilo, ktorý stĺpec by mal byť skonvertovaný na 12 miestne číslo (vlastný formát "0") a ktorý napr na dvojmiestne desatinné číslo s oddeľovaním tisícov (vlastný formát "# ##0,00") a pod...
Inou možnosťou je vhodný spôsob importu dát z externého zdroja tak, aby bol definovaný pre každý stĺpec požadovaný typ formátu

OK rozumím, tak se ještě zeptám na další makro, pogřebuju vycistit vzdy jiny sloupec od html kodu jako jaou &nbsp; a vše mezi <>, našel jsem nějakou funkci a ano jde to, ale nechci to řešit pomocí vzorce, chtěl bych makro, které když spustím, dá mi na výběr sloupec který chci vycistit a ok.

Čiže chceš makro, kde Ty určíš, ktorý stĺpec má prečistiť.
V module s Tvojou čistiacou funkciou doplň makro:

Sub CistiStlpec()
    Application.ScreenUpdating = False
    Dim r As Integer
    Dim PocR As Integer
    PocR = Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row
    For r = 3 To PocR
        Cells(r, ActiveCell.Column) = Vycisti_http(Cells(r, ActiveCell.Column))
    Next r
End Sub

Spustením makra sa prečistí stĺpec, v ktorom sa práve nachádza aktívna bunka. Čiže nemusíš ani zadávať, o ktorý stĺpec Ti ide, stačí sa v ňom nachádzať.
Stĺpec sa čistí počínajúc tretím riadkom, keďže v prvých dvoch riadkoch máš záhlavie.

Pokiaľ si k makru priradíš klávesovú skratku, bude to najpohodlnejšie.

Super, moc děkuji, teď bych potřeboval makro, které najde všechny buňky s určitým obsahem, třeba https a nastaví jim zarovnání vlevo.. Zkoušel jsem .Find("http").HorizontalAlignment = xlLeft

Bobužel vzdy najde a zarovná doleva jen první nalezenou buňku

To je v poriadku. Čo si mu povedal, to Ti vrátil.
Povedal si mu: nájdi bunku obsahujúcu "http" a zarovnaj obsah doľava.
Našiel... samozrejme že prvú (ktorú mal nájsť - tretiu? Dvadsiatu prvú? Stopäťdesiatu šiestu?)... a zarovnal.
Kde si povedal, že toto má urobiť so všetkými bunkami, ktoré obsahujú "http" ?

A aj si rozmýšľal nad tým, čo som Ti poslal v predošlej domácej úlohe?
Tam predsa tiež bolo potrebné prejsť všetky bunky stĺpca, ktoré si chcel vyčistiť...
A tam máš i odpoveď.

Časť:

    For r = 3 To PocR
        Cells(r, ActiveCell.Column) = Vycisti_http(Cells(r, ActiveCell.Column))
    Next r

robí presne to, čo chceš: "prejdi všetky bunky v aktívnom stĺpci od tretieho po posledný riadok a všade vyčisti".
Žiaľ, ak ti to z tých riadkov nie je jasné, ťažko chcieť tvoriť vlastné makrá...

Nasledujúci kód Ti zarovná vľavo všetky bunky aktuálnej oblasti počínajúcej bunkou A1 (ak A1 nie je súčasťou aktuálnej oblasti, treba prispôsobiť alebo určiť požadovanú oblasť) obsahujúcou (teda nie rovnajúcou sa ale obsahujúcou) text "http":

Sub Zarovnanie()
Dim rng As Range
Dim cell As Range
Set rng = Range("A1").CurrentRegion
For Each cell In rng
    If InStr(1, cell.Value, "http") > 0 Then cell.HorizontalAlignment = xlLeft
Next cell
End Sub

Zpět do poradny Odpovědět na původní otázku Nahoru