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

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

Jak zapisovat do buněk Excelu pomocí maker (VBA kódy) hodnoty, čísla, texty. Praktické příklady.

Úvodem

Microsoft Excel 2010 VBA - logo

Jak z buňky přečíst nějaký údaj (hodnotu, datum, čas, ...) předpokládám, že zvládáte z předchozího článku. V následujících příkladech představuji praktické ukázky jak údaje do buněk zapisovat:


Zadat text do buňky

Začneme tradičním úkolem. Do buňky A1 pomocí VBA makro zapíše text "Ahoj světe."

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

nebo pomocí Range

Range("A1") = "Ahoj světe."

Zadat údaj do buňky

Jak víte z přečtení údaje z buňky. Podle požadované vlastnosti se vypíše co potřebujete, stejně tak to funguje u zápisu.

  • Value -
  • Value2 -
  • Text - tuto vlastnost nelze využít pro zípis, jen pro čtení
  • Formula* - zapsat vzorec různými způsoby (R1C1/A1), v angličtině nebo v lokální reči (češtině), případně jako maticový (spíše využití u zápisu) - viz samostatná kapitola

Ukázky zápisu

Range("B5") = "10.10.2016" Range("B5").Value = "10.10.2016" Range("B5").Value2 = 42653 ' nelze zapsat ' Range("B5").Text = "text" Range("B5").Formula = "=Today()" Range("B5").FormulaLocal = "=DNES()" Range("B5").FormulaR1C1 = "=Today()" Range("B5").FormulaR1C1Local = "=DNES()" ' poznámka pro pokročilejší: Range("A1:C5").FormulaArray = "=3"

Odkázat se na buňku:

Poznámka: Předpokládám, že znáte a není třeba vysvětlovat.16:02 30.11.2018

Range("B2") Cells(2, 2) [B2]

Zapiš aktuální řádek a sloupec

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:

Microsoft Excel - ukazky zápisu do bunky.

Vyplnit oblast textem

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

Sub Vicebunek()16:13 30.11.2018 Range("A1, A3, A5") = "Ahoj!" ' nebo lépe s udanou vlastností ' Range("A1, A3, A5").Value = "Ahoj!" End Sub

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

Poznámka

Opět lze místo Value zvolit i jinou vlastnost pro zápis.

Ve vybrané oblasti zapsat hodnotu do určité buňky

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.

Přičti číslo

Dotaz: Lze nějak nastavit buňku, aby pokaždé když do ní napíšu číslo, tak udělalo součet? tzn poprvé do ní napíšu 10, podruhé do té samé buňky 15, zobrazí se 25?

Odpověď: Lze, například využitím Worksheet_Change, kdy "platnost" (pro kterou buňku přičítání platí) je omezena pro buňku M7 a do pomocné buňky M8 se ukládá pomocná hodnota (nutná pro příští výpočet).

Možnost 1

Využívá se pomocné buňky.

Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$M$7" Then Application.EnableEvents = False Target = Target + Range("M8").Value Range("M8") = Target Application.EnableEvents = True End If End Sub

Možnost 2

Využít Worksheet_SelectionChange a Worksheet_Change (není nutná pomocná buňka na proměnou).

Dim StaraHodnota As Integer Private Sub Worksheet_SelectionChange(ByVal Target As Range) StaraHodnota = Target.Value End Sub Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False Target = Target + StaraHodnota Application.EnableEvents = True End Sub

Možnost 3

Asi nejelegantnější řešení. Za nápad a inspiraci děkuji Petru Pecháčkovi, autor webu: excelplus.net. Řešení využívá Application.Undo

Private Sub Worksheet_Change(ByVal Target As Range) Dim rngSledovanaBunka As Range 'sledovaná buňka Set rngSledovanaBunka = Range("B2") 'test na změnu sledované buňky If rngSledovanaBunka.Address = Target.Address Then 'nová hodnota dblNovaHodnota = Target.Value Application.ScreenUpdating = False Application.EnableEvents = False 'krok zpět Application.Undo 'stará hodnota dblStaraHodnota = Target.Value 'přičtení nové hodnoty ke staré Target.Value = dblStaraHodnota + dblNovaHodnota 'výběr další buňky 'pozn. Application.Undo neposouvá výběr Target.Offset(1, 0).Select Application.EnableEvents = True Application.ScreenUpdating = True End If End Sub

Vkládaní vzorců (funkcí)

Jak vkládat do buněk Excelu vzorce - funkce. Aby to nebylo tak jednoduché dají se zadávat hodnoty jako absolutní/relativní/smíšené. Názvy funkci mohuo být v angličtině nebo češtině systém zápisu může bát A1 nebo R1C1. Takže při psaní je o zábavu postaráno. Ukázkou pár možných zápisu:

Range("B1").Formula = "=A1" Range("B2").Formula = "=A$1" Range("B3").Formula = "=$A$1" Range("A1").Formula = "=SUM(B2:B5)" Range("A2").FormulaR1C1 = "=SUM(RC[1]:R[3]C[1])" Range("A3").FormulaLocal = "=SUMA(B2:B5)" Range("A4").FormulaR1C1Local = "=SUMA(R[-2]C[1]:R[1]C[1])"

Podrobněji o vkládání vzorců a funkcí pomocí VBA do buněk Microsoft Excelu.

Související články

Máteli zájem o další související informace


Microsoft Excel VBA - stahuj logo

Ke stažení

Soubor soubor ve formátu *.xlsm ke stažení zdarma je v přípravě. Soubor využívá makra.


Závěr

Údaje makro v Microsoft 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: 19.09.2020 11:07

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


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

Katka

Přidáno: 30.10.12 09:12

Dobrý den, chtěla bych vás poprosit o radu. Potřebovala bych vytvořit makro, které by mi určitou buňku vyplnilo názvem např. třetího listu.Název listu je pevný a potřebuji aby se vyplnil do prvního listu určité buňky. Děkuji moc za radu.

Peter

Přidáno: 30.11.12 09:12

Dobrý den pane Lasák Mám problém nad databází wis.accdb chci provést kalkulace formou SQL příkazů a výsledek potřebuji zapsat do konkrétní bunky v Excel sešitu. Teď mi to nedělá nic. Viď makro. Děkuji za pomoc. Dim varConn As String Dim varSQL As String Dim varSQL1 As String Dim varSQL2 As String Dim varSQL3 As String Dim varSQL4 As String Range("D3").Select varConn = "ODBC;DBQ=wis.accdb;Driver={Driver do Microsoft Access (*.accdb)}" varSQL = "SELECT SHIFTPRD.DATETIME, SHIFTPRD.HINBAN, Sum(SHIFTPRD.ORILEN), count(SHIFTPRD.KIDAI)/2,Sum(SHIFTPRD.ORILEN)/count(shiftprd.kidai)*2 AS SumOfORILEN" varSQL1 = "FROM SHIFTPRD" varSQL2 = "GROUP BY SHIFTPRD.DATETIME, SHIFTPRD.HINBAN" varSQL3 = "HAVING (((SHIFTPRD.DATETIME) Between to_date('27.08.2012','dd.mm.yyyy') And to_date('27.08.2012','dd.mm.yyyy')) AND ((SHIFTPRD.HINBAN)='3660'))" varSQL4 = "ORDER BY SHIFTPRD.DATETIME;" With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Range("D3"), Sql:=sqlstring) .CommandText = varSQL .CommandText = varSQL1 .CommandText = varSQL2 .CommandText = varSQL3 .CommandText = varSQL4 End With

Honza V

Přidáno: 30.01.13 18:11

Dobrý den, potřeboval bych pomoc s makrem, které by kopírovalo sloučené buňky na listu 1 na na jednu konkrétní buňku na listu 2 ve stejném sešitě. Potřebuji překopírovat pouze hodnotu bez vzorců a formátů. Na listu 1 mám sloučené buňky H2:L3 a na list 2 toto potřebuji vložit do A3. Je možné toto pomocí makra vyřešit??? Děkuji za pomoc

Pavel Lasák

Přidáno: 30.01.13 20:04

To Katka, Peter: Tohle je na samostatné články, tj. bude-li čas. Zatím zkuste www.pc-help.cz, tam je více osob schopných poradit (určitě to bude rychlejší).
To Honza V: Přečtení hodnoty viz: http://office.lasakovi.com/excel/vba-listy-bunky/precti-udaj-do-bunky-excel-vba/

Alena

Přidáno: 13.03.13 13:51

dobrý den, potřebovala bych v proceduře Cell Replace nastavit do parametru LookAt aktuálně označenou oblast, aby se činnost vykonala je ve vybraných buňkách. (zatím tam mám xlPart)

Borek

Přidáno: 11.06.13 09:13

Dobrý den, potřeboval bych poradit s kopírováním sloupcú z jednoho sešitu nebo listu do druhého. Děkuji

Pepa

Přidáno: 04.07.13 11:36

lze nějak nastavit buňku, aby pokaždé když do ní napíšu číslo, tak udělalo součet? tzn poprvé do ní napíšu 10, podruhé do té samé buňky 15, zobrazí se 25?

Pavel Lasák

Přidáno: 04.07.13 17:43

To Alena: Zatím doporučím http://msdn.microsoft.com/en-us/library/office/ff194086.aspx, bude-li chuť něco o tom napíšů.

Pavel Lasák

Přidáno: 04.07.13 17:50

To Borek: Třeba takto: Dim zdrojSloupec As Range, cilSloupec As Range Set zdrojSloupec = Workbooks("sesit1.xlsm").Worksheets("List4").Columns("A") Set cilSloupec = Workbooks("sesit2.xlsm").Worksheets("List4").Columns("A") zdrojSloupec.Copy Destination:=cilSloupec

Pavel Lasák

Přidáno: 04.07.13 18:00

To Pepa: Doplnil jsem článek Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$M$7" Then Application.EnableEvents = False Target = Target + Range("M8").Value Range("M8") = Target Application.EnableEvents = True End If End Sub

Vojta

Přidáno: 25.11.13 02:35

Dobry den, chtel bych se zeptat, jak by se dala rozšířit přes makra možnost vkladaní od dalsi klavesove zkratky, kdy kazda zkratka by vlozila jiny text napr na zkratku ctrl + q si ulozit, ze do radku, ve kterem je prave oznacena bunka (napr A1) by se po pouziti zkratky vlozil text do bunek (napr A1, A3,A4 a A7, pokud by se pote dal oznacila bunka v jinem radku (napr 1C) a pouzila se stejna zkratka, tak by se text vlozil do stejne pozice avsak na dalsim radku (tedy C1, C3, C4 a C7) pokud by se pouzila zkratka jina napr ctrl + w, tak by se do techto bunek vlozil jiny text, pokud by to byla zkratka ctrl + e tak zase jiny atd celkove mi jde o to, abych oznacil na zacatku radku bunku, stiskl klavesovou zkratku a podle te zkratky mi to do toho radku doplnilo informace, ktere bych si dopredu nastavil prave na tuto zkratku dekuji za radu

Jakub

Přidáno: 07.02.14 15:16

Dobry den, chtel bych se zeptat, jak by bylo mozne nastavit makro pro vyber jednotlivych hodnot z jednoho sloupce, ale s pravidelnym odstupem napriklad peti radku, a vypsat je za sebou do radku. Nedari se mi na to aplikovat zadny z vyse uvedenych postupu...moc dekuji za pripadnou radu.

Mechac

Přidáno: 21.03.14 21:58

Dobrý den, Prosim potřeboval bych poradit. Chci zadat Číselnou řadu štítků do List2, prvního sloupce Ale aby řada začínala např: "HX" & (číslo z List1 bunka F5) končila "HX" & (číslo z List1 bunka F9). Pokousel jsem se pouzit Vas vzorec: Private Sub CommandButton1_Click() For i = ???? Cells(i, 1) = "HX" & i Next i End Sub Bohužel nevím co zadat do For i = x to y Aby x a y fungoval jako odkaz na buňku s hodnotou. Děkuji předem Moc si vážím Vašich znalostí

Pavel Lasák

Přidáno: 22.03.14 08:10

To Mechac: Jak číst údaj z buňky http://office.lasakovi.com/excel/vba-listy-bunky/precti-udaj-do-bunky-excel-vba/

Mechac

Přidáno: 24.03.14 14:34

Zdravím Pavle, Zkoušel jsem se prohrabat Vaší nápovědou a pochopil čtení buněk ale stále je nejsem schopen aplikovat do výše uvedeného vzorce:( (jsem napr. začátečník) Není mi jasné jak nastavit aby začlo pořadí od čísla 96107 = a a končilo 96175 to znamená 69 hodnot začínajících HF96107 a koncilo HF96175 přitom musí a i b býti proměná v závislosti na odkazu v bunce. Přitom výsledek se má zapisovat od bunky A1 v sesitu 2. Toto zjevně nefunguje, bohužel jsem se nebyl schopen dobrat výsledku ani po soustavném hledání na netu. nejblíže snad byla fce loop, ovšem stále je tu problém s definicí rozsahu a pole výstupu. Sub zadej_radu() a = Worksheets(1).Range("F5").Value b = Worksheets(1).Range("I5").Value For i = a To b Cells(i, 1).Value = "HF" & i i = i + 1 Next i End Sub omlouvam se za upravu , ale nevim jak do příspěvku zalomit řádek... Pěkný den M

Ivan

Přidáno: 25.03.14 16:29

Zdravím,už nějakou dobu se snažím programovat ve VBA,ale poslední dva dny se snažím vyřešit chybu v kódu který jsem napsal ( viz níže).Abych popsal můj problém - pomocí checkboxu určuji jaká hodnota se má zapsat do buňky ano - ne. Problém který mám je ten,že hodnota "ano" se mi zapíše,ale honota "ne" se zapíše jako prázdné políčko.Kde mám chybu? Předem díky za pomoc. Private Sub CheckBox1_Click() If CheckBox1.Value = True Then DalsiRadek = _ Application.WorksheetFunction.CountA(Range("A:A")) + 4 Cells(DalsiRadek, 2) = "ano" End If If CheckBox1.Value = False Then DalsiRadek = _ Application.WorksheetFunction.CountA(Range("A:A")) + 4 Cells(DalsiRadek, 2) = "ne" End If End Sub

Aleš

Přidáno: 06.04.14 03:19

Zdravím je možnost, aby se mi při stisknutí tlačítka přepnul list na jiný, a zapsal data z paměti do bunky B4 jako při ctrl+v

David

Přidáno: 08.04.14 23:19

Zdravím, řeším problém s makrem pro posuvník. Pokusím se popsat o co mi jde. První důležitá věc: Posuvník lze nastavit na nejmenší přírůstkovou hodnotu 1 a já potřebuji po 0,01 což by nebyl takový problém, lze to vyřešit tak, že výsledek posuvníku dám do jiné buňky a ten pak ve výsledné buňce vydělím čím chci, ale tady nastává problém. Já do výsledné buňky musím i zapisovat ručně, ale pokud je tam vzorec, tak to samozřejmě nejde. Dám příklad: Buňka A1 je zapisovací pole vedle které je posuvník, její hodnota je nyní např. 0,24. Přepíšu hodnotu 0,24 třeba na 0,28 a při kliknutí na posuvník do plusu mi musí skočit hodnota 0,29. Posuvník takto funguje i bez makra, ale bohužel přírůstek po 1. Předem díky za pomoc

Jozef

Přidáno: 09.04.14 12:14

som úplný makro začiatočník. Ja by som potreboval celkom jednoduchú vec: Mám zoznam čísel (stĺpec:A: Nachádzam sa v prázdnej bunke: B1 Keď kliknem na vyrobené tlačidlo priradené k makru, chcem aby mi vyplnilo bunku B1 hodnotou z A1 a zároveň prešlo na bunku B2. Znovu kliknem na tlačilo vyplním bunku B2 hodnotou z A2 a prejdem na bunku B3. atď ..... stále potom by sa to opakovalo. Ďakujem

Tomáš

Přidáno: 10.06.14 00:25

Dobrý den, prosím o pomoc s makrem.Potřeboval bych při spuštění sešitu, aby v buňce A1 automaticky přičítalo hodnotu +1 (jako např. pořadové číslo faktury). Předem moc děkuji.

Jojo

Přidáno: 30.06.14 15:02

To Jozef: Selection.Offset(0, 0) = Selection.Offset(0, -1) Selection.Offset(1, 0).Select

Jojo

Přidáno: 30.06.14 15:37

To Tomáš: na ThisWorkbook treba vložiť: Private Sub Workbook_Open() Range("A1") = Range("A1") + 1 End Sub -- a samozrejme po skončení práce uložiť súbor (s aktuálnou hodnotou)

wondr

Přidáno: 16.07.14 18:16

dobrý den, potřeboval bych poradit s excelem, konkrétně VBA. když například napíši do A1 číslo 20, které ukazuje počet měsíců, potřebuji, aby mi toautomaticky od A2 do A21 vyplnilo datumy vždy po měsících. příklad: A1=10 tedy automaticky se vyplní A2=1.1.2014, A3=1.2.2014, A4=1.3.2014 .... atd moc děkuji za odpověd

Jojo

Přidáno: 22.07.14 09:31

To wondr:PocetMes = Range("A1") ' počet mesiacov Range("A2") = "1/1/2014" ' počiatočný mesiac Range("A2:A" & PocetMes + 1).DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:= _ xlMonth, Step:=1, Trend:=False

Jojo

Přidáno: 22.07.14 13:56

To David: (zároveň je to aj odpoveď na otázku z: -- http://office.lasakovi.com/excel/prakticke-priklady/dynamicka-tabulka-excel/'Vložiť do Sheet Module Option Explicit Dim OldVal Private Sub ScrollBar1_Change() 'Posuvník po stotinách (1,01; 1,02 atď) Dim i As Long Dim minVal, maxVal minVal = 0 maxVal = 10 With ScrollBar1 .Min = minVal .Max = maxVal * 100 If .Value > OldVal Then .Value = Cells(1, 1) * 100 + 1 Else .Value = Cells(1, 1) * 100 - 1 End If OldVal = .Value Cells(1, 1) = OldVal / 100 End With End Sub

Jojo

Přidáno: 22.07.14 15:00

To Ivan: Private Sub CheckBox1_Click() With Application.WorksheetFunction DalsiRadek = .CountA(Range("A:A")) + 4 If CheckBox1.Value = True Then Cells(DalsiRadek, 2) = "ano" Else Cells(DalsiRadek, 2) = "ne" End If End With End Sub

Jojo

Přidáno: 22.07.14 15:15

To Mechac: Sub zadej_radu() 'Sem vložiť hodnoty a = Worksheets(1).Range("F5") ' prvý riadok b = Worksheets(1).Range("I5") ' posl.riadok 'Výstup For i = a To b Cells(i, 1) = "HF" & i Next i End Sub

Jojo

Přidáno: 22.07.14 15:31

To Jakub: Ak som dobre rozumel otázke:Sub Test() 'Riadky čítané s pravidelným odstupom a zapisované za sebou do jedného riadku ofs = 0 With Cells(1, 2) ' v tejto bunke začne vypisovať For i = 1 To 20 Step 5 ' odstup = 5 .Offset(0, ofs) = Cells(i, 1) ofs = ofs + 1 ' 1 = posun výpisu o 1 bunku vpravo Next i End With End Sub

Robert

Přidáno: 12.08.14 14:35

Mám tabulku kde je uveden kod a suma (Např.U21 = 1000, U16=200 a kod i suma jsou v jednotlivých sloupcích) + další doplňující informace. Sumy mohou být zadané nebo vypočtené. A já se snažím umožnit uživateli definovat sám vzorec, který by si makro přečetlo a pak podle toho vypočetl výsledek. Vzorec by mohl být zapsán např. ((U21+U16)-5)*-1 nebo "když(U21>100;5;0) apod. Abych toho dosáhl, tak dnes nutím uživatele zapsat kod a / nebo operand do samostatných sloupců a předpokládám, že to co není kod je operand (+ - * ()apod.). Když pak spustím makro, předpočítám si hodnotu dle kodu a pak si složím hodnoty ze sloupců. (něco ve VBA a na něco používám skrytý výpočtový list) (z toho 1 řádku co právě počítám), kody nahradím vypočtenou hodnotou a dostávám nějaký výsledek, který zapíšu. Je to komplikované a i uživatele nutím dělat tvorbu popsaným způsobem. Byl bych rád, aby se vzorec zapsal do 1 buňky v předepsaném formátu a já ho pak dokázal ve VBA rozdělit a spočítat. Děkuji

Lukáš

Přidáno: 18.08.14 10:59

Dobrý den, Můžete mi prosím poradit. Potřebuji okótovat součást v excelu tak, aby hodnoty z tabulky byly automaticky přepisovány do obrázku při zadání označení velikosti součásti. Příklad: součást je označována velikostmi. Každá velikost má jiné rozměry, které jsou uvedeny v souhrnné tabulce. Pro zákazníka potřebuji vytvořit rozměrový náčrtek. Aby zákazník nemusel každý rozměr vyhledávat v tabulce dle odkazového písmena na kótě, tak to vyhledávám já a přepisuji ke kótám správné hodnoty. Když je ale součástí víc, tak je to zbytečně zdlouhavé a pracné. Chtěl jsem, že bych do excelu vložil obrázek a na místo hodnoty na kótě bych vložil textové pole. Už ale nevím, jak si mám nastavit, aby se hodnoty z tabulky přepisovaly do tohoto textového pole. Používám Microsoft Office Excel 2007. Děkuji

Bellero

Přidáno: 04.09.14 04:01

Ahoj potřeboval bych poradit. Dělám programek v excelu na vkládání materiálu do skladu. A potřebuji aby by z listu1 se zkopírovali buďky na list2 aniž by se mi list2 zapl. použil jsem ActiveSheet.paste Destination:=worksheet("list2").cell(a ,2) vše funguje jak má jenže původně jsem měl klasické pastespecial a vkládání bez formátování tudíž pouze hodnoty. Což je i super v tom že mi to vždy hodilo z první buňky kde mám vzorec =Nyní() aktuální čas a nekopirovalo vzorec a přidání na list2 všetně materiálu atd do tabulky která má svůj format který byl zachován. A přes ActiveSheet.paste si absolutně nevím rady jak vkládat pouze hodnoty.

Jojo

Přidáno: 08.09.14 10:26

To Bellero: -- 1) cez Value napr: -- Sheets(2).Range("A1") = Sheets(1).Range("A1").Value -- 2) cez PasteSpecial: -- Range("A1:A5").Copy Sheets("List2").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False

Jojo

Přidáno: 08.09.14 10:43

To Bellero: ...v bode 2 je za ".Copy" nový riadok...

Poipop

Přidáno: 01.10.14 10:23

Zdravím, snažím se vybrat oblast buněk a do té oblasti zkopírat text z jiné oblasti. Oblast do které budu kopírovat má proměnlivé číslo řádku. Využívám tedy kód pro najití PrvníhoPrázdnéhoŘádku. Ten mne funguje. Druhý krok je najití oblasti do které se má nějaký ten text zkopírovat. A tady mám problém. Snažím se zhruba o toto: a = Worksheets("Pomoc X").Range("b9:c9") Application.Goto ActiveWorkbook.Sheets("Pomoc X").Range(Cells(PrvniPrazdnyRadek, 9), Cells(PrvniPrazdnyRadek, 10)) Selection = a První řádek má vybrat data pro zkopírování a druhý příkaz má vybrat oblast kam zkopírovat z "a". Nicméně ať dělám co dělám, nejsem schopen zkombinovat výběr aktivního listu, a výběr oblasti s proměnlivým číslem řádku. Výběr aktivního listu je tam z důvodu, že tlačítko pro spuštění makra je na jiném listu. Je to vůbec možné nějak tak, jak jsem to vytvořil? Pokud místo "cells" použiju "range" s pevně stanovenou oblastí, pak vše funguje jak má. Ale s proměnlivým číslem řádku to nějak nefunguje. Děkuji za jakoukoli radu

Jojo

Přidáno: 06.10.14 08:30

To Poipop: -- a = Worksheets("Pomoc X").Range("b" & poslednýRiadok & ":c" & poslednýRiadok)

Mishko71

Přidáno: 01.12.14 11:00

Ahoj šikulové. . Používám Excel a "Extra Personal client" dohromady, jelikož na PUTTY bych musel používat AutoIT a nemohl bych během tohoto procesu pracovat s PC :-( . Tak a teď hurá problém. Když si pošlu na síť data z E!PC, vba-čkem otevřu, upravím a vložím do sešitu, tak mi to zabere najednou cca +120MB paměti. A pořád to narůstá do hodnot, kdy PC přesává jaxi "myslet". 10 záznamů = 1,1GB RAM! A to je jenom Excel, dámy a pánové. Je nějaké "udělátko", které by po vložení dat "pročistilo" aspoň z části paměť? Dodatek: je to pracovní PC, takže jakési rozšíření RAM "NEEXISTUJE" (nejsou $$$) . Děkuji za čas a snahu si toto přečíst.

Jojo

Přidáno: 03.12.14 12:04

To Mishko71: -- Uložiť súbor alebo zavrieť súbor(bez uloženia) alebo niečo takéto: -- Set Premenná = Nothing -- by nepomohlo?

Mishko71

Přidáno: 04.12.14 19:29

To Jojo: To by bylo možné až potom, když sešit zpracuje všechna data (1 sešit = 2 listy na úpravu + 10 listů s výsledkem). Navíc pak ještě otevře další sešit, kde ty data vloží "propojením". Abych měl surové data, musím zkopírovat (v otevřeném sešitě výsledek) a vložit jako "Hodnota". Pak soubor uložím a když zavírám zdrojový sešit, všechny vytvořené listy (10) se vymažou a zůstanou tam jenom ty dva základní listy. Asi pro lepší představu udělám video (cca 7min) a pak ho někam uložím. Jak jsem psal, dík za přečtení ;-)

Jojo

Přidáno: 05.12.14 07:31

To Mishko71: -- Excel nemá problém ani s väčším počtom listov ako 12, samozrejme záleží na tom, že koľko buniek je vyplnených. -- Keď však dobre rozumiem zo dňa 04.12.14, tak možno by pomohlo nevytvárať naraz 10 pomocných listov, ale POSTUPNE kopírovať(prenášať údaje, prepojenia) do ďalšieho zošitu.

Gábina

Přidáno: 21.12.14 15:00

Ahoj mám problém s tím, když dělám na listě 2 tabulku a chci aby se mi měnili hodnoty při zadávání do tabulky na listě 1. Co s tím? Ještě neumím sečíst v tabulce celkové ceny př.ledniček, jsou však nakombinované s jinými elektro-spotřebičemi, jde to mějak souhrnně, abych to nemusela sčítat vzorcem po jednom? Budu ti velice vděčná,jelikož se s tím trápím několik hodin.

Franta Smutný

Přidáno: 11.01.15 17:05

Dobrý den pane Lešáku, děkuji za skvělé stránky, které jste připravil a mám jeden dotaz, na který jsem nenašel na Vašich stránkách odpověď či návod. Potřeboval bych poradit s tvorbou formuláře (dotazníku). Chtěl bych, aby se na začátku objevilo tlačítko spuštění, po stisku tohoto tlačítka se objevovala jednotlivá okna obsahující otázky a uživatel by do těchto oken doplňoval údaje. Tyto údaje by se propisovaly do jednotlivých buněk přiřazeným ke konkrétním otázkám. (příklad: v buňce A1 bude otázka: Vaše jméno a příjmení: ; v buňce B1 bude editována odpověď z okna, ve kterém bude dotaz na jméno a příjmení). Děkuji za pomoca odpověď.

Jojo

Přidáno: 13.01.15 07:15

To Gábina: -- jednotlivé spotrebiče sčítavať cez SUMIF() + potom preniesť výsledok na iný list cez =Hárok1!A1. Výrazne lepšie je však použiť kontingenčnú tabuľku(vyžaduje však o niečo viac skúseností)

Jojo

Přidáno: 13.01.15 08:05

To Franta Smutný: -- je potrebné použiť makro. Bez makra by možno bolo k niečomu v Exc2003 "Data/Formulář..."

Franta Smutný

Přidáno: 02.02.15 21:39

To Jojo: Dík zy odpověď, ale právě na makro jsem se zde ptal. Nevím jak jej vytvořit.

Jojo

Přidáno: 04.02.15 10:37

To Franta Smutný: -- pre riadky 1až5:Sub Test() For rw = 1 To 5 odpoved = InputBox(Cells(rw, 1), "Prosím zadaj odpoveď!") Cells(rw, 2) = odpoved Next rw End Sub

pospik

Přidáno: 19.02.15 15:19

Dobrý den. Jsem nováček Mám tabulku cca o 5000 řádcích a 10 sloupců když provedu filtr tak jak potřebuju zůstane mi zhruba 10-20 řádku ty řádky potřebuju kopírovat do druhého listu. tady je část makra Dim PosledniRadek As Long, i As Long Dim OznacOblast As Range With Sheets("database") PosledniRadek = .Range("A" & .Rows.Count).End(xlUp).Row For i = 1 To PosledniRadek If Len(Trim(.Range("A" & i).Value)) <> 0 Then If OznacOblast Is Nothing Then Set OznacOblast = .Rows(i) Else Set OznacOblast = Union(OznacOblast, .Rows(i)) End If End If Next If Not OznacOblast Is Nothing Then ' tato oblast se může zkopírovat ... OznacOblast.Copy Sheets("pomocný list").Rows(10) OznacOblast.Select End If

Martin

Přidáno: 23.02.15 06:14

Zdravím, potřeboval bych poradit (nejlépe vytvořit) makro na zápis času do buňky. Řekněme mám sloupec A, kam elektronicky zapisuji data a potřebuji zjistit, kdy byla data zapsána. Na to by měl sloužit sloupec např. B kde by v každém řádku při každé hodnotě byl záznam kdy byla hodnota zapsána. Předem děkuji za reakci. Martin

Jojo

Přidáno: 23.02.15 07:13

To Martin: -- viď komentár z 01.12.14 na: http://office.lasakovi.com/excel/funkce/ms-excel-funkce-en-cz/

on

Přidáno: 16.03.15 15:29

Dobrý den, je možnost nějakého odkazu, že když v buňce A1 dám hodnotu 11, označí se mi automaticky buňka např. A11 , děkuji.

David

Přidáno: 12.05.15 10:37

Dobrý den, děkuji za mnoho užitečných rad na Vašich stránkách. Tvořím makro Function (...) které vrací i přibližnou shodu zadané hodnoty v zadané řadě. Má se vracet 1 hodnota, ale v případě že není možné vrátit hodnotu podle zadání (např. nejbližší vyšší) tak chci vrátit alespoň nejbližší hodnotu + někam (nejlépe do listu LOG na jeho konec) zapsat chybovou zprávu. Vracet chybu funkcí nechci protože sešit je velmi obsáhlý a 1 chyba obvykle spustí lavinu cca 100 chyb. Zapisovat do buněk Function neumí, lze to obejít nějakou fintou ? Makro bude voláno v mnoha místech sešitu s různými parametry, Sub se mi zdá nevhodné. Děkuji.

Tomáš

Přidáno: 03.06.15 12:04

Dobrý den, mám také jeden dodaz. Mám listy udělané v podobě A4 papíru, do kterého přidávám po stisknutí tlačítka vždy jeden nový řádek. Tyto řádky přidávám do oblasti, která je z obou stran ohraničená textem. Potřeboval bych funkci, která mi zajistí to, že po přidání jednoho řádku se mi text pod tímto nově přidaným řádkem posune o jeden řádek níže, aby se udělal prostor pro vložení dalšího řádku. Doufám, že to je takto srozumitelné. Děkuji za odpověď

Jarda

Přidáno: 23.06.15 07:42

Stačí tento kod zadat v Editoru jazyka Visual Basic do okna List1. Private Sub Worksheet_Change(ByVal Target As Range) If ActiveSheet.Range("A1").Value = 11 Then Range("A11").Select End If End Sub Nebo tento kod do okna ThisWorkbook. Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If ActiveSheet.Range("A1").Value = 11 Then Range("A11").Select End If End Sub

Jarda

Přidáno: 01.07.15 15:41

to David Spouštění funkce Na rozdíl od procedur Sub, které lze spouštět mnoha různýmy způsoby, je možné funkci spustit jen: - voláním z jiné procedury, - jejím použitím ve vzorci na pracovním listu. O Funkcich najdete v tomto odkazu http://office.lasakovi.com/excel/vba-funkce-vzorce/vlastni-funkce-excel-VBA/

Peter

Přidáno: 24.07.15 17:17

Dobrý deň . Chcem poprosiť o radu akoby sa dalo spraviť mako ktoré by počítalo , počet automatických prepočtov ?? Vďaka ..

Pavol

Přidáno: 11.09.15 13:58

Dobrý deň, Mohol by som poprosiť o radu pri treťom ("elegantnom") riešení. Jedná sa len o jedinú zmenu a to aby sa pripočítavanie hodnoty vykonávalo nie v jedinej bunke ale v rozsahu/množine. Napr.: B2:D7 a podobne. Vopred vďaka

Karel

Přidáno: 08.11.15 22:52

Ahoj, řeším zápis dat z z formuláře vytvořeného v excelu do listu sešitu excel. Určitě je na to nějaké jednoduché makro, buohužel zatím nevím jaké... Za každý nápad budu vděčný... Díky K.

František Machek

Přidáno: 11.11.15 19:40

Dobrý den, snažím se vytvořit formulář, který z TextBoxu vezme hodnotu a zapíše ji například do buňky A2 po stisknutí tlačítka OK. toto mám zvládnuté, cislo = 2 Range("A" & cislo) = TextBox1.Value ale nevím jak dále udělat, že po stisknutí tohoto tlačítka se automaticky smaže hodnota v TextBoxu (číselná) a následně se nastaví buňka k zápisu u dva řády vyšší (A4) a tak stále dokola (A6, A8, A10 atd..) další postup při stisknutí tlačítka "OK mám hotovo" např sečti všechny hodnoty vypiš text atd je už pak prakticky jednoduchý, ale zasekl jsem se na problému cyklu, kdy při stisknutí tlačítka bude hodnota následně o dva řády vyšší. Ví si s tímto problémem někdo rady ? Poradil by někdo kdo se s tímto "problémem" už setkal ? Děkuji za každou radu

Willi

Přidáno: 20.11.15 11:59

Dobrý den. Veliké pls. Mám na 1.listu export z databáze, kde je spoustu hodnot přiřazených jednotlivým osobám (některá má jednu hodnotu některá třeba 10). Osoby jsou zobrazeny jako osobní číslo. Na 2. listu je seznam osobních čísel a jména osob ve dvou sloupcích. Potřeboval bych aby se na 1.listu místo čísel objevovali jména. Děkuji.

Luke

Přidáno: 15.12.15 14:18

Zdravím, mám na Listu 1 pár údajů jako číslo zakázky, výrobek číslo atp. ve sloupci J mám seznam 5 textových hodnot přičemž jedna je Vyřešeno-Oprávněná Reklamace, pokud člověk zatrhne tuto hodnotu chtěl bych aby se celý řádek (číslo zakázky, výrobek číslo...atp) zapsal na další list věděl někdo jak na to ? (v konečné fázi úplně nejlepší by bylo aby se řádek po zvolení v seznamu hodnoty vyřešeno propsal na další list a nešel upravovat, až třeba po zvolení jiné hodnoty ze seznamu by zase šel upravit (aby např když člověk zapomene nějákou hodnotu z listu zapsat třeba číslo výrobku, tak aby musel pro opravu odkliknout jinný stav než vyřešeno kvůli integritě a kompletu dat.

Luke

Přidáno: 15.12.15 14:19

Zdravím, mám na listu 1 ve sloupci J seznam 5 hodnot z kterých uživatel vybírá (1-Neřešeno,2-řeší se, 3-vyřešeno oprávněná reklamace, 4-vyřešeno neoprávněná reklamace a 5-nevyřešeno), pokud vybere hodnotu 5-Vyřešeno, tak bych chtěl aby se ten daný řádek v kterém vybíráme propsal na list 3, nějáký nápad jak to udělat ? V práci řešíme reklamace od zákazníků a chci ukládat jen oprávněné reklamace a ty mají právě status 5-vyřešeno

Stoupa

Přidáno: 28.01.16 23:06

Zdravím, kód přímo do worksheetu - při kliknutí na buňku C3 se zapíše hodnota "ANO", po dalším kliknutí se přepíše "NE"... Je to vlastně něco jako checkbox pokud chci změnu ve více definovaných buňkách, také není problém: Set rng = Range("C3, C5, D8, D10") Ale netuším, jak nadefinovat více buňkám změnu nezávisle na sobě -> pouze tam, kde kliknu. Věděl by mi někdo pomoct? Děkuji předem... Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rng As Range Set rng = Range("C3") If Application.Intersect(Target, rng) Is Nothing Then Set mRngOld = Target Exit Sub End If If rng.Value = "ANO" Then rng.Value = "NE" Else rng.Value = "ANO" End If End Sub

Jano

Přidáno: 03.02.16 10:51

Dobry den, som zaciatocnik vo VBA. Potreboval by som pomoct s makrom ktore vlozi napr. do kazdeho 4 riadku vo vsetkych stlpcoch tabulky zorec ktory scita hodnoty nad nim a tak az do konca tabulky. Dufam ze som to napisal zrozumitelne. Dakujem

Ahojte

Přidáno: 07.02.16 08:44

Zdravím, jak můžu přiřadit proměnné i buňky A2 až A10 taky buňky B2 až B10, tak aby pomoci Case Is se vypočítaly buňky B2 až B10. Napsal jsem to takhle, ale je to špatně: For i = 2 To 10 Step 1 Select Case Range("Ai") Case Is <= 300 Range("Bi") = Range("Ai") * 0.15 Case Is <= 4000 Range("Bi") = Range("Ai") * 0.1 Next i Diky

Petr

Přidáno: 23.02.16 23:39

Přeji hezký den, potřebuji v databázi najít x různých hodnot a vždy do vedlejšího sloupce zapsat hodnotu tak, abych mohl podle ní vyselektovat řádky s daty. Můžete mi poradit ?

Pavel 6

Přidáno: 16.03.16 13:48

Ahoj potřeboval bych poradit jak provést kopírování sloupce např. B od určitého řádku do jiné záložky. Sloupec B zobrazuje jména. . Tyto jména se náhodně objevují v jiných záložkách a mají v tabulce přiřazenou určitou hodnotu. Potřebuji naprogramovat tlačítko tak aby, po kliknutí porovnala seznam jmen a určitou hodnotu ze sloupce D v záložce 2 zapsalo v nové záložce do sloupce C. Děkuji

Jenda P.

Přidáno: 22.04.16 09:03

Dobrý den, používám odkazu pro slučování buněk =CONCATENATE ("A1,";"B1,";"C1,";"D1,"), ale nechci se vypisovat s celým řádkem, rád bych použil rozsahu buněk A1:D1 tažením myši. Děkuji za odpověď, s pozdravem Jenda P.

Jenda P.

Přidáno: 22.04.16 09:20

už vím, např. zadat =(J8:J15)&"," stisknout klávesu F9 smazat složené závorky na začátek vložit =CONCATENATE( na konci (ne)smazat čárku za posledním znakem a vložit ) stisknout Enter a je to :-)

Maroš

Přidáno: 07.05.16 22:53

Dobry den, mne sa tie makra, kde je v definicii SUB pouzity parameter ByVal, nedaju vôbec spustit (ani F5 ani F8), ponukne mi pripadne vyberove okno na makra, ale ani tam nie je dane makro zobrazene. Kde moze byt problem? Ak odstranim ByVal z riadku SUB, tak je makro viditelne aj spustitelne, ale nefunguje (error 424).

Michal

Přidáno: 21.05.16 17:34

Dobrý den, potřeboval bych poradit s makrem pro třídění vstupních proměnných. Zadání je takové:mám dva sloupce X a Y se souřadnicemi bodů,potřebuju tyto souřadnice seřadit podle velikosti od nejmenšího po největší podle sloupce X(ale buňka X musí sebou přesunout svou sousední buňku Y)pak se musí souřadnice Y rozdělit do dvou sloupců Y1 a Y2(pokud je hodnota <350 tak se přesune do Y1 jinak do Y2)ale dané Y si sebou musí vzít své X. např. vstup x y 15 345 1 500 15 335 15 500 vystup x y1 y2 1 500 15 345 15 335 500 Děkuji za jakoukoliv pomoc. (Makro pro roztřídění dle velikosti X a rozdělení na Y1 Y2 mám, ale jak to udělat když jsou tam dvě stená X to nevím)

Michal

Přidáno: 04.10.16 13:54

Dobrý den, jak provedu ve VB Excelu makru následující sled akcí? Vstup do buňky A1. Pokud se někde uprostřed v aktivní buňce nachází část stringu "abc" (buňka A1 je like "abc") skoč do buňky B5. Děkuji. Michal






Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2024 |