xlnc napsal/a:
A co když...?
ještě drobná úprava:
Sub narozeniny()
Dim rng As Range
Dim radek As Long
Dim datum As String
Dim i As Long
Dim a As String
Dim b As Integer
Dim rok As Integer
rok = Format(Date, "yyyy")
datum = Format(Date, "dd.mm.")
With ActiveSheet
radek = .Cells(.Rows.Count, "B").End(xlUp).Row
End With
Set rng = Range("B2:B" & radek)
For i = 1 To radek - 1
a = Format(Range("B" & i + 1).Value, "dd.mm.")
b = Format(Range("B" & i + 1).Value, "yyyy")
If a = datum Then
b = rok - b
MsgBox ("Dnes (" & Date & ") má narozeniny: " & Range("A" & i + 1).Value & vbNewLine & "právě slaví: " & b & " rok narozenin")
End If
Next i
End Sub
mělo by fungovat snad i v 2003, asi to není nejlepší řešení, ale mohlo by fungovat :-)
Sub narozeniny()
Dim rng As Range
Dim radek As Long
Dim datum As String
Dim i As Long
Dim a As String
datum = Format(Date, "dd.mm.")
With ActiveSheet
radek = .Cells(.Rows.Count, "B").End(xlUp).Row
End With
Set rng = Range("B2:B" & radek)
For i = 1 To radek
a = Format(Range("B" & i + 1).Value, "dd.mm.")
If a = datum Then
MsgBox ("Dnes má narozeniny: " & Range("A" & i + 1).Value)
End If
Next i
End Sub
mno otázka, jak je Vámi definovaný soubor strukturovaný, ale asi bych to viděl na makro řešení
Jde to přes pomocný sloupec
asi takto
udělat se to dá, emaily se připraví, ale neodešlou, takovouto variantu jsem již dělal, ale bylo to v prostřednictví windows a office outlook..
To bude muset někdo, kdo pracuje s mac.
na to asi není potřeba vzorový soubor...
bohužel nepracuji s MAC, takže nemohu plně sloužit, ale pokud tato procedura spustí emailového klienta, pak už je to hračka...
https://msdn.microsoft.com/en-us/library/office/hh859489(v=office.14).aspx
Anebo ještě úprava, jedno tlačítko, ať už je tam jeden záznam, nebo vícero, makro nový záznam skočí na poslední řádek tabulky, aby se dal hned zapisovat nový záznam.
ale zase jsem neřešil omezení (např u nových záznamů nevyplňovat p.č. a struktura oddělení musí být dodržena vč. velikosti písmen, není vyřešeno nové oddělení = řazení probíhá vždy za poslední záznam daného oddělení)
Aby Ti tedy makro Novy zaznam skočilo na první volný řádek za vynechaným odd TR, pak jsem to upravil takto
Sub PoslRiadok()
A = Cells(11, 9).End(xlDown).Row
'(posledné číslo riadka , poradové číslo stlpca kde má zastať)
Cells(A + 1, 2).Select
End Sub
co má makro nový záznam vlastně dělat? proč chceš zrovna řádek 45 (podle jakého pravidla to má skočit zrovna na tento řádek)?
Je to protože je v odd. vynecháno pole, nebo chceš v dané tabulce najít nejvyšší TR a vložit řádek s novým pořadovým číslem?
Dovolil jsem si upravit soubor od p. elninoslova, tak snad to nevadí..
mělo by fungovat na vícero nových záznamů, jen novým záznamům nevkládejte p.č. v rámci sloupce A (asi není nejlepším řešením, ale myslím, že nejrychlejším) :-)
anebo si vlož další sloupec přes svyhledat s marží a pak to vynásob celkovým počtem ks daného produktu a máš celkovou částku za marži, ne?
Maximus napsal/a:
Zkusil jsem toto a bez problému
Sub najdi()
PosledniPlnyRadek = Range("H1").End(xlDown).Row ' Ve sloupci H
Range("K1") = PosledniPlnyRadek
End Sub
a co jen
sub LRadekSloupH ()
Range("H1").End(xlDown).Offset(1, 0).Select
end sub
ale jinak by mělo fungovat i to Tebou převzaté, spíš máš v makru další procedury, které Tě směřují na jiné buňky
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.