Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  3 4 5 6 7 8 9 10 11   další » ... 15

To není jednoduché. Chceto vyzkoušet co Ti bude fungovat.Něksdy stačí před vložení vzorce.Columns("E:E").NumberFormat = "General" nebo je možné použít
.Columns("X").Replace What:="", Replacement:=Empty
.Columns("X:X").NumberFormat = "General"

Já na to používám své globalni funkce které pak kombinuji.'-------------------------------------------------------------------------------'
Function posledni(sloupek As String) As Long
posledni = Range(sloupek & "65536").END(xlUp).Row
End Function
'-------------------------------------------------------------------------------'
Private Sub loc_nacti()
Dim i As Long
For i = 0 To 9
Selection.Replace What:=CStr(i), Replacement:=CStr(i), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Next i
End Sub
'-------------------------------------------------------------------------------'
Private Sub loc_vypln_vzorec()
Dim i As Long
With ActiveSheet
Selection.FillDown
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
call loc_nacti
End With
End Sub
'-------------------------------------------------------------------------------'
A pak používám v rámci cyklu apod. něco podobnéhoWith Worksheets("Plan zisku")
.Activate
i = poslední("A")
.Range("D1").FormulaR1C1 = "=AND(VLOOKUP(RC6,'SQL'!C2:C6,4,0)=RC7,VLOOKUP(RC6,'SQL'!C2:C6,5,0)=RC8)"
.Range("D1:D" & i).Select
Call loc_vypln_vzorec
End With
Zkus a uvidíš. Excel je někdy tvrdohlavý :_) R.

To ukazuje spíš na to, že vkládáš do buňky, která je textová. Vzorec se ti ukáže ale nevypočte. Pak poklepeš nebo přes F2 vstoupíš do editace buňky, nic s ní neděláš a když ji potvrdíš ENTREM pak se vzorec vypočte. Excel se až pak pokusí zjistit, zda se nezměnila povaha buňky a protože najde rovnítko, začne počítat. Běžně se toto vyskytuje u buněk, které jsou nebo byly importovány z textových souborů. Mýlím se ???

sub oznac()
Worksheets(Array("List1", "List2", "List3")).Select
End Sub

Jmenuje se to "Asociovat soubor s programem" Nejdříve to zkus udělat přes "Ovládací panely", "Možnosti složky" a "Typy souboru". Pokud je to balast a nedá se, pak vlez do "nouzového režimu" a v něm dej v CMD a REGEDIT ... najdi klíč .xls - Zkus jej přepsat. Pokud ani toto nepomůže (program si kontroluje, zda mu někdo nezměnil asociaci) pak je to na Tobě ... musíš se rozhodnout, zda program nebo Excel. Docela se ale divím, že v Options programu není možnost tuto kontrolu, nebo asociaci změnit či odstranit. Pak je to balast. R.

Nevím co Ti to přesně ukazuje, ale Excel má v Možnostech-karta Obecné - Výchozí umístění souborů. Tam se standardně ukládají soubory. Default pro OFFI jsou to Dokumenty. Něco jiného je např. soubor z e-mailu, kdy se otevře v TEMPu. Další případ jsou síťové disky nebo sharepointy, kdy máš jen čtení, pak se nabízí Uložit Jako. Pokud Ti to normálně funguje (to nepíšeš) pak je problém s otvíráním přes zástupce. Pak se podívej na umístění v zástupci a nebo s tím zkus polaborovat. Poslední, ale 100% možností je vytvořit zástupce do kterého nenarveš stupidně jméno xls souboru ale zadáš spuštění které má excel provést i jak se má nastavit. Je to nová instance. Podrobnosti jsou v nápovědě někde kolem spouštění excelu.
Může to vypadat pak nějak podobně:
"C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE" "C:\Documents and Settings\usr\Dokumenty\SKLAD.xls" /p "C:\GTable"

