Keresés

Részletes keresés

SQLkerdes Creative Commons License 2011.04.21 0 0 14680

Mielőtt átmásolod az oszlopot, az eredeti (F) oszlop tartalmát alakítsd át =F$3+$A4 stílisra (minden sorban, kivéve természetesen az első adatot (16:00)).

 

Ezután másold át és működni fog a képlet.

Előzmény: 'Slice' (14677)
'Slice' Creative Commons License 2011.04.21 0 0 14679

átmásolom 3-al jobbra a  16:00-ás oszlopott és átírom 16:15-re a kezdő értéket

csak épp a következő számokat már a megállók nevéből próbálja kinyerni, ami nem megy neki.

Előzmény: SQLkerdes (14678)
SQLkerdes Creative Commons License 2011.04.21 0 0 14678

A nem másolja oldalra a számokat részt nem értem...

Nem azt csinálod, hogy a 16:00-t átírod 16:15-re, hanem beszúrsz egy új oszlopot?  Hova szúrod be azt az új oszlopot (F mellé balról, jobbról?).

Valszeg az lesz a gondod, hogy a beszúrt új oszlop elviszi a relatív képleteidet rossz irányba.

Előzmény: 'Slice' (14677)
'Slice' Creative Commons License 2011.04.21 0 0 14677

No ismét egy menetrendi kérdés.

Megcsináltam hogy az egyik oszlop a menetidőket számolva kijön az alábbi képlettel:

 

=F$3+A4

 

A oszlop                              F oszlop

 

          Moszkva tér               16:00

0:02   Városmajor                16:02

0:05   Budagyöngye             16:05   stb

 

Viszont ha egy 16:15-ös indulást vennék fel akkor nem másolja oldalra a számokat mindig érték hibát kapok, mert valahogy a megállót akarja hozzárendelni az értékhez amit nem értelmez.   Hogy tudom odébbvarázsolni valahogy hogy mindig az A oszlop értékével számoljon?

Törölt nick Creative Commons License 2011.04.21 0 0 14676

Az email címemet megtalálod az adatlapomon.

Próbáld ki, amit SQLkerdes javasolt, aztán ha még mindig nem megy, küldd el.

Előzmény: pilota-kex (14673)
SQLkerdes Creative Commons License 2011.04.20 0 0 14675

Nem változtattam semmit, csak az event-et Calculate-ra (-re?).

Közben rájöttem, hogy nem kell volatile függvény, mert a figyelendő terület egyébként is függvény, szóval minden frissítéskor újraszámolódik és izgatja a Calculate event-et.

 

Private Sub Worksheet_Calculate()
    Dim wsLog As Worksheet, rLog As Range
    Dim rQuery As Range, c As Range, Hit As Range
    
    Set wsLog = Worksheets("Munka5")
    Set rQuery = Range("B1", Range("B" & Rows.Count).End(xlUp))
    For Each c In rQuery
        Set rLog = wsLog.Range("B" & Rows.Count).End(xlUp).Offset(1)
        Set Hit = wsLog.Range("B:B").Find(what:=c.Value, after:=rLog, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious)
        If Hit Is Nothing Then
            rLog.Offset(, -1).Resize(, 3).Value = c.Offset(, -1).Resize(, 3).Value
            rLog.Offset(, 2) = Now
        ElseIf Hit.Offset(, 1) <> c.Offset(, 1) Then
            rLog.Offset(, -1).Resize(, 3).Value = c.Offset(, -1).Resize(, 3).Value
            rLog.Offset(, 2) = Now
        End If
    Next
End Sub

Előzmény: pilota-kex (14673)
SQLkerdes Creative Commons License 2011.04.20 0 0 14674

Esetleg a worksheet3-ra lehetne rakni egy volatile függvényt (=NOW), és a macro-t átalakítani Worksheet_Calculate eventre átalakítani.

 

Ha a weblekérdezés frissül, újraszámolódik a NOW és már ugrik is a Calculate event, hogy csinálja amit csinálni kell.

Előzmény: pilota-kex (14673)
pilota-kex Creative Commons License 2011.04.20 0 0 14673

