Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  22 23 24 25 26 27 28 29 30   další » ... 53

Zas tak složitý to není :-), něco jsem tam teda umazal aby to fungovalo správně, ale předpokládám že to ničemu nevadí :-) - nějaké vzorečky pro číslování v listech příjem a výdej kolem 60. řádku.

Nevím teda jestli číslování na těch to listech má být přírustkové, nebo jestli se má jen převzít pořadové číslo z listu sklad (tak to momentálně je).

S pozdravem
M@

normálně by mělo fungovat něco jako
List2.Range("F7") = ComboBox1.Text
List2.Range("H7") = ComboBox2.Text
List2.Range("J7") = TextBox1.Text
M@

ten refresh může být i součástí ukládacího makra.
ListX.Range("NAZEV").QueryTable.Refresh BackgroundQuery:=False

soubor view -> uložit jako -> v dialogu vyrat Nástroje -> Obecné možnosti -> Doporučeno pouze pro čtení, případně zamknout, ale zkoušet jsem nezkoušel jestli pomůže, je to jen tip.

do souboru view do ThisWorkbook do Workbook_Open vložit Application.DisplayAlerts = False
před vypnutím zas zapnout.

M@

Pokud předem víš kam, tak to lze, akorát už trochu složitěji pomocí select case, třeba podle tagu, když tag = něco, tak zapiš hodnotu daného textboxu do listu n1 a buňky xy1, listu n2 a buňky xy2 ...

Bude-li to vždy stejné tak by do těch další tabulek šel dát odkaz na buňku této jediné vyplňované tabulky, ale to už záleží na každém jak to použije :-)

M@

viz. smyčka v příspěvku ... http://wall.cz/index.php?m=topic&id=7782
akorát místo textboxu budeš kontolovat label a jeho caption.

M@

Každý z těch Textboxů má ve vlastnostech (Properties) ve štítku (Tag) adresu buňky do níž se hodnota z něj má zapsat.
Smyčka For Each Control In Me.Controls
If Left(Control.Name, 7) = "TextBox" Then Sheets("Tabulka").Range(Control.Tag) = Control.Text
Next

při stisknutí tlačítka projede všechny prvky formuláře a u těch jejichž název začíná TextBox koukne do tagu a pak do buňky listu "Tabulka" do dané buňky (dle toho tagu) zapíše hodnotu daného Textboxu.

M@

Příloha.

M@

Když vezmu 2003, tak jsou tady 2 sady:
- Ovládací prvky
- Formuláře
Ovládací prvky jsou vázané k listu, nicméně i odtud se lze odkázat na proceduru v mdulu:
Private Sub CommandButton1_Click()
Module1.pok
End Sub

Formuláře - tam se makro přiřazuje a je úplně jedno kde se procedura nachází (v modulu, v listu, či třeba v úplně jiném souboru).

Z tohoto pohledu je lepší používat tlačítko sady Formuláře.

Nevím jestli to nevysvětluju moc blbě :-)
M@

Problém bude asi v tom v tom že tlačítko jako objekt se vztahuje ke svému listu a když tam kódem přepínáš na jiný list, tak to asi bude ono, co se mu nelíbí.
Co by mohlo jít, je že ten samotný kód budeš mít v modulu a tlačítko jako objekt se ti odkáže na kód v modulu.
Osobně používám tlačítka jako Activex (to první).

Oblast tisku alespoň u českých 2003 vytváří pojmenovanou oblast "Oblast_tisku", kterou stačí smazat:
List13.Names("Oblast_tisku").Delete

M@

A pro ty z nás kdo nemají office 2007 či novější, tam pomůže jednoduchá makro funkce :-).

M@

Trochu jiný pokus :-)

M@

Excel 2003
Data -> XML -> Importovat a pak zadat tu adresu.

Pomocí záznamu makra:
Dim promenna As String
promenna = "27074358"
ActiveWorkbook.XmlImport URL:="http://wwwinfo.mfcr.cz/cgi-bin/ares/darv_std.cgi?ico=" & promenna, ImportMap:=Nothing, Overwrite:=True, Destination:=Range("$A$1")


M@

Já myslím, že co se excelu týče, tak je nejvodnější :-), jediné co asi nechceš je mít soubor plný vzorců což by ho do budoucna zpomalovalo a tak pokud ho nechceš mít interaktivní aby se vše měnilo samo, tak stačí výsledek funkce Svyhledat zapsat jako hodnotu, buď zkopírováním oblasti a pak vložit "jako hodnoty", nebo si rovnou nechat hodnoty dosadit makrem:
Public Sub dopln()
Application.ScreenUpdating = False
On Error Resume Next
For rd = 2 To List1.UsedRange.Rows.Count
List1.Cells(rd, 3) = ""
List1.Cells(rd, 4) = ""
List1.Cells(rd, 3) = Application.WorksheetFunction.VLookup(List1.Cells(rd, 1), List2.Range("A:C"), 2, False)
List1.Cells(rd, 4) = Application.WorksheetFunction.VLookup(List1.Cells(rd, 1), List2.Range("A:C"), 3, False)
Next
Application.ScreenUpdating = True
End Sub


M@

že by to novější Excel neuměl?

Tak zkus původní část kódu:
With Application.FileSearch
.NewSearch
.LookIn = File_Path
.Filename = "*.ref"
.SearchSubFolders = False
.Execute
For Each soubor In .FoundFiles
Importdat (soubor)
Next
End With


nahradit tímto:
soubor = Dir$(File_Path & "\*.ref")
Dim souboryt As String

Do While soubor <> ""
If souboryt = "" Then souboryt = soubor Else souboryt = souboryt & "|" & soubor
soubor = Dir$
Loop

For Each oddil In Split(souboryt, "|")
Importdat (File_Path & "\" & oddil)
Next


M@

tak ještě jeden pokus

M@


Strana:  1 ... « předchozí  22 23 24 25 26 27 28 29 30   další » ... 53

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

Týden v roce

Petr92 • 16.7. 15:34

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56

špatný výpočet ze zisku - příčina?

Jakoby • 12.7. 12:35

Řazení podle času v kategoriích

Marekh • 12.7. 9:55

Porovnávací Tabulka

Jess • 8.7. 20:49

Vzorec pro zkopírování obsahu buňky.

veny • 6.7. 8:28