Keresés

Részletes keresés

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)
Xooo Creative Commons License 2011.04.20 0 0 14650

Szia Jimmy !

 

Köszi a választ ! Az az igazság, hogy egyöntetű algoritmust nem lehet ráhúzni a file-okra, hogy értsd, ezek szövetek amiknek van egy kódjuk, de a file neve sokszor ilyen: 935 445 szines bőr jobbos.doc vagy 887 445 szürke anyag.doc. Olyan megoldásra gondolotam mint a HA függvénynél, hogy ha 958 444 van a kódban, akkor nyissa meg a xycvb.doc-ot. Ezt nyilván manuálisan egyszer fel kellene vinnem, hogy melyik kód alapján mit nyisson meg.

 

 

Törölt nick Creative Commons License 2011.04.20 0 0 14649

Kétszer válaszol, ki gyorsan válaszol :)

Előzmény: aletheia88 (14648)
aletheia88 Creative Commons License 2011.04.20 0 0 14648

köszi a gyors választ..

 

már próbálom is...

 

üdv

 

 

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

Ha összefüggő adatoszlopról van szó, ami pl. a H1 cellában kezdődik, akkor:

=OFSZET(H1;DARAB2(H:H)-1;0)

 

Ha nem összefüggő, akkor pl.:

{=OFSZET(H1;MAX(SOR(H1:H65356)*(H1:H65356<>""))-1;0)}

 

 

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

Ha összefüggő adatoszlopról van szó, ami pl. a H1 cellában kezdődik, akkor:

=OFSZET(H1;DARAB2(H:H)-1;0)

 

Ha nem összefüggő, akkor pl.:

{=OFSZET(H1;MAX(SOR(H1:H65356)*(H1:H65356<>""))-1;0)}

 

 

Előzmény: aletheia88 (14645)
aletheia88 Creative Commons License 2011.04.20 0 0 14645

sziasztok!

 

a másik problémámra biztos van megoldás:

 

egy hivatkozást szeretnék - függvénnyel - mellyel egy másik munkafüzet adott oszlopának mindenkori utolsó cellaértékét tudom beilleszteni úgy, hogy az értékek nincsenek sorba rendezve.

ha jól tudom akkor a "hol.van" és "cím" függvényekre van szükség....

 

köszönöm

 

üdv

 

 

aletheia88 Creative Commons License 2011.04.19 0 0 14644

köszönöm a válaszokat.

 

hogy tényleg konkrétan fogalmazzak:

 

http://www.uniqavk.hu/uniqavk_hu/cms/charts/flash/index.jsp 

 

a kérdéses oldal, a lekért adatok pedig:

 

Nyitó érték: 1.0000   Időszaki hozam: 85.3600 % Záró érték: 1.8536   Éves annualizált hozam: 6.4329 %

 

mindent importálni tudok az excelbe, csak éppen az értékeket (számok) nem illeszti a cellákba.

 

ezért gyanakodtam a flash-re...

 

köszönöm

 

 

üdv

 

 

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

14499-ben pont ezt írtam le. Nézd meg.

Előzmény: aletheia88 (14638)
Törölt nick Creative Commons License 2011.04.19 0 0 14642

Ha meg tudod mondani, hogy milyen algoritmussal képezzük a cellába beírt kódból a fájl teljes elérési útvonalát, akkor lehetséges.

A makródban pedig az lehet a hiba, hogy szöveges értékre keresel ("935 911") és közben valószínűleg számot írsz be a cellába.

Előzmény: Xooo (14627)
Törölt nick Creative Commons License 2011.04.19 0 0 14641

Nézd meg a 14626-ot, hátha az segít.

Előzmény: aletheia88 (14638)
Törölt nick Creative Commons License 2011.04.19 0 0 14640

Próbáld ki ezt. Feltételeztem, hogy a B oszlopban vannak az alma, cékla, banán, stb., szóval amivel beazonosítható a nemtudommi, továbbá a C oszlopban van nemtudomminek a nemtudommije, amit figyelni kell. Sajnos e tekintetben eléggé ellentmondásos információk jöttek eddig. Az alapötlet pedig az eddigiektől eltérően az, hogy a már naplózott banánok közül keresem ki az utolsó banánt, és ha ahhoz képest van eltérés, akkor naplózom megint. Így nem kell temp munkalap.


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

Előzmény: pilota-kex (14637)
SQLkerdes Creative Commons License 2011.04.19 0 0 14639

Igazából nem gondolom, hogy segít.

Holnap ha lesz egy kis időm akkor megpróbálom összedobni a kódot, ha addig valaki meg nem előz.

Előzmény: pilota-kex (14637)
aletheia88 Creative Commons License 2011.04.19 0 0 14638

adatimportálás terén elég komoly problémám van:

weblapról szépen elérem a kérdéses oldalt, viszont vagy nem találom a kis nyilat mellyel kijelölhetem az adatokat, vagy az adatokat kijelölöm majd pedig importálom - viszont hiányosan jelennek meg a munkafüzetben. Körbenéztem a különböző fórumokon, de sajna sehol sem találtam megoldást. Elképzelhető hogy ezt a fajta dolgot nem tudja kezelni az excel...

árfolyamokra lenne szükségem, amit a táblázat megnyitása után azonnal tudok - mármint az értékeket - frissiteni.

A problémát igazából az jelentheti, hogy ugyanazon internetes oldalcimhez több megjeleníthető adathalmaz (flash?) tartozik.

 

biztos érthetetlenül fogalamztam, elnézést érte. Ha valaki találkozott hasonló szituval kérem adjon tanácsot.

 

köszönöm előre is....

 

üdv

pilota-kex Creative Commons License 2011.04.19 0 0 14637
helyesbitek! ha az adott sor "D" oszlopaban lenne az az "L" karakter..
SQLkerdes.. neked fizetnek azert hogy mas helyett gondolkodj? :)) ÜDV
pilota-kex Creative Commons License 2011.04.19 0 0 14636

a B oszlopban csak akkor van alma nevű elem, ha a weblekérdezés ad alma nevű elemet, amúgy nincs.

 

leegyszerűsítené a dolgot, ha mondjuk ÉN DIREKT egy feltételhez kötném, mit LOGGOLJON????

például ilyesmi: a munka3 worksheetben , ha az adott sor "C" oszlopban lenne egy "L" karakter, akkor loggolja a sor 3 értékét? (időkijelzéssel) a munka5-re.

(ezt az L karaktert én kirakom egy függvénnyel)

Ez egyszerüsítené? mert ezt meg tudom oldani.

 :)

Előzmény: SQLkerdes (14635)

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