Příspěvky uživatele


< návrat zpět

Strana:  « předchozí  1 2 3 4   další »

To : Elninoslov

Díky za pokus avšak asi došlo z mé strany k ne úplně přesnému vysvětlení.Takže :
Soubor "Projek Servis bude po stisknutí tlačítka "filtruj" hledat v souborech Obchod CZ a obchod PL podle odpovídajícího filtrovacího stringu tj.měsíc fakturace.V případě shody se z obchod CZ vybere řádek shody sloupce A a C a v obchod PL jsou dva listy, kde se provede to same, a tyto řádky se propíšou pod sebe do souboru "Projekt servis.

Po stisknutí exportuj se teprve uloží jako nový list s nazvem filtrovacího stringu a vymažou tlačítka.

Je to OK ?

No oano to tak asi bude, jen nevím, jak ve VB scriptu zadám "pouze vybrané buňky".

Našel jsem toto :

Sub ExcelFollowHyperlink()

Dim rngOblast As Range
Dim rngBunka As Range
Dim strAdresat As String
Dim strPredmet As String
Dim strObsah As String
Dim strRet As String

'náhrada vbLf
Const cstrLf As String = "%0A"

'adresát
strAdresat = "nekdo@nekde.cz"

'předmět
strPredmet = "Výpis z listu"

'zdroj obsahu
Set rngOblast = Range("rngObsah")

'hlavička obsahu
strObsah = rngOblast.Parent.Name & cstrLf

'načtení adres a obsahů jednotlivých buněk oblasti
For Each rngBunka In rngOblast
strObsah = strObsah & cstrLf & rngBunka.Address(0, 0) & ": " & _
rngBunka.Text
Next rngBunka

'sestavení řetězce pro metodu FollowHyperlink
strRet = "mailto:" & strAdresat & "?"
'předmět
strRet = strRet & "subject=" & strPredmet & "&"
'obsah
strRet = strRet & "body=" & strObsah

'odeslání e-mailu
ActiveWorkbook.FollowHyperlink (strRet)

'simulované potvrzení dialogu (Odeslat, ALT+A)
'Microsoft Outlook 2010 CZ
Application.Wait (Now + TimeValue("0:00:05"))
SendKeys "%a", True

End Sub

Ale nevím, jak tuto rutinu spojit s tlačítkem a jak změnit pouze vybrané buňky...

Dobrý den,

existuje možnost jak odeslat pomocí tlačítka "odešli" pouze text zvýrazněných (vybraných) buněk ?
Jde o to, že to může být kdekoliv v sešitu(nepravidelně)

to : elninoslov
1. Soubory, ze kteých se mají číst data jsou dva, v tom druhém to bude ze dvou listů.
2. Ne, tento počet bude stejný
3. Adresář bude vždy na stejném místě
4. V prvním souboru je pouze jeden list, v tom druhém dva, maximálně 3
5. Názvy listů jsou stejné a budou stejné
6. Podle zadaného filtru,tzn měsíc fakturace se vyčtou data ze všech listů, které odpovídají fakturačnímu měsíci. Tzn. že pokud si zadám fakturaci za 03.2016 tak z těchto dvou souborů a třech listů se mi vyčtou data z buněk A a C a zkopírují se do "Projekt servis pod sebe do B a C
7. Pouze text ? (nevím přesně co myslíte)
8. Pouze textové hodnoty
9. sloupce už zůstanou tak jak jsou, měnit už se nebudou
10. Těch počtů si nevšímejte, to jsem jen experimentoval :-)

nemám radši zavolat a vysvětlit po telefonu ?
Asi by to bylo nejrychlejší...... :-)

Děkuji moc za pokus a informaci, bohužel nám IT nedovolí istalovat MS Query. Takže pokud to bude možné pouze pomocí VBA kódu, bude to nejlepší.

Dobrý den, Potřeboval bych pomoci s řešením filtrování ve vice souborech. Všechny jsou uloženy ve stejném adresáři.
"Projekt servis" bude po stisknutí "Filtruj"hledat v souborech Obchod CZ a Obchod PL řádky, které odpovídají vyhledávacímu stringu v "Projekt Servis\Datový list C2 a D2.
Po nalazení se z řádku zkopíruje Hodnota buňky A a C a zapíš se do Projekt servis B a C.
Po doplnění všech údajů a stisknutí tlačítka "Exportuj" se uloží jako nový list v "Projekt Servis podle jména Datový list C2 a D2 bez obou tlačítek (jen zapsané hodnoty)

Budu rád za jakoukoliv pomoc 6

Bohužel to samé, možná bych Ti mohl poslat celý sheet ať si to můžeš vyzkoušet?

Ahoj všichni, potřeboval jsem rozšířit databázi o další pole, avšak po úpravě kódu se mi nechce buňka F posunovat dolu..... Co mám špatně??

Sub saveandsend()

Dim r As Long, Z As Range
Dim posl As Integer, N As String

If MsgBox("JSOU ZADANÉ ÚDAJE V POŘÁDKU ?", vbYesNo, "Odeslání do databáze") = vbYes Then ' okno z upozorněním o vyčištění formuláře

Set Z = Sheets("Databáze").Range("A2:F2") 'První záznam v DB
With Z
On Error Resume Next 'První volný řádek
r = .Resize(Sheets("Databáze").Range("A:A").Rows.Count - .Row + 1).Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row - .Row + 1
On Error GoTo 0

' 1. Poslední záznam jako poslední v DB -------------------------------------
'Z.Offset(r, 0).Value = Sheets("Formulář").Range("B4:F4").Value

' -----------------------------------------------------------------