Když to požaduješ od usera tak používej konvenci yyyy-mm-dd a tu si ošetři a nebo cokoliv co Ti převede funkce CDate na typ datum. Až máš správný vstup od usera pokračuj dále ve zpracování, zápisu apod. Zkoušej dále co Ti provedou řádky Debug.Print ">" & Format(CDate("2.1.2011"), "0")
Range("A1").FormulaR1C1 = "="">" & Format(CDate("2.1.2011"), "0") & """"
R.

Zkus se podívat na http://www.wall.cz/index.php?m=topic&id=5736. AdvancedFilter funguje stejně. Datum musí být celé číslo. R.

Sub EXPORTjournal()

Dim s As String
s = InputBox("Něco", "Něco jiného", "export.csv")
If StrComp(s, "") = 0 Then Exit Sub

Application.DisplayAlerts = False
Set myRng = ActiveWindow.RangeSelection
Set newbook = Workbooks.Add
With newbook
.Title = "export"
.SaveAs FileName:="C:\Documents and Settings\tdvorak\Desktop\Journals\WF Journals\" & s, FileFormat:=xlCSV
End With

myRng.Copy
Windows(s).Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Workbooks(s).Save
Workbooks(s).Close
Application.DisplayAlerts = True
MsgBox ("Journal successfully " & s)
End Sub
Je to napsané od ruky ... když tak si to dolaď. R.

O technologii Excelu se občas diskutuje, že je postaven na SQL miniservru. Některé funkce jsou vyloženě zabalené jednoduché dotazy přes oblasti dat. Z toho vychází i DSUMA apod. Myslím že default je pro výběr textových položek je asi LIKE "var_xyz". Je pak zřejmé, že můžeš kombinovat podobné zápisy. Například DATUM OD-DO je pro začátečníky neřešitelný dokud nezadají dva stejné sloupce kriteria a např =">42800" a do druhého ="<42850". Pak je vše v pořádku. Když se nad tím zamyslíš, tak je to vlastně velmi dobré, že tento zápis tak funguje. Jednoduše se převede do SQL konvence a výsledek je jednoznačný a hlavně rychlý. Pokud např. začneš převádět datumy do nějakého formátu pak smůla. (="<2011-01-01") R.

H7 : ="=SB_Mini"

Musel jsem řešit něco podobného a udělal jsem to přes toto makro. Pokud se hlásíš k PC, pak Ti to možná nepomůže. Pokud se hlásíš do domény, pak je to možné řešení. U nás ve fa máme na počátku písmeno "n" a ostatní části fa jiné písmeno.
Public Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
'+------------------------------------------------------------------------------'
Function loc_domain_name() As String
'-------------------------------------------------------------------------------'
Dim s As String * 255
Dim t As String
Dim l As Long
t = ""
On Error Resume Next
l = GetUserName(s, 255)
l = InStr(1, s, Chr(0))
If l > 0 Then
t = Left(s, l - 1)
Else
t = s
End If
On Error GoTo 0
loc_domain_name = UCase(Trim(t))
End Function
Ověření prvního písmena Ti pak řeší jestli Excelovský sešit je otevřen v doméně Tvé fa, nebo někde jinde. Stejně tak podobným způsobem můžeš řešit podle IP adresy, jména PC a nebo si navolit seznam PC, seznam jmen, které mají vidět určité listy. Ostatní xlSheetVeryHidden jak píše Jeza. Doporučuji pak mít jen jednu verzi na sdíleném disku (prostředí) a v ní přímo editovat, kdo co má vidět. Samozřejmostí je logické ošefovani startu a ukončení app. R.

můžeš to uložit v OF2003 ?

Běžně se na práci se souborovým systémem používá ve VBA object Scripting.FileSystemObject. Pomocí něj můžeš pracovat s disky, adresáři a soubory. Jedná se jen o základní funkce. TEMPy můžeš smazat např tímto makrem. R.
Function SmazTempy()
Dim TFileObject As Object
Dim TFolder As Object
Dim TFile As Object
Dim F As Object
Dim TPath As String
Dim s As String

TPath = "c:\MujAdresar\"
Set TFileObject = CreateObject("Scripting.FileSystemObject")
Set TFolder = TFileObject.GetFolder(TPath)
Set TFile = TFolder.Files

For Each F In TFile
If (StrComp(Mid(F.Name, 1, 3), "TMP") = 0) Then
Debug.Print F.Name
TFileObject.deletefile TPath & F.Name, True
End If
Next
Set TFile = Nothing
Set TFolder = Nothing
Set TFileObject = Nothing
End Function

Ve formuláři můžeš vytvořit tlačítko, kterým nahraješ data do DB ... je jedno jak se jmenuje, jen jestli ji Excel vidí. Nebo je řešení vynutit otevření se spuštěním makra a při uzavření sešitu do BeforeClose(???) vložit kod, který nahraje požadované inf na web bez toho, zda user chce nebo ne. Samozřejmě může vlákno sestřelit, přes TaskManager, ale to snad nebude zapotřebí. Pokud ano, můžeš to udělat dvojím zápisem do DB. Prvním při otevření ... user začal makat ..., a druhým při uzavření ... uses skončil. Pokud se nesejdou např. uniqklíče, pak user sestřelil Excel, ve snaze vyhnout se konečnému zápisu. ... atd.
Co se týče zápisu, tak se podívej do nápovědy VBA Accessu, tam je kodu na práci s DB habakuk. Je jen jedna zrada. Standardně není zapnutý v Excelu doplněk "Microsoft ActiveX Data Objects 2.x Library" musíš si jej nejdříve zapnout !!!!!!!!!!!!!!!!!!!!!!
R.

Pokud můžeš data z webu ovlivnit (děláš si stranu servru sám) pak můžeš využít běžný QueryTablesPrivate Sub loc_data_b(mesic As String)
With Worksheets(cWorkDBSheet)
.Activate
Cells.Delete
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://mujweb.com/reporty/index.php?id=5&mesic=" & mesic, Destination:=Range("A1"))
.Name = "DispB"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End With
End Sub

Postup je zcela jednoduchý. Do URL adresy vložíš co potřebuješ. Pokud zadáváš datum přes prvek <input type="text" name="txt_dest"> pak nevím, zda je to z Excelu možné. Pokud to napsal amatér, pak by bylo řešením možná zkusit hodnotu z name vložit do URL. R.


Strana:  1 ... « předchozí  3 4 5 6 7 8 9 10 11   další » ... 15

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