Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  78 79 80 81 82 83 84 85 86   další » ... 140

Tudíž je potřeba makro spouštět nějakým tlačítkem, nebo zkratkou, pokud již nyní chápu správně. A pokud budu používat Query, je třeba toto nastavení provádět pro každý soubor zvlášť, je to tak ?
Makro - tlačítkem nebo událostí (třeba po spuštění).
Query - není třeba, podívejte se na nastavení připojení, jaké tam jsou volby.
Zapněte závity a zbytek už zvládnete - já Vám ukázal co je špatně a cestu jak to opravit.

Tak bohužel, kód jsem překopíroval a vše funguje stejně jako to běželo mě..

Mno samozřejmě, že to funguje stejně. Protože jste sice makro nakopíroval, ale spustil jste import, který máte nastavený v Query ;)
Musíte se rozhodnout, kterou variantu chcete používat. Na začátku jste psal "zda je možné skrze makro importovat data z textového souboru". Tak jsem Vám dal makro, není ale samospustitelné, musíte ho spustit ručně ;).
Pokud chcete používat dál query - což je lepší varianta (nebudete potřebovat kód) - tak si musíte upravit nastavení vašeho připojení.

1. Otevřete soubor Parametry - nechte ho naimportovat data - budete mít zas více dat ve sloupci C - to nám teď nevadí
2. Klepněte na Data - Připojení, označte parametry a klepněte na Vlastnosti...
3. Definice - Procházet... a vyberte soubor, který chcete importovat
4. A teď to důležité - neklepejte na Dokončit, ale
- označte oddělovač a klepněte na Další >
- odznačte zaškrtnutí u Tabulátor, zaškrtněte Mezera a zaškrtněte Posloupnost oddělovačů jako jeden, klepněte na Další >
- zde byste mohl zrušit import prvního sloupce, ale já bych to klidně nechal tak, takže klepněte na Upřesnit...
- jako oddělovač desetinných míst nastavte tečku, oddělovač tisíců čárku a klepněte na OK
- teď klepněte na Dokončit.

Za tolik písmenek mám u Vás pivo

Tohoto efektu ve wordu dosáhnete pomocí pevné mezery a stejným způsobem to funguje i v excelu. Takže v buňce vyzkoušejte nahrazení "obyčejné" mezery v textu pevnou mezerou

Insert -> Text -> Symbol -> Special characters

Ano. S tím už jsem se také setkal, bohužel je to už dávno a nepamatuji si příčinu. Zkuste se podívat do referencí, jestli tam nemáte nějakou chybějící (MISSING) - to sem tam provádí nepředvídatelné neplechy.

Vyzkoušejte například totoPrivate Sub ListBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
With ListBox1
.TopIndex = .ListIndex
End With 'ListBox1
End Sub
Zkoušel jsem pouze krátce
fmMatchEntryComplete - má to nějaké mouchy, někdy to zapomene předchozí sekvenci a skočí na první položku, někdy naopak ne
fmMatchEntryFirstLetter - tady to naopak zdá se funguje spolehlivě, navíc nehrozí zapomenutí sekvence znaků. Vyhledávání mezi slovy začínajícími stejným znakem se provádí opakovaným stiskem počátečního písmene - dle mého názoru spolehlivější a i pohodlnější - ale samozřejmě záleží na obsahu ListBoxu

Koukněte naApplication.LanguageSettings.LanguageID(msoLanguageIDInstall)Česká instalace má 1029
Druhá možnost, jak problém vyřešit by mohl být podmíněný formát

EDIT:
Teď mi to došlo - zápisSelection.NumberFormat = "General;""0"";0"funguje bez ohledu na lokalizaci

Ono to je vše pouze o správném nastavení importu textového souboru...Sub subImportTextFile()
Const QT_DEST As String = "A1"

Dim sFileName
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.FilterIndex = 6
.InitialFileName = ThisWorkbook.Path
If .Show Then
sFileName = .SelectedItems(1)
End If
End With 'Application.FileDialog(msoFileDialogOpen)

If Not sFileName = vbNullString Then
Range(QT_DEST).CurrentRegion.EntireColumn.Delete

