Ok. Děkuji moc jste mi pomohl.
Elninoslov děkuji, od boku a skvělé. Šlo by ještě datum zarovnat vlevo?
Děkuji moc
Zdravím. Pánové od fochu, potřeboval bych upravit kód.
Do sloupce 15 se mi vzorcem zapisují data z jiného listu a pokud je ve sloupci 15 nějaká hodnota vyplní buňky vlevo sloupec 11 a 12 (11 vyplní 1 a 12 datum).
Bohužel mi to vymaže předchozí data v jiných řádcích, kde ani ve sloupci 15 nejsou žádná data. Potřebuji to ošetřit tak, aby v případě, že bude nějaká vyplněná hodnota ve sloupci 11-14, tak tento řádek ponechá beze změny, nebo prostě aby si to upravilojen ten řádek, kde je ve sloupci 15 nějaká hodnota (takto to přepíše všechny řádky, reaguje to i na řádky kde je ve sloupci 15 jen vzorec)
Omlouvám se že dávám bez přílohy.
Private Sub Odfiltrovat()
Dim Sledovana_oblast(), Datova_oblast()
Dim i As Long
With wsSouhrn 'Jméno listu
Sledovana_oblast = wsSouhrn.Range("O4:O100003").Value
ReDim Datova_oblast(1 To UBound(Sledovana_oblast), 1 To 2)
For i = LBound(Sledovana_oblast) To UBound(Sledovana_oblast)
If Sledovana_oblast(i, 1) <> "" Then
Datova_oblast(i, 1) = 1
Datova_oblast(i, 2) = Now
End If
Next i
With wsSouhrn.Range("K4")
.Resize(UBound(Datova_oblast, 1), 2).Value = Datova_oblast
End With
End With
Erase Sledovana_oblast
Erase Datova_oblast
End Sub
Ano, moc děkuji. To je přesně ono. Super
Zdravím.
Přátelé, mám zápis co mi vytvoří a uloží záložní soubor do stejného adresáře a pojmenuje ho: den-měsíc-rok-hodina atd.
Potřeboval bych, zda by šlo upravit tak, aby mi vyzval k tomu abych si sám zvolil cestu, kam soubor uložím.
Sub Zaloha()
ActiveWorkbook.SaveCopyAs Filename:=ActiveWorkbook.Path & _
"\" & Format(Now, "yyyy-mm-dd hh-mm-ss") & " " & _
ActiveWorkbook.name
End Sub
Už vyřešeno. Ale přesto díky
V listu 3 třeba asi takto
Tak se tedy omlouvám. Asi svůj problém řeším špatně a složitě. Chtěl jsem to kontrolovat přes další skrytý list v tabulce, protože si s tím nevím rady. Nechme tedy plavat můj příspěvek.
Popíšu o co mi jde. Snad srozumitelně.
Mám soubor s inventurními položkami a jednotlivými sklady (sklady ve sloupci C). Každé číslo skladu má X položek (řádků). Vložil jsem si modul na možnost doplnění stávající sestavy skladu o další sklad. To funguje a přidá mi sklad s x položkami od prvního volného řádku níže a vypíše hlášku kolik položek (řádků)bylo přidáno. Chybí mi však nějaká funkcionalita (asi kolekce) na pohlídání toho, abych omylem nenačtl číslo skladu, který už v inventuře mám. Prostě před načtením zkontroluje sloupce C a pokud zjistí shodu v nějakém skladu, MsgBox ohlásí sklad ... máte již v Inventuře a ukončí proceduru. V tu chvíli prostě zruší vložení dat do inventury.
Soubor co se načítá má hlavičku a čísla skladů jsou od C2 níže a načítají se do souboru s Inventurou, který má také hlavičku a zde se zobrazují od C4 níže.
Posílám kód (modul), který načítá soubor.
Lopotím se stím už nějakou dobu a vůbec nevím jak potchytit tu proceduru ještě před vložením dat
Mnohokrát děkuji
Ahoj mistři programátoři.
Předně přeji všem krásné svátky a hodně zdraví a pohody do Nového roku 2023.
Obracím se sprosbou. Potřeboval bych ve VBA porovnat dva sloupce C ve dvou listech a do listu 3 zapsat do buňky F3 Výsledek (1 v pořádku,0-duplicita a do F4 zapíše tu duplicitní hodnotu, případnou další do F5)
List-1 oblast (C4-C20000)
List-2 oblast (C2-C20000)
Pokud v se v Listu-2 najde stejná hodnota, jako je již v Listu-1, zapíše do listu-3 buňky F3 výsledek
Tak se mi to povedlo rozchodit. Asi by to šlo i jinak, ale funguje.
Před načtení jsem dal
' Počet nových položek, před načtením podle sloupece A:A
Pocet1 = wsIdata.Cells(Rows.Count, "A").End(xlUp).Row - 3
po načtení
' Počet nových položek, po načtení A:A
Pocet = wsIdata.Cells(Rows.Count, "A").End(xlUp).Row - 3 - Pocet1
' MsgBox hlášení
MsgBox "Import byl proveden." & vbNewLine & "Tímto je přidáno " & Pocet & " nových položek do Sestavy.", vbInformation
Tak buď dělám něco špatně, nebo je to to samé. Spočítá všechny řádky. Potřebuji počítat od prvního volného řádku. Data přidávám taky od prvního volného řádku.
' Počet nových položek, řídí se podle sloupece A:A
Pocet = wsIdata.Cells(Rows.Count, "A").End(xlUp).Row - 3
MsgBox "Zapsáno " & Pocet & " nových položek do Sestavy.", vbInformation
Spočítá mi to ale všechny i se starými položkami
Ahoj.
Přátelé řeším MsgBox, který by mi vypsal, kolik jsem importem přidal, (řádků) do tabulky
Dokonce se mi i případně v E2 zobrazuje počet stávajících řádků v tabulce.
Lugr děkuji, naved jsi mi na dobrou cestu.
Vložil jsem tam
Range("oblast").NumberFormat = "# ##0"
a mám co potřebuji. Díky
Ladys napsal/a:
Zdravím,
Základem je událostní procedura v ThisWorkbook, konkrétně Workbook_SheetChange, kde se dá odchytit změna v buňce.
Šlo by to udělat podobně i pro modul listu (V tom případě by šlo vynechat parametr Sh a řádek If Sh.name = "List1"). Viz příloha.Příloha: 54093_data_2.zip (18kB, staženo 1x)
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.