Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » vba-listy-bunky » zapis-udaj-do-bunky-excel-vba

Excel VBA - zapiš údaj do buňky

Jak zapisovat do buněk pomocí maker (VBA).

Úvodem

Jak do konkrétní buňky zapsat nějaký údaj? V následujících příkladech je několik možností.

Příklad makra 1

Tradiční úkol. Do buňky A1 makro zapíše "Ahoj světe".

Sub Zapis()
     Cells(1, 1) = "Ahoj světe."
End Sub

Příklad makra 2

Trochu složitější požadavek. Makro zapisuje do příslušného řádku a sloupce údaj, o který řádek a sloupec jde.

Sub popisuj()
For i = 1 To 9 For j = 1 To 3 Cells(i, j) = "Řadek: " & i & " - Sloupec " & j Next j Next i End Sub

Ukázka:

MS Excel - ukazky zapisuu do bunky.

Příklad makra 3

Makro vyplní více buněk požadovaným textem.

Sub Vicebunek()
     Range("A1, A3, A5") = "Ahoj!"
End Sub


Sub Vicebunek2()
     Range("A1:B5") = "ABECEDA"
End Sub

Příklad makra 4

Pomocí makra zapište údaj do určité buňky ve vybrané oblasti.

Sub Dobunky()
     Range("A1:C5").cells(8) = "ZYZ"
End Sub

Toto je trochu složitější úvaha. Zápis se provádí do x-té buňky ze zadaného rozsahu.
V naší výběrové tabulce má první řádek pozice:
1 2 3 4 5
druhý řádek pozice:
6 7 8 9 10
třetí řádek pozice:
11 12 13 14 15 16
Náš požadavek je zapsat požadovanou hodnotu do pozice (buňky) 8.

Závěr

Údaje makro v MS Excel zapisuje na aktuálním listu v aktuálním sešitu. Pokud budete chtít makrem provést zapis na jiný list (sešit), je potřeba kód doplnit o adresu daného listu (sešitu).

Článek byl aktualizován: 24.01.2012 19:54



| tisk stránky TISK | nahoru NAHORU |
| |

Další články k tématu




Komentáře


Kvitek

Přidáno: 06.11.11 12:44

Ahoj, bojuju teď s případem, že mám počítanou buňku(A2), která mi vrací číselnou hodnotu - pak mám buňku(A1), ve kterém mám nějaké číslo napsané "natvrdo". Tak.. a teď bych potřeboval makro, které vezme hodnotu z A2, provede něajký další početní úkon (vynásobí dvěma, přičte jedna atp..) a výsledkem vynásobí hodnotu buňky A1 a tento výsledek zapíše do A1 jako novou hodnotu.. Uf.. Snad je to srozumitelné.. Logicky tuším jak to provést, ale neznám správné příkazy a syntaxi..

Pavel Lasák

Přidáno: 06.11.11 20:38

To Kvitek: Třeba takto. a = Range("A2").Value b = a + a Range("A1").Value = b Další výpočty dle libosti.

Aureas

Přidáno: 30.11.11 19:38

Ahojky POtreboval bych pomocí makra nastavit "tlacítko" tisk-vybraná cast bunek- pokusil jsme se toto makro udelat pomoci zaznamu,ale ouvej chyba 1004: Sub tlačítko10_Kliknutí() ' ' tlačítko10_Kliknutí Makro ' ' Range("D1:K19").Select Selection.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False End Sub Prosím o pomoc kde je chyba dekuji

Pavel Lasák

Přidáno: 30.11.11 20:40

To Aureas: ActiveSheet.PageSetup.PrintArea = "$C$4:$K$16" ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False

Aureas

Přidáno: 01.12.11 19:08

Dík moc

Majkie

Přidáno: 03.01.12 12:32

Zdravíčko přeji, pomocí zaznamu jsem vytvořil makro, které mi po stisknutí tlačítka vybere požadované listy a uloží je do jediného PDF souboru na požadované umístění. Nelíbí se mi však název takto vzniklého PDF souboru. Bylo by možné vznikající PDF soubor rovnou pojmenovat dle hodnoty buňky E2 (jen hodnoty - buňka E2 zobrazuje výsledek vzorce) na listu Fakturace? Současný kód vypadá následovně: PDF_Save_All Makro ' Sheets(Array("FAV", "DL", "Výdejka")).Select Sheets("FAV").Activate ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "D:\Dokumenty\Pracovní\DUAVE\Dropbox\Faktury a dodací listy vydané\2012\FAP a DL PDF 2012\FAP\FA2012_ .pdf" _ , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ :=False, OpenAfterPublish:=True Sheets("Fakturace").Select Range("E3").Select End Sub Moc díky předem za případnou pomoc. S pozdravem Michal