With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & sFileName, Destination:=Range(QT_DEST))
.TextFileParseType = xlDelimited
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileDecimalSeparator = "."
.TextFileThousandsSeparator = ","
.Refresh BackgroundQuery:=False
.Delete
End With 'ActiveSheet.QueryTables.Add(Connection:="TEXT;" & sFileName, Destination:=Range(QT_DEST))

Range(QT_DEST).EntireColumn.Delete
End If
End Sub

@elninoslov
Nevím, jestli bych šel touhle cestou, ale když už (funguje to a to je hlavní ;)) ).
Koukněte se na Váš kód a teď na tento a najděte rozdílPrivate Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
On Error Resume Next
Sheets(Range("A1").Value).Activate
On Error GoTo 0
End If
End Sub
Je to vlastně to samé, jen jsem vynechal některé zbytečnosti. Až se na to budete koukat za x let, nebudete se alespoň ptát - co to tu mám, proč to tu mám? Přesněji řečeno budete se ptát, ale bude Vám to trvat kratší dobu ;)))

ThisWorkbook.Names.Add Name:="vbaFormatCondition1", RefersToR1C1:="=RIGHT(RC[1],2)=""km"""
Range("Q2:Q10").FormatConditions.Add Type:=xlExpression, Formula1:="=vbaFormatCondition1"
Tyto dva řádky kódu jsou ukázkou, jak využít pojmenovaný vzorec - pokud zapracujete do kódu, bude to (odvážné tvrzení - vždy bych asi měl napsat mělo by to ;))) ) fungovat ve všech verzích excelu bez ohledu na lokalizaci a verzi

@Standa-B
Přiznám se, že jsem programátor na "baterky". Profesně jsem elektronik. Navíc oslavím tento rok sedmdesátku. Vyvíjím systémem "pokus-omyl"...nad kterými odborník programátor žasne a kroutí hlavou. Je ale fakt, že moje rozsáhlá aplikace funguje a je využívána servisními techiky lokomotiv.

Většinou na zmínku o věku nereaguji (irelevantní), nicméně udělám u 70 výjimku. Máte můj respekt, držím Vám palce.

Nevím co by na to řekl odborník programátor, já jakožto amatér nežasnu - jsem zvyklý a vždy je pro mně důležitější jestli to funguje. Ale na ty Selecty mám tak trochu alergii ;))

Jestli mohu poradit - opravdu si nainstalujte virtuální PC
např. VirtualBox - nainstalujte na něj systém. Budete mít na disku vytvořený soubor, který si zazálohujete. Poté na něj nainstalujte excel. Po 30 dnech můžete jeho virtuální disk nahradit zálohou a znovu pouze doinstalovat excel (není třeba znovu instalovat systém). Vyhnete se reinstalaci navíc Vám to umožní mít více instalací excelu na jednom PC aniž by se navzájem ovlivňovaly a můžete mít i více systémů - aniž by se ovlivňovaly.
http://technet.idnes.cz/virtualni-pc-jak-udelat-z-jednoho-pocitace-dva-fow-/software.aspx?c=A090410_151928_software_vse

Mno - řekl bych, že se snažíte zabezpečit něco, co stejně zabezpečit nelze ;)

Zablokujte uživateli možnost změnit v systému datum ;)
Zkuste načítat datum z internetu - asi to nějak půjde, ale já to nepotřebuji, takže si to musíte zjistit sám.
Teorticky ještě jedna možnost mně napadá - ten soubor se ukládá? Pokud je systémové datum starší než poslední uložení, zkuste formulář zablokovat. Musel byste v takovém případě ale zablokovat i uložení, protože by asi stačilo sešit uložit a podmínka by neplatila... ;)))

@Standa-B
Jednoduché řešení - nainstalujte si doma Office 2010 Standard na virtuální počítač a ověřte si to.

Všechny 3 řešení, které jsem Vám nabídl fungují na českém excelu 2007 a jsem si na 99% jistý, že poslední dva budou fungovat i na českém excelu 2010 Standard. Takže pokud nemáte možnost zkoušet, změňte ve Vašem kóduSelection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=ZPRAVA(r2;2)=""km""
naSelection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=COUNTIF(R2;""*km"")"
Technická: Pokud to vyvíjíte od roku 2005, už byste mohl vědět, jak se zbavit těch Selectů...

