Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  150 151 152 153 154 155 156 157 158   další » ... 288

Pr.

Nie, záleží na tom, čo bude na liste s výslednou hodnotou (List1), a čo na liste so zdrojovými dátami (List999).

Bude to takto ako píšem ?

Na liste List1 bude:
-bunka s výberovým zoznamom
-SpinButton

Na liste List999 bude:
-zoznam materiálov
-Poradová hodnota SpinButton-u

V tom prípade nehľadáte delitele ale násobky. Takto ?

Pr.

Snáď jedine makro...

Snáď na to je niečo sofistikovanejšie, ale tento maticový vzorec Vám to zráta. Musí to byť číslo do max čísla riadku v Exceli (1048576). Použil som 2 definované názvy, ale to nemusíte, môžete to zneprehľadniť do jedného maticového (Ctrl+Shift+Enter) vzorca.

Inak výsledok je 6, zabudol ste na číslo 18.

Viď obdobná téma na pc-help

Ak som to správne pochopil, tak tu je príklad. Ukázané sú tam 2 metódy záverečnej ukážky tlače. Ten vypoznámkovaný je ten nový štýl Office, ktorý sme sa tu pred možno 2 rokmi snažili prinútiť aby zastavil makro, pokiaľ nieje okno Tlače zrušené, alebo nieje dotlačené, vtedy sa myslím na riešenie neprišlo. Teraz už možno nejaké známe riešenie je. Problém bol v tom, že je treba pri tomto riešení označiť hárky, dať tlačiť, a po vytlačení odznačiť. Teda buď ostanú označené, alebo ich následný príkaz na odznačenie hneď odznačí (lebo makro nečaká) ešte pred vytlačením. To prinášalo problémy nevytlačenie, alebo označenie viac hárkov, ak si to nevšimnete tak napr pri vymazaní hodnoty v jednom zmažete nechtiac vo všetkých označených listoch. A pod... Ale vravím, možno je riešenie už na svete. Druhá metóda vyvolá staré náhľadové okno, bez nutnosti označovať listy.

Ďalej nieje jasné, či musí A obsahovať číslo, alebo aj inú hodnotu. Zatiaľ je to urobené, že tam musí byť bezpodmienečne číslo, text nestačí.

Mohli ste kľudne pokračovať vo svojom vlákne z 2.2.2018 s rovnakou témou. A možno s tým budú stále rovnaké nelogické problémy, ktoré som tam spomínal :)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Poz As Long

If Not Intersect(Cells(1, 2), Target) Is Nothing Then
On Error Resume Next
Poz = WorksheetFunction.Match(Cells(1, 2), Cells(18, 11).Resize(, 11), 0)
On Error GoTo 0

Application.EnableEvents = False
If Poz > 0 Then
Cells(3, 1) = Cells(17, 10 + Poz)
Cells(17, 10 + Poz).Resize(2) = WorksheetFunction.Transpose(Array(0, "Prázdný"))
Else
Cells(3, 1).ClearContents
End If
Application.EnableEvents = True
End If
End Sub

Ale zase je tu množstvo poznámok. V tej tabuľke sa majú nájsť, spočítať a vymazať všetky výskyty daného dielu (To treba urobiť potom inak)? Alebo iba prvý/posledný? Z ktorej strany? Ak tam nenájde daný diel alebo je B1="", vymaže modrú bunku A3.

Táto príloha potom samozrejme prináša ďalšie a ďalšie otázky s ohľadom na predchádzajúce nedovysvetlené zadanie. Napr. : Hľadáte Vy v predchádzajúcom požiadavku naozaj prvý prípad zprava, keď je splnené že do nejakej bunky sú všetky zaplnené a len tá posledná bunka je prázdna? Alebo hľadáte prvú prázdnu zľava?
Ak tam totiž sú medzery ("prázdne" boxy), tak aj v prvom prípade nastane, že sa naplní box zprava. Mne to príde divné, ale to možno len preto, lebo neposkytujete dobrý (žiadny) popis toho, čo chcete dosiahnuť. Toho čo robíte. Z Vašeho makra nemusí byť vôbec zrejmé čo chcete dosiahnuť, keďže ako laik nemusíte mať uváženú správnu metodiku.

Keď tak pozerám čo robí ten Váš kód resetboxu, tak resetboxu2 robí to isté, nič viac netreba, žiadne ďalšie procedúry ako reseticek1, reseticek2 ... .
Teda robí to to isté, ale vôbec neviem čo 5
Nech je to ale čo chce, tak asi by som si urobil ďalší pokus aj cez polia a pomeril rýchlosť. Záleží aj na množstve buniek, ktoré chcete nakoniec obsiahnuť...
Sub resetboxu2()
Dim i As Long
If Cells(3, 1) <> "" Then
For i = 9 To 1 Step -1
If Cells(21, 1).Offset(0, i) = "" And WorksheetFunction.CountIf(Cells(21, 2).Resize(, i), "<>") = i - 1 Then
Cells(21, 2).Resize(3).Offset(0, i - 1) = WorksheetFunction.Transpose(Array(Cells(1, 1), Cells(5, 1), Cells(3, 1)))
Cells(3, 1) = 0
End If
Next i
End If
End Sub

Skúste priložiť normálnu XLSM prílohu, kde bude lepšie vidieť, čo chcete dosiahnuť (čo testujete a čo dopĺňate), a kde budú aj procedúry "resetnicekX".

Pr.

Áno, dá sa to urobiť aj inak, napr. takto:
=RIGHT(A4;LEN(A4)-FIND(" ";A4))
=ZPRAVA(A4;DÉLKA(A4)-NAJÍT(" ";A4))

alebo
=REPLACE(A4;1;FIND(" ";A4);"")
=NAHRADIT(A4;1;NAJÍT(" ";A4);"")

Som teraz len na mobile, keď prídem, môžem Vám to poslať celé, každopádne:
-Modul odstránte iba jeden.
-V zostávajúcom Module nahraďte kód, ktorý tam je, kódom ktorý som poslal.
-Na názve Modulu nezáleží
-Názvy makier a priradenie k tlačítkam je tak ako ste mal.
-Dala by sa urobiť jedna spoločná procedúra na mazanie, ale aj tak by muselo mať každé tlačitko svoju na volanie tej spoločnej. Ušetrilo by sa pár riadkov možno, ale Vy ako laik by ste bol asi zmätenejší.

EDIT: Prikladám prílohu...


Strana:  1 ... « předchozí  150 151 152 153 154 155 156 157 158   další » ... 288

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

VBA - nespolehlivý plátce DPH

elninoslov • 6.6. 18:16

Vnořená funkce =DNES do funkce =DAYS

elninoslov • 6.6. 13:32

Vnořená funkce =DNES do funkce =DAYS

dommatej • 6.6. 13:25

VBA - nespolehlivý plátce DPH

elninoslov • 6.6. 12:50

VBA - nespolehlivý plátce DPH

Lukas333323 • 6.6. 12:16

VBA - nespolehlivý plátce DPH

elninoslov • 6.6. 11:12

VBA - nespolehlivý plátce DPH

Lukas333323 • 6.6. 8:27