Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  103 104 105 106 107 108 109 110 111   další » ... 302

2 varianty:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zmena As Range, Are As Range, Kde(), H(), i As Long

Set Zmena = Intersect(Cells(2, 2).Resize(Rows.Count - 1), Target)
If Zmena Is Nothing Then Exit Sub
Kde = Worksheets("List2").Range("B2:C27").Value

Application.ScreenUpdating = False
Application.EnableEvents = False

On Error Resume Next
For Each Are In Zmena.Areas
With Are
H = .Value
For i = 1 To UBound(H, 1)
H(i, 1) = WorksheetFunction.VLookup(H(i, 1), Kde, 2, False)
If Err.Number <> 0 Then H(i, 1) = Empty: Err.Clear
Next i

.Offset(0, 1).Value = H
End With
Next Are

Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zmena As Range

Set Zmena = Intersect(Cells(2, 2).Resize(Rows.Count - 1), Target)
If Zmena Is Nothing Then Exit Sub

With Zmena.Offset(0, 1)
Application.ScreenUpdating = False
Application.EnableEvents = False

.Formula = "=IFERROR(VLOOKUP(B" & Zmena.Row & ",List2!$B$2:$C$27,2,FALSE),"""")"
.Value = .Value

Application.ScreenUpdating = True
Application.EnableEvents = True
End With
End Sub

Nemusíte písať presne rovnaký vzorec ako tu už je. Stačí raz 5
A ako som písal, dotaz a skladba "podmienok" je logický nezmysel. Nemôže byť
podmienka 1 TRUE - "A"
podmienka 1 FALSE - "B" a zároveň podmienka 2 ...
buď je pri FALSE "B" alebo nieje.

Nakreslite si niečo ako vývojový diagram vetvenia podmienok, ako sa učilo pri programovaní, a hneď musí každému docvaknúť nelogickosť dotazu.

Možno by sa to dalo aj takto:
Ak je
A1<=100
alebo
A1<=150 a zároveň pritom B1 je v jednom z intervalov 100-567 alebo 580-599
tak
"A"
inak vždy "B"
=IF(OR(A1<=100;AND(A1<=150;OR(AND(B1>=100;B1<=567);AND(B1>=580;B1<=599))));"A";"B")
=KDYŽ(NEBO(A1<=100;A(A1<=150;NEBO(A(B1>=100;B1<=567);A(B1>=580;B1<=599))));"A";"B")

Logický nezmysel.

Pokud je váha v buňce A1 do 100 kg včetně, napiš A, jinak B

hotovo bodka. Žiadne "a zároveň pokud..."
číslo v buňce B1 od 100 do 567 a od 580 do 599

no buď je 100-567 ALEBO 580-599. Nie "A" ale "ALEBO".
A teraz tie 2 veci ešte skĺbiť do logickej podmienky. Skúste ešte raz, napísať vzorec sa dá, iba ak sú jasné pravidlá :)

EDIT: Kombinácie sa dajú predsa robiť takmer ľubovoľné, len musíme vedieť čo máte na mysli. Vaše zadanie podľa mňa riešenie zatiaľ nemá, tu je len príklad, že môžete používať kombinácie a vnorenia AND/OR/AND atď...
=IF(A1<=100;"A";IF(AND(A1<=150;OR(AND(B1>=100;B1<=567);AND(B1>=580;B1<=599)));"A";"B"))
=KDYŽ(A1<=100;"A";KDYŽ(A(A1<=150;NEBO(A(B1>=100;B1<=567);A(B1>=580;B1<=599)));"A";"B"))

To preto, lebo vkladáte vzorec, a ten vzorec tam ostane, čiže sa pri kalkulácii prepočíta. Ten vložený a vypočítaný vzorec prepíšte jeho hodnotou. z brucha (oblasti som spojil, lebo sú spojité):
Sub Start()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

With Range("T17:AM18")
.Formula = "=RANDARRAY(1,1,0,0.02,FALSE)"
.Value = .Value
End With
With Range("T19:AM20")
.Formula = "=RANDARRAY(1,1,1.47,1.51,FALSE)"
.Value = .Value
End With
With Range("T21:AM22")
.Formula = "=RANDARRAY(1,1,89.98,90.02,FALSE)"
.Value = .Value
End With
With Range("T23:AM24")
.Formula = "=RANDARRAY(1,1,142.47,142.53,FALSE)"
.Value = .Value
End With

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

So mnou ísť na pivo je na figu. Vypijem jedno a končím. Ja som taký "prd-chlap". 3

Keď už máte taký "fundamentalistický" postoj k zmene, tak som zmenil len nevyhnutné:
-Mesiac a rok "Leden "&srok určite nebude fungovať inde ako v CZ, teda ani mne, preto zmenené na univerzál.
-podmienené formátovanie z rovnakého dôvodu nefungovalo
-v jednej skupine (tuším B) ste mal zlé vzorce na "plné směny v měsíci
-na sviatky neprehľadávajte celý stĺpec B:B, keď máte len 13 sviatkov
-v B skupine ste sa odkazoval na zlý riadok výpočtu druhov smien (19 vs 20)
-vzorce v súčtoch sú manuálne vypísané, to by sa zišlo urobiť tak, aby boli vypočítavané, posúvané oblasti, aby bol vzorec naťahovateľný. Pretože pri nejakej úprave počtu a umiestnení riadkov to môže byť pracné.

Obyčajná podmienka:
=IF([@Master]="";[@Slave];[@Master])
=KDYŽ([@Master]="";[@Slave];[@Master])

?

Biely text na bielom pozadí ???

Takže netreba nič. Premýšľal som na ADO, cez ktoré sa dá relatívne rýchlo získať zoznam listov, a na tie by sa dal aplikovať SUMPRODUCT s kontrolou oblasti na výskyt (v zatvorenom zošite). Ale práve tá oblasť je problém. Možno by to šlo cez ADO zistiť. Potom by sa tie vzorce naraz zapísali do pomocných buniek a máte celkom rýchlo výsledok. Lenže toto by asi bolo skôr na PowerQuery, kde netreba riešiť oblasti, lenže treba čarovať zase s názvami stĺpcov...
Neuviedol ste ani či hľadať v celom liste alebo iba v jednom stĺpci. Ani či sú súbory a listy rovnaké alebo rôznorodé.
Nápady by boli, hneď 2, ale príliš sa mi do toho nechce. Tak snáď ste si pomohol v TC.

Ten vzorec ale nemáte správne prerobený. Namiesto bodkočiarok (středníků) musia byť v EN verzii čiarky.

Vkladajte EN verzie vzorcov a bude to fungovať. Takto pochybujem, lebo pre neho bude FormulaLocal po EN pre Vás CZ. Ale keď to budete vkladať po EN, tak to pôjde obom.

Ako je to s listami v súboroch? Je len 1 list rovnakého mena?
A v ktorom stĺpci sa má hľadať?

Veď to je plne dynamické. Som počítal, že si to upravíte ako ste vravel.
Takže príklad (dá sa napchať aj do 1 riadku):
Sub pokus()
Dim R As Long, PR As Long, PS As Integer, S As Integer, ADR As String

R = 10 'prvý riadok
S = 4 'prvý stĺpec
PR = 200 'počet riadkov
PS = 1 'počet stĺpcov
ADR = Cells(R, S).Resize(PR, PS).Address 'Adresa
Range(ADR).Value = Evaluate(Replace("=IF(?<>"""",ROUND(?,2),"""")", "?", ADR)) 'Vo vzorci sa za ? nahradí adresa
End Sub


EDIT:
Prípadne by som to upravil ešte pomocou IFERROR, pre prípad, že by tam bol aj text:
Range(ADR).Value = Evaluate(Replace("=IFERROR(IF(?<>"""",ROUND(?,2),""""),?)", "?", ADR)) 'Vo vzorci sa za ? nahradí adresa

Range("D10:D200").Value = Evaluate("=IF($D$10:$D$200<>"""",ROUND($D$10:$D$200,2),"""")")


Strana:  1 ... « předchozí  103 104 105 106 107 108 109 110 111   další » ... 302

Uživatelské menu

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

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