If Not Dir(sAdresar & "\" & V_*_2015_02_S.txt") = vbNullString Then
'existuje
End If
Určitě lze, jen je třeba říct, jak vypadá ta maska.
Hehe - mno, mám rád když se po ránu mohu rozehřát něčím, co zapojí mé závity.
Formátem to nelze, protože pokud máte zapsánu IP adresu ve formátu "x.x.x.x", tak to není číslo, ale text a ten nenaformátujete. A pokud ho máte decimálně, tak to zase formátem do tohoto tvaru nedostanete.
Takže: bez ohledu na význam jednotlivých částí - dotaz zněl k IP adrese přičíst 1
1. Musíte převést IP (v buňce A1) do decimálního tvaru - třeba takto (B1)=HEX2DEC(DEC2HEX(ZLEVA(A1;NAJÍT(".";A1)-1)/1;2)&DEC2HEX(ČÁST(A1;NAJÍT(".";A1)+1;NAJÍT("|";DOSADIT(A1;".";"|";2))-NAJÍT(".";A1)-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";2))+1;NAJÍT("|";DOSADIT(A1;".";"|";3))-NAJÍT("|";DOSADIT(A1;".";"|";2))-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";3))+1;3);2))2. Pak můžete přičíst 1 a převést zpět do tvaru adresy - třeba takto (C1)=HEX2DEC(ZLEVA(DEC2HEX(B1+1;8);2))&"."&HEX2DEC(ČÁST(DEC2HEX(B1+1;8);3;2))&"."&HEX2DEC(ČÁST(DEC2HEX(B1+1;8);5;2))&"."&HEX2DEC(ZPRAVA(DEC2HEX(B1+1;8);2))No a pokud to chcete v jedné buňce, tak z toho vyleze takováto šílenost ;))=HEX2DEC(ZLEVA(DEC2HEX(HEX2DEC(DEC2HEX(ZLEVA(A1;NAJÍT(".";A1)-1)/1;2)&DEC2HEX(ČÁST(A1;NAJÍT(".";A1)+1;NAJÍT("|";DOSADIT(A1;".";"|";2))-NAJÍT(".";A1)-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";2))+1;NAJÍT("|";DOSADIT(A1;".";"|";3))-NAJÍT("|";DOSADIT(A1;".";"|";2))-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";3))+1;3);2))+1;8);2))&"."&HEX2DEC(ČÁST(DEC2HEX(HEX2DEC(DEC2HEX(ZLEVA(A1;NAJÍT(".";A1)-1)/1;2)&DEC2HEX(ČÁST(A1;NAJÍT(".";A1)+1;NAJÍT("|";DOSADIT(A1;".";"|";2))-NAJÍT(".";A1)-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";2))+1;NAJÍT("|";DOSADIT(A1;".";"|";3))-NAJÍT("|";DOSADIT(A1;".";"|";2))-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";3))+1;3);2))+1;8);3;2))&"."&HEX2DEC(ČÁST(DEC2HEX(HEX2DEC(DEC2HEX(ZLEVA(A1;NAJÍT(".";A1)-1)/1;2)&DEC2HEX(ČÁST(A1;NAJÍT(".";A1)+1;NAJÍT("|";DOSADIT(A1;".";"|";2))-NAJÍT(".";A1)-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";2))+1;NAJÍT("|";DOSADIT(A1;".";"|";3))-NAJÍT("|";DOSADIT(A1;".";"|";2))-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";3))+1;3);2))+1;8);5;2))&"."&HEX2DEC(ZPRAVA(DEC2HEX(HEX2DEC(DEC2HEX(ZLEVA(A1;NAJÍT(".";A1)-1)/1;2)&DEC2HEX(ČÁST(A1;NAJÍT(".";A1)+1;NAJÍT("|";DOSADIT(A1;".";"|";2))-NAJÍT(".";A1)-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";2))+1;NAJÍT("|";DOSADIT(A1;".";"|";3))-NAJÍT("|";DOSADIT(A1;".";"|";2))-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";3))+1;3);2))+1;8);2))
Vzorce anglicky (pro ostatní národy a šťastlivce s anglickou lokalizací ;) )
B1:=HEX2DEC(DEC2HEX(LEFT(A1,FIND(".",A1)-1)/1,2)&DEC2HEX(MID(A1,FIND(".",A1)+1,FIND("|",SUBSTITUTE(A1,".","|",2))-FIND(".",A1)-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",2))+1,FIND("|",SUBSTITUTE(A1,".","|",3))-FIND("|",SUBSTITUTE(A1,".","|",2))-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",3))+1,3),2))C1:=HEX2DEC(LEFT(DEC2HEX(B1+1,8),2))&"."&HEX2DEC(MID(DEC2HEX(B1+1,8),3,2))&"."&HEX2DEC(MID(DEC2HEX(B1+1,8),5,2))&"."&HEX2DEC(RIGHT(DEC2HEX(B1+1,8),2))Do jedné buňky=HEX2DEC(LEFT(DEC2HEX(HEX2DEC(DEC2HEX(LEFT(A1,FIND(".",A1)-1)/1,2)&DEC2HEX(MID(A1,FIND(".",A1)+1,FIND("|",SUBSTITUTE(A1,".","|",2))-FIND(".",A1)-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",2))+1,FIND("|",SUBSTITUTE(A1,".","|",3))-FIND("|",SUBSTITUTE(A1,".","|",2))-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",3))+1,3),2))+1,8),2))&"."&HEX2DEC(MID(DEC2HEX(HEX2DEC(DEC2HEX(LEFT(A1,FIND(".",A1)-1)/1,2)&DEC2HEX(MID(A1,FIND(".",A1)+1,FIND("|",SUBSTITUTE(A1,".","|",2))-FIND(".",A1)-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",2))+1,FIND("|",SUBSTITUTE(A1,".","|",3))-FIND("|",SUBSTITUTE(A1,".","|",2))-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",3))+1,3),2))+1,8),3,2))&"."&HEX2DEC(MID(DEC2HEX(HEX2DEC(DEC2HEX(LEFT(A1,FIND(".",A1)-1)/1,2)&DEC2HEX(MID(A1,FIND(".",A1)+1,FIND("|",SUBSTITUTE(A1,".","|",2))-FIND(".",A1)-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",2))+1,FIND("|",SUBSTITUTE(A1,".","|",3))-FIND("|",SUBSTITUTE(A1,".","|",2))-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",3))+1,3),2))+1,8),5,2))&"."&HEX2DEC(RIGHT(DEC2HEX(HEX2DEC(DEC2HEX(LEFT(A1,FIND(".",A1)-1)/1,2)&DEC2HEX(MID(A1,FIND(".",A1)+1,FIND("|",SUBSTITUTE(A1,".","|",2))-FIND(".",A1)-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",2))+1,FIND("|",SUBSTITUTE(A1,".","|",3))-FIND("|",SUBSTITUTE(A1,".","|",2))-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",3))+1,3),2))+1,8),2))
Možná je toto ten případ, že bych uvažoval o UDF - ale nevím ;)
Technická
prosím, přejmenujte vlákno (pokud to lze) aby bylo jasné, že to není o formátu, ale o práci s IP adresou. Děkuji
Mno přijde mi to jako naprostá zbytečnost, ale po ránu na rozcvičení
SelectionChange stačit nebude. Jak píše marjankaj některé akce tuto událost nevyvolají. Takže zkuste do modulu sešitu (ThisWorkbook) vložitPrivate Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.Calculate
End Subpak přidejte standardní modul a vložteFunction GET_ACTIVECELL()
GET_ACTIVECELL = ActiveCell.Value
End Functionno a pak do buňky, kde chcete vidět tu hodnotu vložte=GET_ACTIVECELL()
Testoval jsem asi 15s a protože nevidím žádé rozumné využití, dále se tím nezabývám
@Yerome1
Mno - moc dobře nerozumím, k čemu Vám bude, když to budete mít uložené v HASH. Prostě ten Váš HASH zkopírují a zadají jako heslo...
A vkládat tady celý kód, abychom museli rolovat a rolovat - nestačil odkaz?
Mno - jsou pouze 2 možnosti - buď máte skryté sloupce, viz výše
anebo, a to je pravděpodobnější - máte otevřený soubor, který byl vytvořen ve verzi starší než 2007 - máte to v režimu kompatibility
Zkuste ho uložit jako xlsx, zavřít a otevřít
Hmm, tak nevím, jestli Vám rozumím. Ale pokud Vám rozumím, tak
1. klepněte na kteroukoliv buňku
2. CTRL+A
3 Pravým tlačítkem na záhlaví kteréhokoliv sloupce (označení sloupce - např. B) a vyberte Zobrazit
A k tomu druhému - já vyzkoušel poslat do SAP příkaz SHIFT+F7 pomocíSub test()
AppActivate "HV vč IFRS - pl/sk (04_HVTOTAL)"
Application.SendKeys Keys:="+{F7}"
End Suba prošlo to, takže by to mohlo stačit ;)))
Ten text za AppActivate je Caption okna SAP, ale to jste asi pochopil ;))
edit:
tak změna - prošlo to, pokud byl výkaz zobrazen standardně v SAP, pokud byl v Excelu:Sub test()
AppActivate "HV vč IFRS - pl/sk (04_HVTOTAL)"
Application.SendKeys Keys:="^{TAB}+{F7}"
End Sub
Ale vypíná mi to Num lock - něco nechám taky na Vás ;))
Mno - takže u mně je ten report v SAPu např. takto:
A pak si ho vyhledám: Dim wSAPBook As Workbook
Dim wBook As Workbook
For Each wBook In Workbooks
If (InStr(1, wBook.Name, "List v ReportWriter") <> 0) And (Left(wBook.Sheets(1).Name, 10) = "Výsledovka") Then
Set wSAPBook = wBook
Exit For
End If
Next wBook
Set wBook = Nothing
Pak mám With wExcelBook.Sheets(1)
wSAPBook.Sheets(1).Cells.Copy
.Range("A1").PasteSpecial Paste:=xlPasteValues
Set wSAPBook = Nothinga dál už si s tím (barvičky) poradíte sám ;)
Mno - doma SAP nemám, ale ty reporty se mi otevírají v kontejneru, takže po zobrazení VBE byste je tam měl vidět normálně vidět. Mělo by to teda jít bez CreateObject. Té hlášky se můžete ještě zbavit i tím, že ten starý soubor prostě smažete (Kill)
Co se týká vady na kráse
Já jsem si vyřídil oprávnění na Report Painting, takže si vytvořím výkaz, přesně jak potřebuji. Pokud Vám ho nedají, kontaktujte operátora SAPu ve firmě, ať Vám udělá kopii toho výkazu s plným rozbalením (musí se nastavit v definici výkazu, takže pokud ten výkaz není vytvořen pouze pro Vás, bude kopie lepší). Ikdyž si nejsem jistý, jestli Vámm to projde, když budete argumentovat, že se Vám nechce mačkat Shift+F9 ;)))
Je samozřejmě možnost ovládat SAP přímo z excelu, ale to je na dlouho. Možná bych proto zkusil přesunout focus na okno SAP a vyslat kombinaci SHIFT+F9 (jak bych to normálně nedoporučil) - focus musí být na okně SAP, ne na reportu v excelu.
1. AVARAGEIF nebo AVARAGEIFS
2. SUMIF/COUNTIF nebo SUMIFS/COUNTIFS
@AL
díky, lépe bych to nevysvětlil ;))
Protože se to vizuálně nikde neprojeví, jde opravdu "jen" o vyloučení chyby. Popravdě, místo znaku "-" by bylo lepší zvolit něco jiného, protože i ten je trochu rizikový.
Takže bych měl raději použít "#" nebo lépe "°".
Je legrace, že v podstatě stejné řešení použil AL ve vedlejším vlákně (možná mi někdo uvěří, že nezávisle ;)) ).=IFERROR(INDEX($C$2:$C$270;POZVYHLEDAT($J21&"-"&K$20;$A$2:$A$270&"-"&$B$2:$B$270;0));"XXX")samozřejmě maticově
Btw:
já moc svyhledat nemusím, takže pro ten obrázek=INDEX($F$2:$F$9;COUNTIF($E$2:$E$9;"<"&A2)+1)
I já to pochopil jako Pepe a proto jsem dodal
Pokud ne, tak nějak podobně jako pepe a já jsem nezlobil ;)
Ono je to tak - někdy mám náladu si zapřemýšlet a slušné zadání, aby člověk pohledal - a když nenajdu, je třeba si ho sám vymyslet ;) . Není to často, ale někdy se to stane. Ono to na mně vystřelilo, vypadá to jako otázka v IQ testu
1 az 5 -> 100
6 az 10 -> 200
11 az 20 -> 300
???
taxem toho využil ;)))
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.