< návrat zpět

MS Excel


Téma: Makra rss

Zaslal/a 5.11.2011 19:00

Dd všem.
Mučím se v makru nastavit následující.
colmn a1 má hodnotu 5
pokud colmn b2 = > 0;colmn A1+1;0
výsledek v A2 = 6 atd.

Když toto zadám do A řádku jako pokyn "když" vše běží.

Ale nejsem schopen naučit makro aby toto dělal v souvyslosti_

if Worksheets("KL").Range("B" + CStr(x))> 0 then
Worksheets("KL").Range("A" + CStr(x)) / aby si vzal předchozí číslo a připočetl 1

samozřejmě jsou veškeré údaje x = 2 a jiné pokyny zadané

PROSÍM mohl by mne někdo zde pomoct?

Děkuji předem všem kteří se s tím vůbec jen zabývaji.

Heský večer
Pavel

Zaslat odpověď >

#006378
Jeza.m
Nevím jestli dobře chápu ...
dim x as single
x=2

if sheets("KL").cells(x,2) > 0 Then 'řádek dle x, sloupec 2
sheets("KL").cells(x,1) = sheets("KL").cells(1,1)+1
else
sheets("KL").cells(x,1) = 0
end if

M@citovat
#006385
avatar
Dd,
děkuji za nápad, ale eště to není ono.
pokyn když v koloně A2 zní:
=když(b2>0;a1+1;0)
vlastně scela triviální záležitost na úrovni "KDYŽ"
Ale v makru se s toho nevypletu.

Třeba máte nějaké doporučení.
Sp
Pavelcitovat
#006386
avatar
Dd,
děkuji za nápad, ale eště to není ono.
pokyn když v koloně A2 zní:
=když(b2>0;a1+1;0)
vlastně scela triviální záležitost na úrovni "KDYŽ"
Ale v makru se s toho nevypletu.

Třeba máte nějaké doporučení.
Sp
Pavelcitovat
#006388
avatar
Odpověď je i na tak jednoduchou otázku dosti složitá, když není přesně popsáno, k čemu tato úloha má sloužit, kde se nachází curzor, jak ji chci používat, zda pouze pro a2 pak to dělat makrem je nesmysl nebo chci aby na základě sloupce B byly přičitány hodnoty ve sloupci nad, pro jaké buňky to chci dělat předem zadané pak použiji for i = atd. pro naselektované použiji for each apod. Pro ilustraci dávám pár příkladů s bohaté škály makra jak tento problém v dalších návaznostech jak jsou nastíněny výše např. řešit. Proto se ten, kdo píše odpověď vždy snaží získat soubou a to takový, který chce uživatel používat.
Příklady:
Sub Makro1()
'
' Přičte buňku nad, když buňka napravo je větší než 0 jinak 0.

' Přes formulaci range
x = 2
If Range("B" + CStr(x)) > 0 Then
Range("A" + CStr(x)) = Range("A" + CStr(x - 1)) + 1
Else
Range("A" + CStr(x)) = 0
End If
' přes vzorec v activecell (cursor je na a2) resp. to co zadám místo activecell ActiveCell.FormulaR1C1 = "=IF(R[-1]C=0,0,R[-1]C+1)"
' pomocí cell
y = 1
x = 1
If Cells(y + 1, x + 1) > 0 Then
Cells(y + 1, x) = Cells(y, x) + 1
Else
Cells(y + 1, x) = 0
End If

End Sub
citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse