< návrat zpět

MS Excel


Téma: přidání čísla o 1 větší než původní číslo rss

Zaslal/a 2.3.2016 19:50

Ahoj, prosím o radu.

potřebuji zjistit, jestli V SLOUPCI C ŘADEK 5 JE HODNOTA 0001 pokud ne zapiš číslo 0001, pokud ano potom najdi ve sloupci C poslední číslo (vyhodnocení od 5 řádku) a za něj do prázdné buňky dopiš o číslo větší o 1 tedy (+1) = 0002

Jakým způsobem by to šlo přes makra?

Děkuji za radu pokud budete mít někdo chvilku.

Zaslat odpověď >

#030537
elninoslov
Tak skúste niečo takéto (Stĺpec C má formát Text):
Sub IncreaseNumber()
Dim Hodnota, Riadok As Long
With ThisWorkbook.Worksheets("Hárok1")
Hodnota = .Cells(5, 3)
If Hodnota = "" Or Not IsNumeric(Hodnota) Then
.Cells(5, 3) = "0001"
Else
Riadok = .Cells(Rows.Count, 3).End(xlUp).Row
If Riadok + 1 > 5 Then .Cells(Riadok + 1, 3) = Format(Val(.Cells(Riadok, 3)) + 1, "0000")
End If
End With
End Sub
citovat
#030577
avatar
Děkuji moc všechno funguje.

Prosím ještě takovou maličkost, sedím nad tím už 2 hodiny a furt mi to nejde.snažil jsem se využít ten kód a nejde mi to.

Najdi poslední prázdnou buňku ve sloupci C (začátek hledání od řádku 5) a potom tuto hodnotu napiš do sloupce B řádek 5citovat
#030578
avatar
Jestli to nebude tím zadáním?

Přečti si zadání a to co si napsal teď.

Sedí to?citovat
#030580
avatar
toto je jiné, to je druhý typ
Najdi poslední prázdnou buňku ve sloupci C (začátek hledání od řádku 5) a potom tuto hodnotu napiš do sloupce B řádek 5

omlouvám se že otravuji pokud by měl někdo čas, já myslel že v tomto druhém typu se mi podaří využít ten první kód, ale moje grafika v hlavě potřebuje pořádnou dávku aktualizace, umím trochu používat If a Case, Select Case, ale zatím se to učím. Chtěl jsem si jen zjednodušit práci, běžně nedělám ve vba jen velmi okrajově, ale jinak smekám před váma, no snad to taky jednou pochopím zkoušel jsem toto:

Sub posledni_radek()
PosledniPlnyRadek = Cells(Rows.Count, "C").End(xlUp).Row ' Ve sloupci A
MsgBox "Poslední obsazený řádek má číslo: " & PosledniPlnyRadek
Range("B5") = PosledniPlnyRadek
End Sub

ale to je blbě, protože mi to vyhazuje číslo řádku a ne hodnotu buňky. Ale pořád je to o tom využít ten první kód ještě jednou děkuji elninoslov.

nevím jak tu hodnotu z konce převést do sloupce B řádek 5 podle zadání pro druhý typ.citovat
#030581
elninoslov
Nájdi poslednú prázdnu bunku v C ??? To bude vždy posledná bunka, ktorú aktuálny Excel dokáže adresovať, čiže Rows.Count, čiže E2013 = 1 048 576.
Vy asi hľadáte poslednú neprázdnu bunku, nie prázdnu. V tom prípade tam máte toto dobre:
PosledniPlnyRadek = Cells(Rows.Count, "C").End(xlUp).Row
Potom teda doplnte:
If PosledniPlnyRadek > 4 Then Cells(5, "B") = Cells(PosledniPlnyRadek, "C")

Ak to chcete doplniť do predošlého kódu, tak:
Sub IncreaseNumber()
Dim Hodnota, Riadok As Long
With ThisWorkbook.Worksheets("Hárok1")
Hodnota = .Cells(5, 3)
If Hodnota = "" Or Not IsNumeric(Hodnota) Then
.Cells(5, 3) = "0001"
Else
Riadok = .Cells(Rows.Count, 3).End(xlUp).Row
If Riadok + 1 > 5 Then
.Cells(Riadok + 1, 3) = Format(Val(.Cells(Riadok, 3)) + 1, "0000")
.Cells(5, 2) = .Cells(Riadok, 3)
End If
End With
End Sub

Vykoná sa to ale iba keď sa bude meniť číslo na N+1. Záleží na tom, kde sa čo v kóde umiestni, neviem ako to presne chcete.
Píšem iba z tabletu, bez overenia...citovat
#030583
avatar
Děkuju moc. Funguje. Použil jsem to první
___
PosledniPlnyRadek = Cells(Rows.Count, "C").End(xlUp).Row
If PosledniPlnyRadek > 4 Then Cells(5, "B") = Cells(PosledniPlnyRadek, "C")
___
, oba kódy jsou super. jsem si myslel že tam bude použito něco s Range, ale vy jste tam použil Cell. VBA je fakt super snad se to někdy naučím.
Každopádně Děkuji, hodně štěstí a ať se daří.citovat

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

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.

On-line nástroje