< návrat zpět

MS Excel


Téma: soucet z ruznych listu rss

Zaslal/a 13.1.2011 5:31

Zdravim vubec me nenapada jak jednoduse udelat to co potrebuju:

Mám tabulku s hodně listama ve sloupci A je datum, ve sloupci E 4-5 místný číslo. Na jednom listu chci udelat funkci ze do jedny bunky dam pozadovany datum, do druhy cislo. Melo by mi to vyhledat kolikrat tam ten dany datum to cislo je, ze vsech listu. Fakt vubec netusim jak na to 7

Zaslat odpověď >

Strana:  1 2   další »
#003741
avatar
Toto to snad zvládne pozor jak máš datumy to je velmi nebezpečný typ pro srovnávání:

Sub Makro1()

'
Dim Message, Title, Default, MyValue, MyDate
Dim c As Object
Dim Počet As Integer

Počet = 0
Message = "Zadej vyhledávané datum "
Title = "Vyhledávání 5místných čísel dle datumu"
Default = Format(Now, "dd.mm.yyyy")
On Error Resume Next
Do
MyDate = CDate(InputBox(Message, Title, Default))
Loop While Not Err = 0
Message = "Zadej pětimístné číslo"
Default = 12345
Do
MyValue = InputBox(Message, Title, Default)
Loop While Not Len(MyValue) = 5
For Each List In Sheets
With List
With .Range("E1", .Cells(.Rows.Count, "E").End(3))
b = .Address
Set c = .Find(MyValue, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
firstAddress = c.Address
Do
If CLng(c.Offset(0, -4)) = CLng(MyDate) Then Počet = Počet + 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End With
Next List
Message = "Dne: " & MyDate & " bylo " & Počet & " případů čísla " & MyValue
MsgBox (Message)
End Sub

citovat
icon #003746
Poki
Myslim,ze by to slo resit i vzorcem, otazka ovsem je, kolik tech listu mate, protoze by se musely vsechny zadat do vzorce...

Vzdy se vyplati misto makra pouzit vzorec, JESTLI JE TO OVSEM MOZNE 7citovat
#003755
avatar
to tvoje makro je zacyklovany a nejde vypnout a nic nedela, datum je ve formatu 14.1.2011, cislo muze byt 4 i 5mistny

Pokusil jsem se o upravu v graf. podani

Private Sub CommandButton1_Click()

Dim MyValue, MyDate
Dim c As Object
Dim Počet As Integer

Počet = 0
MyDate = TextBox1.Text
MyValue = TextBox2.Text
On Error Resume Next
For Each List In Sheets
With List
With .Range("E1", .Cells(.Rows.Count, "E").End(3))
b = .Address
Set c = .Find(MyValue, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
firstAddress = c.Address
Do
If CLng(c.Offset(0, -4)) = CLng(MyDate) Then Počet = Počet + 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End With
Next List
Label3.Caption = Počet
End Subcitovat
#003756
avatar
ale pocita mi to vzdy jen 53 nic jinyho 3citovat
#003757
avatar
tak uz je to udelany stacilo dodelat

MyDate = CDate(TextBox1.Text)

diky moc 4citovat
#003758
avatar
jeste preci jenom jedna otazka - jak vyvolam VB jednoduse primo z tabulky?

Je to v editor jazyku VB

Forms/UserForm1 dekan 4citovat
#003759
avatar
Takze jsem pridal macro do modulu a do nej:

UserForm1.Show

Pak sem na list pridal tlacitko priradil macro + udelal text. popisek a uz to facha komplet. Dekuji 5 7citovat
#003784
avatar
Tak zase ja - jak upravim ten kod co jsem psal aby by to jen zkontrolovalo ze ve sloupci E prostě něco je(neni prazdne)? Jde mi o to ze bych misto toho predlouhlyho vzorce kam bych musel pri kazdym novym listu dopisovat dalsi cast udelal tohle do jednoho okynka - bud by bylo najdi kolikrat je dany cislo v ten danej datum (to uz funguje) a kolikrat je na vsech listech datum + nejaky 4az5mistny cislo ve sloupci E 2citovat
#003786
avatar
V původním makru byl test na zadání data, pokud ho nezadáš ve správném formátu nic se nenajte, tys to opravil ve svém kodu:
MyDate = CDate(TextBox1.Text)
a test na délku zadaného čísla na pět znaků
Loop While Not Len(MyValue) = 5
pokud to opravíš na
Loop While Not (Len(MyValue) = 5 Or Len(MyValue) = 4)
tak bude cyklus testovat 5 a 4 znaky. Nevím, co jsi zadával ty když píšeš:
"to tvoje makro je zacyklovany a nejde vypnout a nic nedela" muselo vyždy čekat na tvé zadání a vypsovat, co chce. Jinak máme každý jiný VBA.
Já to dělal jen ilustrativně lze to programatorsky vyšperkovat.citovat
#003827
avatar
kua uz popaty tady pisu znova text protoze nekolikrat sem zapomel napsat kontrolni text, pak sem ho dal spatne ja uz fakt na to nemam nerva napise to chybu a muj text se smaze 3

Roman

dela to to ze zapnu objevi se tabulka s dnesnim datumem a kdyz dam ok problikne okno a je tam to samy - at dam do vstupniho pole cokoliv. Pri vykrizkovani obet blik pri storno opet klik takze sem musel pres spravce uloh natvrdo ukoncit celej excel..

Jinak ja uz to mam udelany ze to funguje me jde jen o to upravit to aby to spocitalo urcity datum a zaroven aby to kontrolovalo ze ve sloupci E neco je -

Set c = .Find(MyValue, LookIn:=xlValues, LookAt:=xlWhole)

tuto upravit aby to nehledalo Myvalue ale proste aby to zkontrolovalo ze v ty bunce neco je ze neni prazdna...

dikcitovat

Strana:  1 2   další »

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