Egyszerűbb lenne, kivéve úgy, hogy az az L betű függvény eredménye. Mert akkor megint ott vagyunk, hogy mitől lesz automatikus. Az általad leírt viselkedés a SelectionChange eseményre hajaz. Biztos, hogy a kódot a weblekérdezést tartalmazó munkalap kódlapjára tetted be, és nem módosítottad? Merthogy működnie kellene...

Nincs kedved átküldeni a táblázatot email-ben?

 

válaszok:

-az "L" karakter sajnos logikai fügvény eredménye

-gőzöm sincs mitől lehetne automatikus.. nem tudom van e olyan parancs, ami a kódba írva arra adna utasítást, hogy az újrainduljon, újrafusson weblekérdezés esetén, vagy időzítve kétpercenként, vagy ilyesmi.

-Igen igen, a kódot a munka3 worksheetre tettem, amire az adatok befutnak. Ezért működik, ahogy működik.

-Módosítottam: a kódban egy értéket átneveztem (B1-ről B2-re), hogy a fejlécet ne loggolja, ez tuti irreleváns. :)

-mi az emailcimed?

Előzmény: Törölt nick (14666)
Xooo Creative Commons License 2011.04.20 0 0 14672

Nem számít. Fél óra, ütök oda szóközöket. Így is köszönöm.

Előzmény: Xooo (14671)
Xooo Creative Commons License 2011.04.20 0 0 14671

Nem jó :(

 

Ezt a doksit még mindig nem találja meg pl, csak ha egybe írom xxxxxx a kódot:  2009 A3 ülés 940003.doc

Előzmény: Törölt nick (14670)
Törölt nick Creative Commons License 2011.04.20 0 0 14670

Ja, és ehhez mindig "xxx xxx" formátumban írd be, mert azt keresi először, aztán ha nincs ilyen fájl, akkor kiveszi belőle a szóközt, és újra keresi szóköz nélkül.

Előzmény: Törölt nick (14669)
Törölt nick Creative Commons License 2011.04.20 0 0 14669

Lehet. Valami ilyesmi (nem teszteltem).

 

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim FN As String, myPath As String, ext As String
    Dim wa As Object
    
    If Target.Address <> "$A$1" Then Exit Sub
    myPath = "C:itt_vannak_a_fájlok_mappa"
    FN = Dir(myPath & "*" & Range("A1").Value & "*.*", vbNormal)
    If FN = "" Then

        FN = Dir(myPath & "*" & Replace(Range("A1").Value, " ", "") & "*.*", vbNormal)

        If FN = "" Then Exit Sub

    End If
    ext = Mid(FN, InStrRev(FN, ".")+1)
    If ext = "doc" Then
        Set wa = CreateObject("word.Application")
        wa.documents.Open myPath & FN
        wa.Visible = True
    ElseIf ext = "xls" Then
        Workbooks.Open myPath & FN
    End If
End Sub

Előzmény: Xooo (14667)
Xooo Creative Commons License 2011.04.20 0 0 14668

Nem jól írtam....

 

ha a file név elején van xxx xxx akkor megnyitja, így is xxx xxx és xxxxxx is. Ha a file név végén van pl abcdefg xxxxxx.doc és így írom be xxxxxx akkor megnyitja, ha xxx xxx akkor nem.

Előzmény: Xooo (14667)
Xooo Creative Commons License 2011.04.20 0 0 14667

Jimmy kérlek segíts rajtam még egy apróságban :) Vannak olyan file-ok amelyek így néznek ki 940 084 box abcdefg.doc és vannak olyanok amelyek így: Box abcdefg 940084.doc, tehát a kódban van egy szóköz. Erre van megoldás, vagy az összes file-t nevezgessem át szóköz nélkülire ? Ugyanis amikor beírja a user a táblázatba a kódot, nem tudja hogy szóközzel van anélkül van-e mentve a doksi. Viszont a táblázatban szóközzel szokták írni, amikor kinyomtatják :D

 

Tehát lehet olyat csinálni, hogy ha szóközzel írja be a kódot a táblázatba xxx xxx akkor azokban is keressen amelyeknek ilyen a formátuma ? xxxxxx

 

Ne haragudj a sok zaklatásért :)

Előzmény: Törölt nick (14663)
Törölt nick Creative Commons License 2011.04.20 0 0 14666