Ve Finsku mají česky lokalizovaný excel? Pokud ne, jste si jistý, že jim tam funguje podmíněný formát se vzorcem:=ZPRAVA(r2;2)="km"?

@Palooo
to som netusil ze v ceskom to nejde lebo v Nemeckom a Slovenskom to ide.
Pokud je ekvivalent fce ZPRAVA v německém excelu RIGHT tak Vám to fungovat bude. Pokud ne, tak Vám nevěřím, že to funguje (myslím funkční podmíněný formát) ;))

alebo vytcorit si vlasnu funkciu a riesit to cez VBA tam uz ten prikaz urcite nebude premenovany do jazyku :)
Tohle jsem jako nečetl ;)))

Nemusím to ani zkoušet abych věděl, že to fungovat nemůže.
Mluvím o českém excelu:
Pokud napíšete do buňky vzorec=RIGHT(B2;2)tak vás excel pustí, ale výsledkem bude #NÁZEV. RIGHT není integrovaná funkce, ale může to být uživatelská funkce a proto excel nezablokuje její vložení.
Naproti tomu při pokusu vložit =RIGHT(B2,2)to excel prostě nedovolí, protože jako oddělovač argumentů slouží ";". Čárka je oddělovač desetinných míst a proto je výraz B2,2 vyhodnocen jako chybný - není číslo, není odkaz a není ani text.

@Palooo - rozhodně nestačí ;) - nemyslete si že mne nenapadlo použít anglický vzorec. Jenže FormatConditions nezná Formula/FormulaLocal. A jak jsem napsal, český excel toto prostě nepochopí tak, jak byste si přál ;)

@Standa-B
Podle toho co jsem teď napsal, by ale neměl fungovat ani kód, který jsem vložil já - ale stejně to zkuste.
Jen mne překvapuje , že EXCEL 2010 Profesional vzorec "=RIGHT(r2;2)=""km""" akceptuje bez hlášení chyby
On Vám tu chybu hlásí, jenže Vy ji nevidíte, protože je výsledkem ve vzorci pro podmíněné formátování - výsledek je #NÁZEV a proto se formátování nezmění - to se provede pouze, pokud je výsledek PRAVDA. Takže ji hlásí tak, že neprovede formátování ;) - vložte vzorec do buňky a uvidíte ;)

Co by ale mělo fungovat je vzorec=IFERROR(VPRAVO(R2;2);ZPRAVA(R2;2))="km"nebo=COUNTIF(R2;"*km")

A ještě jen technická - pokud budete takto napsaný kód používat výhradně v česky lokalizoaných excelech, bude to fungovat - nicméně, pokud už byste ho spustil v jiné lokalizaci, fungovat to nebude. Tady bych šel asi cestou definovaného názvu, protože ten si každá lokalizace přeloží automaticky - ale to jen tak na okraj ;)

Nemám excel 2010, ale stejně si tipnu

Podle mne je to ztraceno v překladu (ve verzi 2010 nějaký aktivní lokalizátor přeložil RIGHT jako VPRAVO místo obvyklého ZPRAVA - možná později opraveno nějakou aktualizací - nevím)

Zkuste následující úpravu - jestli pomůže With Range(Range("q2"), Range("q2").End(xlDown))
.FormatConditions.Delete
On Error Resume Next
.FormatConditions.Add Type:=xlExpression, Formula1:="=ZPRAVA(r2;2)=""km"""
If Not Err.Number = 0 Then
.FormatConditions.Add Type:=xlExpression, Formula1:="=VPRAVO(r2;2)=""km"""
End If
On Error GoTo 0
With .FormatConditions(1).Font
.Bold = True
.Italic = False
.ColorIndex = 3
End With '.FormatConditions(1).Font
End With 'Range(Range("q2"), Range("q2").End(xlDown))


Strana:  1 ... « předchozí  78 79 80 81 82 83 84 85 86   další » ... 140

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