Cloud Computing Center



Hodnotenie používateľov: 5 / 5

Hviezdy sú aktívneHviezdy sú aktívneHviezdy sú aktívneHviezdy sú aktívneHviezdy sú aktívne
 

Táto úloha ma inšpirovala z dôvodu, že pracovníci vo firmách riešia import dát z informačných systémov, kde v číslach namiesto desatinných čiarok dostanú desatinné bodky. Cieľom je rýchlym a elegantným riešením prekonvertovať tieto "čísla" na reálne čísla. Bežne môžeme použiť nahradenie textu (Karta Home > Find&Select > Replace), ale v niektorých prípadoch môže dôjsť k výraznej zmene čísla pri jeho čísla (napr. číslo s desatinnými miestami zmení na celé).

Práve pre tento prípad som pripravil nasledujúce makro.

Súbor s riešením je samozrejme k dispozícii na stiahnutie kliknutím sem. Funguje to tak, že po otvorení je potrebné vyznačiť údaje, ktoré obsahujú desatinné bodky, potom  makro s názvom NahradDesatinneBodkyZaCiarky  spustíme klávesovou skratkou CTRL + SHIFT + N alebo napr. prostredníctvom karty View kde úplne napravo nájdeme Macros > View Macros, príp. klávesovou skratkou ALT + F8. Prostredníctvom príkazu View Macros nám Excel zobrazí nasledovné okno, kde makro NahradDesatinneBodkyZaCiarky  spustíme prostredníctvom Run.

Pozor, ak Vám makro v Exceli nejde spustiť, skúste si všimnúť, či ich máte povolené, čo Excel informuje notifikačným panelom v hornej časti, vyzerá to nasledovne:

Je potrebné zvoliť Enable Content :)

Pre tých, ktorí sa učia programovať v Microsoft Excel VBA uvádzam zdrojový kód spolu s poznámkami, ktorý som použil:

Sub NahradDesatinneBodkyZaCiarky()
' NahradBodkyZaCiarky Macro
'
' Deklaracia premennych cell a commaPosition
  Dim cell As Range
  Dim commaPosition As Integer
  For Each cell In Selection 
    ' Najprv zistime ci bunka obsahuje desatinnu bodku 
    commaPosition = InStr(cell.Value, ".") 
    ' Ak ano, tak este zistujeme ci aktualna bunka je prazdna, ak nie, potom ... 
    If commaPosition > 0 And Not IsEmpty(cell) Then 
      ' ... nahradime desatinne bodky za ciarky a pripocitame 0, aby sme prekonvertovali text na cislo 
      cell.Value = Replace(cell.Value, ".", ",") + 0 
    End If 
  Next cell 
End Sub

Ak by ste mali otázky alebo pripomienky k tomuto makro, píšte prosím do komentárov alebo chatu, príp. ak máte záujem o školenie Tvorba makier v Exceli, neváhajte ma prosím kontaktovať.

Certifikáty

Mgr. Ján Žitniak info

jan-zitniak-lektor-pc-kurzovVo Fínsku nadobudol profesionálne skúsenosti s IT lektorovaním a vyspelým spôsobom výučby - tieto skúsenosti sa snaží zrozumiteľným a priateľským spôsobom odovzdať ďalej svojím poslúchačom. Orientuje sa na počítačové školenie Excel, Word,outlook-jednoduse-2013-jan-zitniak Joomla, SEO. Držiteľ medzinárodného certifikátu Microsoft Excel - Office Excel ® 2010 Expert. Je autorom knihy Microsoft Outlook 2013 jednoduše nakladateľstva Computer Press . Viac ...

Príručka Microsoft Word, Excel, PowerPoint zadarmo na stiahnutie

banner-kontakt-janzitniak-ponuka-pocitacovych-kurzov

Prihlásenie