Egyszerűbb lenne, kivéve úgy, hogy az az L betű függvény eredménye. Mert akkor megint ott vagyunk, hogy mitől lesz automatikus. Az általad leírt viselkedés a SelectionChange eseményre hajaz. Biztos, hogy a kódot a weblekérdezést tartalmazó munkalap kódlapjára tetted be, és nem módosítottad? Merthogy működnie kellene...

Nincs kedved átküldeni a táblázatot email-ben?

Előzmény: pilota-kex (14665)
pilota-kex Creative Commons License 2011.04.20 0 0 14665

mégsem jó, nem teljesen :(

 

lehet hogy finomhangolás kérdése, de ez:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim wsLog As Worksheet, rLog As Range
    Dim rQuery As Range, c As Range, Hit As Range
    
    Set wsLog = Worksheets("Munka5")
    Set rQuery = Range("B1", Range("B" & Rows.Count).End(xlUp))
    For Each c In rQuery
        Set rLog = wsLog.Range("B" & Rows.Count).End(xlUp).Offset(1)
        Set Hit = wsLog.Range("B:B").Find(what:=c.Value, after:=rLog, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious)
        If Hit Is Nothing Then
            rLog.Offset(, -1).Resize(, 3).Value = c.Offset(, -1).Resize(, 3).Value
            rLog.Offset(, 2) = Now
        ElseIf Hit.Offset(, 1) <> c.Offset(, 1) Then
            rLog.Offset(, -1).Resize(, 3).Value = c.Offset(, -1).Resize(, 3).Value
            rLog.Offset(, 2) = Now
        End If
    Next
End Sub

 

MOST csak akkor loggol, ha "rákényszerítem", úgyértem, ha rámegyek a munka3-ra majd a munka5-re váltok, akkor azt az állapotot loggolja, de ha elmegyek a városba dolgomat intézni, és nem váltogatom a lapokat oda-vissza, akkor a munka3 ezen kódja "nem dolgozik" nem loggol automatikusan, csakis a váltásnál.(pedig a munkafüzet mindig aktív és online)

_____________________________________________________________________

Jimmy The Hand: minden eddigitől elvonatkoztatva: nem lenne egyszerübb, ha az egész loggolásnak EGYETLEN feltétel szerint kellene történnie?? semmi összehasonlítgatás meg efféle. CSAK annyi, hogy a weblekérdezéses munka3 nevű lapon, ha a "D" oszlop valamely cellájában a kód találna egy "L" karaktert, akkor csak az adott sor A, B, C oszlopában szereplő értéket (számított értéket!) loggolja csak (idővel együtt).

mert én azt az "L" karaktert logikai fügvényekkel el tudom helyezni a "D" oszlopba.

 

Üdvözlet!

Xooo Creative Commons License 2011.04.20 0 0 14664

Köszi így tökéletesen működik. :) Nagyon köszönöm a segítséget.

Előzmény: Törölt nick (14663)
Törölt nick Creative Commons License 2011.04.20 0 0 14663

Ne egy 3-as modulba tedd, hanem annak a munkalapnak a kódlapjára, amelyiknél azt akarod, hogy az A1 cellába írásra reagáljon.

Előzmény: Xooo (14662)
Xooo Creative Commons License 2011.04.20 0 0 14662

Szia Jimmy !

 