Pavel Lasák

Přidáno: 03.01.12 17:38

To Majkie: Stačí přečíst údaj z dané buňky předpokládam že je ve tvaru: "C:\lasak\2012.pdf" a = Range("A1").Value no a předá se pro export ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Pdf_nazev ....

BJ

Přidáno: 13.01.12 13:57

Dobrý den, příklad č. 2 nefunguje - čtvrtý řádek je chybný. Může být např. takto: Cells(i,j) = "Řadek: " & i & " - Sloupec " & j

Pavel Lasák

Přidáno: 24.01.12 19:54

To BJ: Děkuji už jsem napravil, při kopírování vypadla formule Cells(i,j) =, takže je napraveno a příklad již funguje správně.

Jirka

Přidáno: 11.02.12 15:06

Super stránky, jsou mým velkým pomocníkem. Děkuji

Pavel Lasák

Přidáno: 11.02.12 17:08

To Jirka: Díky, proto je tvořím :)

Štěpán

Přidáno: 15.02.12 08:39

Dobrý den, mám big problém. V listu mám vytvořeno několik různých výpočtů na základě nich mi to v poslední buňce vypíše výsledek ve formě jména. Problém mám v tom že buňka ve které mám výsledek zcela nesmyslně formátuje zobrazený výsledek. Pokud dané slovo napíšu čistě bez vzorečku dá se zarovnat na střed buňky a i další formáty fungují jak mají. Pokud ho ale nechám zobrazit pomocí vzorečku jméno je divně posunuté a nejde vyrovnat na střed buňky. Je nějaká možnost jak nechat v buňce zobrazit pouze text (který by šel normálně formátovat)? Prosím o pomoc. Děkuji

Pavel Lasák

Přidáno: 15.02.12 10:33

To Štěpán: Neobsahuje výsledná hodnota mezery (nevím jaký je výsledný vzorec)? Pokud provedete naformátování musí fungovat.

Štěpán

Přidáno: 15.02.12 11:54

Děkuji za rychlou reakci. Abych shrnul co se počítá. V závislosti na datumu a čase se vypisuje kdo má momentálně pohotovost. Výsledek je celé jméno (Petr Novák), s mezerou. K výpočtům používám funkce Když, A, SVyhledat. V průběhu výpočtů se v novém vzorci odkazuji na buňky kde již je nějaká funkce. Konečný výsledek je pomocí fc. Concatenate. Jména která se vypisují ve výsledné buňce si bere z běžného textu. Zkoušel jsem ve jménu vynechat mezery ale formátování se o moc nezlepšilo. Možná již dělám chybu v některém z výpočtů

Pavel Lasák

Přidáno: 15.02.12 14:52

To Štěpán: Tak v Concatenate postupně nahrazovat jednotlivé proměnné a zjistit které to dělá. Jelikož není problém buňku naformatovat, je potřeba zjistit co formátování ovlivňuje. Zkusit do jiné buňky = buňka s vzorcem Concatenate zda s formátem je také stejný problém.

Štěpán

Přidáno: 16.02.12 07:19

Díky moc za radu, pokusím se funkci opravit či ji rovnou nahradit něčím jiným. Proto asi další zádrhel... existuje makro (nebo funkce) která by mi kontrolovala v jednom sloupci 8 řádků (A1:A8) a v případě že se v některém z 8mi řádků zobrazí nějaký text mi tento nechala zobrazit v jiné buňce(např.C3)? A hlavně jak udělám aby mi to případné makro kontrolovalo automaticky a já ho nemusel pokaždé ručně spouštět. Předem moc dík

Pavel Lasák

Přidáno: 16.02.12 14:51

To Šttěpán: Využít události listu, například SheetChange (změna v listu)http://office.lasakovi.com/excel/vba/vlastnosti-metody-udalosti-kolekce-excel-vba/ cyklem for 1 to 8 přes if zjišťovat, zda buňka obsahuje text.

Štěpán

Přidáno: 16.02.12 15:38

Tak jsem nakonec využil funkci Pročistit a problém je vyřešen. Veškeré info jsem čerpal z vašich stránek takže je to super a moc vám dííík

Pavel Lasák

Přidáno: 16.02.12 16:38