' 2. Poslední záznam na jako první v DB -------------------------------------
.Resize(r + 1 - IIf(r > 0, 1, 0), .Columns.Count).Offset(1, 0).Value = .Resize(r + 1 - IIf(r > 0, 1, 0), .Columns.Count).Value 'Posun o řádek dolů
.Value = Sheets("Datový list").Range("A26:F26").Value 'Poslední zápis na první řádek DB

End With

With ThisWorkbook 'Pro tento sešit
.Worksheets("Protokol").Copy after:=.Worksheets("Databáze") 'Kopíruj list Protokol
With .Worksheets("Datový list")
N = .Range("A26") & " " & .Range("C26") 'Název pro nový list
End With
With .Worksheets(.Worksheets("Databáze").Index + 1) 'Pro novou kopii
.Name = N 'Nastav název
.Buttons("btnOdeslatUlozit").Delete 'vymaž zkopírované tlačítko
.Range("B2:M44").Validation.Delete 'vymaže seznamy
End With
.Save
End With

Worksheets("Protokol").Activate
Range("D28,D29,D30,K5,B5,B8,C8,D8,G8,L8,B10,F11,F15,H15,L15,F16,H16,L16,F17,H17,L17,F18,H18,L18,F21,H21,L21,F22,H22,L22,F25,H25,L25,F28,H28,L28,F29,H29,L29,F30,H30,L30,B33,F40,H40,L40").Select ' vybere zadanou oblast buněk
Selection.ClearContents ' vymaže data
ThisWorkbook.Save ' uloží

End If
End Sub

Zdravím ,

Potřeboval bych změnit trochu makro, aby se mi to neukládalo jako další list, ale aby se to vyexportovalo jako PDF se jménem jak je uvedeno v kódu do adresáře \\Pracovni\2015
Jde o zvýrazněnou část, všechno ostatní zůstává stejné.

Moc prosím

Dim r As Long, Z As Range
Dim posl As Integer, N As String

If MsgBox("JSOU ZADANÉ ÚDAJE V POŘÁDKU ?", vbYesNo, "Odeslání do databáze") = vbYes Then ' okno z upozorněním o vyčištění formuláře

Set Z = Sheets("Databáze").Range("A2:E2") 'První záznam v DB
With Z
On Error Resume Next 'První volný řádek
r = .Resize(Sheets("Databáze").Range("A:A").Rows.Count - .Row + 1).Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row - .Row + 1
On Error GoTo 0

' 1. Poslední záznam jako poslední v DB -------------------------------------
'Z.Offset(r, 0).Value = Sheets("Formulář").Range("B4:F4").Value

' -----------------------------------------------------------------

' 2. Poslední záznam na jako první v DB -------------------------------------
.Resize(r + 1 - IIf(r > 0, 1, 0), .Columns.Count).Offset(1, 0).Value = .Resize(r + 1 - IIf(r > 0, 1, 0), .Columns.Count).Value 'Posun o řádek dolů
.Value = Sheets("Datový list").Range("A26:E26").Value 'Poslední zápis na první řádek DB

End With

With ThisWorkbook 'Pro tento sešit
.Worksheets("Protokol").Copy after:=.Worksheets("Databáze") 'Kopíruj list Protokol
With .Worksheets("Datový list")
N = .Range("A26") & " " & .Range("C26") 'Název pro nový list
End With
With .Worksheets(.Worksheets("Databáze").Index + 1) 'Pro novou kopii
.Name = N 'Nastav název
.Buttons("btnOdeslatUlozit").Delete 'vymaž zkopírované tlačítko
.Range("B2:M44").Validation.Delete 'vymaže seznamy
End With
.Save
End With

Worksheets("Protokol").Activate
Range("D28,D29,D30,K5,B5,B8,C8,D8,G8,L8,B10,F11,F15,H15,L15,F16,H16,L16,F17,H17,L17,F18,H18,L18,F21,H21,L21,F22,H22,L22,F25,H25,L25,F28,H28,L28,F29,H29,L29,F30,H30,L30,B33,F40,H40,L40").Select ' vybere zadanou oblast buněk
Selection.ClearContents ' vymaže data
ThisWorkbook.Save ' uloží

End If
End Sub

Problém vyřešen.Chybou bylo špatné čtení vzorce datumu, díky eLCHa pomoci se vzorcem datumu!!!! 1

Díky, pomohlo, problém vyřešen

Dobrý den všem
mám tři buňky,B8,C8,D8. V každé buňce ,mám rolovací seznam. B8 - 1-31, C8 - 1-12 , D8 - 2014 - 2019.
Potřeboval bych to zapsat do jedné buňky ale jako validní formát datumu. Tento vzorec nefunguje
= (Protokol!B8&Protokol!C8&Protokol!D8)
Určitě to půjde i jinak, jen nevím jak.... 6

Tak jsem zjistil chybu, ale nevím proč se tak děje.
Data do listu "Databáze" jsou zapisována pomocí makra na základě vyplněného formuláře.Z něj se vyčte Název firmy, datum a druh poruchy atd. a toto se uloží do databáze.To datum tam vidím správně, můžu i podle datumu filtrovat, ale dokud ho znovu nepřepíšu ručně, tak mi to nechce fungovat. Jakmile ho přepíšu ručně, v tom samém formátu, hned mi to připočte. Nějaký nápad ?

Asi ano, ten Váš funguje, tak asi bude něco špatně u mě.
Díky moc za pomoc 1

Pokud zadám =COUNTIF(Databáze!$A:$A;"Internet Mall")
tak mi to najde 2 zápisy.
Pokud ale vyzkouším ten Váš, tak pouze jeden. formát celého sloupce C je podle datumu formát dd.mm.yyyy
A fčíl babo raď :-)


Strana:  « předchozí  1 2 3 4   další »

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