Köszönöm :) A helyzet, hogy ez egy elég aljas excel tábla. Nyomtatási területet, vonalkód címkét készítő makró is van benne, ennek a végére tettem be egy 3-as modulba, csináltam egy TESZT nevű könyvtárat néhány doksival, de valamit elronthatok, mert nem nagyon akar működni. :(

Előzmény: Törölt nick (14659)
Törölt nick Creative Commons License 2011.04.20 0 0 14661

"Tán még annyit fűznék hozzá, hogy az xls leszűkíti a megnyitható file-ok körét, az xls* (xlsm, stb fileok miatt) lehet praktikusabb lenne."

 

Jogos a két pont. De azért megvárom, hogy ténylegesen felmerül-e a kérdés.

Előzmény: SQLkerdes (14655)
aletheia88 Creative Commons License 2011.04.20 0 0 14660

azért köszönöm...

 

üdv

Előzmény: Törölt nick (14659)
Törölt nick Creative Commons License 2011.04.20 0 0 14659

Ötletem éppenséggel volt, de nem tudtam megvalósítani.

Szóval azt próbáltam, hogy makróval indítani az internet explorert, és elküldeni a megadott oldalra, aztán ott lekérdezni az oldalról egy adott objektum értékét. Az objektum nevét ugye az oldalforrásból lehet megállapítani. Hát itt elakadtam. Nem értek a javascripthez, de html-hez se nagyon, és nem tudom, hogy hogyan vannak ezek az értékek megjelenítve.

A nevüket sem találom. Olyat találtam, hogy

<span id="ertek_nyito"> </span>

meg

<span id="hozam_idoszak"> </span>

meg hasonlók, de az

Set object = ie.Document.getElementsByName("hozam_idoszak")

végrehajtása után az object tartalma a nagy semmi.

 

Szóval nem tudom a megoldást.

Előzmény: aletheia88 (14657)
pilota-kex Creative Commons License 2011.04.20 0 0 14658

JTH

!!Tökéletesen!! működik a kódod, nagyon szépen köszönöm, riszpekt (tőlem is)

SQL

neked is köszönet a fáradozásaidért

 

további kellemest! ÜDV nektek!

aletheia88 Creative Commons License 2011.04.20 0 0 14657

Jimmy vlmi ötleted a 14644-re?

gondolkodtam h. esetleg lehetne kezdeni valamit az oldalforrással...

talán makróval...?

 

üdv

Előzmény: Törölt nick (14653)
SQLkerdes Creative Commons License 2011.04.20 0 0 14656

Ha azt mondod, akkor el is hiszem.

Én már nem dolgozom 2003 excelben, de amikor xl2007-ben compatibility mode-ban lementettem file-okat amikben volt COUNTA(H:H) akkor azt mondta, hogy az probléma lehet.

Előzmény: Törölt nick (14653)
SQLkerdes Creative Commons License 2011.04.20 0 0 14655

Wow!

Nekem nem nagyon jutott volna eszembe, hogy a filenevek között keresgéljek, beirattam volna a júzerrel a fileneveket egy temp worksheet-re.

 

Riszpekt!

 

Tán még annyit fűznék hozzá, hogy az xls leszűkíti a megnyitható file-ok körét, az xls* (xlsm, stb fileok miatt) lehet praktikusabb lenne.

De ezt csak irigységből írom...

Előzmény: Törölt nick (14654)
Törölt nick Creative Commons License 2011.04.20 0 0 14654

Ha legalább annyi teljesül, hogy minden fájl nevében benne van a kód, és minden fájl ugyanabban a mappában van, akkor már meg lehet spórolni a manuális felvitelt.

A1-re kihegyezve valami ilyesmi lehet:

 

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim FN As String, myPath As String, ext As String
    Dim wa As Object
    
    If Target.Address <> "$A$1" Then Exit Sub
    myPath = "C:\itt_vannak_a_fájlok_mappa\"
    FN = Dir(myPath & "*" & Range("A1").Value & "*.*", vbNormal)
    If FN = "" Then Exit Sub
    ext = Mid(FN, InStrRev(FN, ".")+1)
    If ext = "doc" Then
        Set wa = CreateObject("word.Application")
        wa.documents.Open myPath & FN
        wa.Visible = True
    ElseIf ext = "xls" Then
        Workbooks.Open myPath & FN
    End If
End Sub

 

 

Előzmény: Xooo (14650)
Törölt nick Creative Commons License 2011.04.20 0 0 14653

Működik 2003-ban, kipróbáltam.

A SOR(H:H) viszont nem működik tömbképleten, azért adtam neki Hvalaminagyonnagyszám-ot

;)

Előzmény: SQLkerdes (14651)
aletheia88 Creative Commons License 2011.04.20 0 0 14652

kösz

 

kajálja az első képletet...

 

üdv

 

Előzmény: Törölt nick (14649)
SQLkerdes Creative Commons License 2011.04.20 0 0 14651

Asszem, hogy a DARAB2(H:H) dolog csak xl2007-ben és fölötte műxik.  Szóval ha 2003-as exceled van, akkor H1:Hvalaminagyonnagyszám legyen a DARAB2-ben.

Előzmény: Törölt nick (14647)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!