To Štěpán: Gratuluji k vyřešení. Jsem rád, že stránky pomáhají.

Martin

Přidáno: 25.02.12 16:05

Zdravím, Potřeboval bych v tabulce udělat asi makro na "vyber řádek, vlož nový (pod/nad je to jedno) a zkopíruj do něj obsah původního" Jenže, takovýchto řádků mám v tabulce několik na random pozicích, takže bych potřeboval způsob jak to vymslet aby mi to zkopírovalo jen řádky které předtím označím

Andrej

Přidáno: 12.04.12 15:51

Dobry den,chcel by som sa spytat: Ked zadam do TextBox-u cislo napr. na dve dasatinne miesta a chcem to nacitat do bunky v zosite. V bunke sa mi zobrazi hodnota cisla ako text, bez cisel za desatinnou ciarkou. Pred cislom v bunke sa vytvori apostrof. Ako tento problem odstranit, aby som mal v bunke zapisane cislo s desatinnou ciarkou? Dakujem velmi pekne za odpoved.

Pavel Lasák

Přidáno: 12.04.12 19:54

To Martin: viz článek: http://office.lasakovi.com/excel/vba-listy-bunky/radky-sloupce-excel-vba-kody/

Pavel Lasák

Přidáno: 12.04.12 19:58

To Andrej: nastavit příslušný formát například takto: Range("a1").Value = CDec(Me.TextBox1.Value) CBool
CByte
CCur
CDate
CDbl
CDec
CInt
CLng
CSng
CStr
CVar
nebo nastavit formát textbox TextBox1.Text = Format(Number, "0.00")

jojo

Přidáno: 10.05.12 13:25

zdravim potrebujem poradit s makrom .mam tri stlpce a chcem aby zo stlpca A vybral vsetky hodnoty napriklad "009" a scital hodnoty v C podla stlpca B. priklad v stlpci B sa nachadza 3x "112" pre "009" v stlpci A. v stlpci C ma kazda "112" inu hodnotu a tie chcem scitat. vysledkom bude tab 111 = ??? 112 = ??? 211 = ??? atd. dufam ze je to zrozumitelne vysvetlene. poradte prosim ako zapisat makro. vstupne data A B C 008 231 0,35951990495 008 243 0,39733340372 008 231 0,00084065193 008 411 0,25443966339 008 324 3,80155775217 009 311 0,09992048863 009 112 0,00083684832 009 211 45,94512305510 009 512 0,08039077068 009 324 0,41974515393 009 121 0,44113070070 009 141 0,55228658827 009 112 8,71109016533 009 311 3,52031756380 009 222 0,60390707015 009 112 1,56412570854 010 211 28,00392873070 010 311 4,71930247394 010 243 0,29071348127 010 211 1,64391386883


Přidání nového komentáře




(vlož číslo šest)

Z bezpečnostních důvodu dočasně nemůžete použít HTML značky a URL. Děkuji za pochopení.
Děkuji, za Vaše komentáře.

Za obsah komentářů neodpovídám, jelikož jsou komentáře publikovány ihned po jejich napsání čtenářem. Toto nemohu nijak ovlivnit. Přesto si vyhrazuji možnost jakýkoli neslušný komentář smazat bez udání důvodu.




Nejnovější článek

Z článku o excel jsem jako poslední přidal či upravil článek 14.05.2012:
Kombinování funkcí - vzorců.

Nejčtenější článek




Google+

  

Facebook

facebook  

Novinky

Word: 12.5.2012:
Matematické rovnice (vzorce) - Word 2010

Excel: 14.05.2012:
Kombinování funkcí - vzorců

Access: 28.04.2012:
VBA - Jak spustit v MS Access

Power Point: 25.04.2012:
SmartArt - PowerPoint 2010

Outlook 26.04.2012:
Outlook 2010 - jak vypadá

Project: 05.04.2012:
Kalendář ukázka

OneNote: 17.10.2010:
OneNote 2010 – popis obrazovky

Office 30.04.2012:
Kde hledat odpovědi na dotazy o MS Office

Poděkování

Poděkování patří hlavně mojí nejbáječnější manželce.

LinkedIN

Translate

     

Stránky o MS Office produktu společnosti Micosoft. Neslouží jako technická podpora.
| Email na autora: lasak@centrum.cz | Copyright © : Pavel a Danka 2006 - 2012 |
| Doporučuji: Advokátní kancelář Brno - Dana Lasáková | 2768

Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.