2417
megoldást keresek erre a problémára
  • Delila1
    #2215
    Nálam is úgy jött le, ahogy írtad.
  • lalakov
    #2214
    Biztos? A múlthavi jó fájlok sem nyílnak meg most. (OTP)
  • Delila1
    #2213
    A bank (BB) a hunyó.
    Utoljára szerkesztette: Delila1, 2016.08.02. 06:39:56
  • lalakov
    #2212
    Sziasztok!

    Fura hibát észleltem. A bankomtól minden hónapban le szoktam menteni a számlatörténetet excel-be (.xls). Eddig mindig sikerült, de ebben a hónapban nem megy. Illetve letölti, de csak egy üres, szürke, lapfülek nélküli fájlt tölt be és a fenti parancsok is inaktívak. Sőt, az előző hónapokban lementettek is így töltődnek be, pedig azok eddig jók voltak. Ha elküldöm őket gmail-en, majd megkapom, ott a gmail meg tudja helyesen nyitni.
    Más .xls fájl működik. Előző a hónapban nem volt Office frissítés(tudtommal) ami bekavarhatna. Két itthoni gépen próbáltam, ugyanaz a hiba.
    W7 Pro-t használok és Office 2010-et.

    Köszönöm,
    lalakov
  • Elnora
    #2210
    Végülis azzal oldottam meg, hogy abban a táblában, ahol a keresendő értékek vannak hetenként oszlopokban, ott bevezettem egy segédoszlopot, amire hivatkozik a képletem, és ami fkeres + hol.van fv-ek segítségével mindig felveszi a keresett hét értékeit. ;o)
  • Elnora
    #2209
    Hali!
    Na, kihívások a köbön. :)
    Az alábbi képletem van:
    INDEX('[NK konti vezénylés.xlsx]2016'!$1:$1048576;HOL.VAN($B4;'[NK konti vezénylés.xlsx]2016'!$C:$C;0);HOL.VAN($V$2;'[NK konti vezénylés.xlsx]2016'!$2:$2;0))
    A C:C oszlopban rendszámok vannak, a 2:2 sorban pedig dátumok

    Viszont a C:C oszlop nem fix, mert a 19.héten a B oszlop, a 20. héten a C, a 21. héten a D oszlop, és így tovább.
    Hogy tudom a HOL.VAN függvényben a tábla paramétert dinamikussá tenni úgy, hogy az egész önállóan változzon annak függvényében, hogy egy külső cellában milyen dátumértéket adok meg?
    Tehát igazából a $C:$C rész kellene cserélnem valahogy dinamikusra...

    Valakinek valami tipp?
    Ezt is képlettel, VBA nélkül kellene megoldani....
  • norbre
    #2208
  • Elnora
    #2207
    Köszi. A példám azért jócskán le volt egyszerűsítve, sajnos segédtábla kilőve, egy 80 (rendszámok) x 500-as (dátumok) táblából dolgozom, ahol random össze vannak vonva 2-5 cellák némely sorokban. (ahol az adott rendszám több napig dolgozik egy fuvaron)
    Én adott rendszám + dátum kombináció értékét keresem index + hol.van függvényekkel operálva.
    És itt jött az elő, hogy a több napos túrák esetében csak az első napra ad információt.
    És ráadásul abszolút alapszintű felhasználják a táblát, a lehető legkevesebb karbantartandó dologra van szükségem. XD
    Szóval úgy néz ki, egyszerűen sehogy sem megoldható...
    Köszi mégegyszer minden gondolkodásod! :)
  • norbre
    #2206
    áthidaló ötlet esetleg:
    minta

    .. jobb fölső sarok "..." alatt van a download link
    az első sorban vannak az értékek
    a második csak azt mutatja, hogy melyik az utolsó olyan oszlop ahol érték volt
    a harmadik pedig a 2. sor értékei alapján írja ki az első sorból vett értéket
    Utoljára szerkesztette: norbre, 2016.05.11. 13:39:41
  • Elnora
    #2205
    Én is erre jutottam, csak bíztam, hogy hátha valaki más okosabb nálam.
    VBA-ban biztos voltam, hogy megoldható, csak azt nem szívesen csinálnám. De aztán lehet, hogy ráveszem magam. ;o)
  • norbre
    #2204
    Az egyesített celláknál mindig az első cellából lehet az értéket kinyerni, ez esetben ez olyan mintha az A1 "letakarná" a B1, C1 cellákat amikben amúgy nincs érték.
    Ha jól értem és azt szeretnéd hogy a B1, C1 re hivatkozva is kapj értéket, szerintem az nem fog menni képlettel.

    Egy kis VBA segítség
  • Elnora
    #2203
    Sziasztok!
    Adva van egy vízszintesen egyesített cellám, mondjuk A és C oszlop között az 1. sorban.
    A cella tartalmaz értéket.
    Ha az A1-es cellára hivatkozom, akkor az egyesített cella értékét kapom meg.
    Viszont ha a B1-re, vagy C1-ra (vagy bármi más későbbi oszlopra) hivatkozok, akkor már 0 értéket kapom eredményül.
    No most a problémám, hogy az egyesített cella bármely részére is hivatkozok, én az egyesített cellák tartalmát szeretném megkapni. Erre van valami megoldás-ötletetek?
    Előre is köszönöm!
  • GImre70
    #2202
    Sziasztok. A gyakoriság() nevű függvénnyel kapcsolatban kérdeznék. Van valamilyen szempont/támpont amely szerint a csoport tömb elemeit ki lehet választani? mert nekem sajnos mindig elég nehéz meghatározni az elemeit.
    Előre is köszönöm.
  • Delila1
    #2201
    Szívesen. :)
  • Tyco73
    #2200
    Köszi. Erre gondoltam. Csak ez a For Each megoldás nem jutott eszembe.
  • Delila1
    #2199
    Igazad van, elég, ha a szűrt állomány tagjain megy végig. Az A1 címsor, azért indítom A2-ből.

    Sub Szurt_adatok()
    Dim ter As Range, CV As Range

    Set ter = Range(Range("A2"), Range("A" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible)
    For Each CV In ter
    Range("B" & CV.Row) = 2 * CV
    Next
    End Sub
  • Tyco73
    #2198
    Köszi a gyors választ. Ezek szerint csak úgy lehet megoldani, hogy a ciklus végigfut mind az 1000 soron és nem csak mondjuk azon a 20-on ami látszik.
  • Delila1
    #2197
    Az A1:A1000 tartomány szűrt adatait vizsgálja, a látható cellák hátterét pirosra festi.

    Sub Szurt_adatok()
    Dim sor As Long

    For sor = 1 To 1000
    If Rows(sor).Hidden = False Then
    Cells(sor, 1).Interior.Color = vbRed
    End If
    Next
    End Sub
  • Tyco73
    #2196
    Sziasztok!
    Makróval kapcsolatos kérdésem lenne:
    egy autószűrővel leszűrt listán hogy tudok egy ciklust végig futtatni ami csak a látható sorokból olvas ki vagy módosít egy cellát?
  • Storey
    #2195
    Ennek továbbra is az a baja, hogy ha csak egy, vagy két féle érték van az oszlop soraiban, akkor az egyikből kettőt tesz be (és nem mindig van 3 féle adat. Lehet egy vagy kettő féle is, ez változó). Másik probléma még, hogy amikor másolja az adatokat sajnos az alatta lévő sorokban lévő dolgokat is törli, és azt nem kellene.
    Mindenesetre köszi!
  • Delila1
    #2194
    Egy másik megoldás, ahol a B5:B8 tartományt másoljuk a CC1:CC4-be, majd a szűrés végrehajtása után innen illesztjük be a B5:B8-ba az eredeti formátumot.

    Sub Szures()
    Range("B5:B8").Copy Range("CC1")
    Range("B6:B8").ClearContents
    Range("G9:G69").AdvancedFilter Action:=xlFilterCopy, _
    CopyToRange:=Range("B5"), Unique:=True
    Range("CC1:CC4").Copy
    Range("B5").PasteSpecial xlPasteFormats
    End Sub
  • Delila1
    #2193
    Sub Szures()
    Range("B6:B8").ClearContents
    Range("G9:G69").AdvancedFilter Action:=xlFilterCopy, _
    CopyToRange:=Range("B5"), Unique:=True
    Range("B5:B8").Interior.ColorIndex = -4142
    End Sub

    A makrót egy gombhoz rendelheted.
  • Storey
    #2192
    Sajnos ezzel egyáltalán nem boldogulok. Van amikor két ugyanolyan adatot 2x ír be, máskor egyszer sem írja be, és nem is tudom automatikusan elindítani, úgyhogy más megoldást kell keresnem.
  • Delila1
    #2191
    A szűrés után a 3 cella formátumát megadhatod, akár makróval.
  • Storey
    #2190
    Kipróbáltam, és működik is, de sajnos a formátumot is átviszi, és így nekem nem jó.
    De köszi szépen a segítséget.
  • Delila1
    #2189
    Erre való a speciális szűrés.
    A G9-be írj címsort, amit másolsz a B5-be. Beállsz a G9-be, majd hívod az Adatok | Rendezés és szűrés | Speciális menüt.
    Paraméterek: Más helyre másolja, Listatartomány G9:G69, Hova másolja: B5, Csak az egyedi rekordok megjelenítése.
  • Storey
    #2188
    Bocsi: Én nem fogalmaztam egyértelműen.
    Tehát. Az oszlopban maximum 3 féle adat szerepelhet(de lehet egy vagy két féle is). Azt szeretném, hogy ez kerüljön föl a B6-B9-es
    cellákba. Ha csak egy féle van, akkor egy, ha kettő, akkor 2 és így tovább. Természetesen mindegyikből csak egy, úgy hogy mindenféleképp a B6os cellában induljon. Az is fontos még, hogy az legyen a B6-os cellában, amelyik az oszlopban is feljebb van, aztán a B7-ben a következő már ettől különböző adat és így tovább.
    Remélem így már egyértelmű.
    Előre is köszi.
    Utoljára szerkesztette: Storey, 2016.03.15. 16:10:23
  • Delila1
    #2187
    Nem nagyon értem, ha 3 féle adat van a G oszlopban, akkor miért kell hármat választani közülük véletlen szerűen? Csakis ugyanazt a hármat választhatod minden esetben.

    Sub Harom()
    Dim sor As Integer, ide As Integer

    ide = 6
    Do While ide < 9
    Ujra:
    sor = Round(Rnd() * (69 - 10) + 10, 0)
    If Application.WorksheetFunction.CountIf(Range("B3:B6"), Cells(sor, "G")) = 0 Then
    Cells(ide, "B") = Cells(sor, "G")
    ide = ide + 1
    Else
    GoTo Ujra
    End If
    Loop
    End Sub

    Ügyelj, hogy az Ujra címke a sor elején legyen. Nagy kár, hogy itt nem lehet tabulátorral tagolni a bemásolt makrót.

    Utoljára szerkesztette: Delila1, 2016.03.15. 14:03:26
  • Storey
    #2186
    Üdv!

    Ismét segítségre lenne szükségem makróval kapcsoltban.
    Szöveges adatok találhatók egy munkafüzet G10-G69-es tartományában. Maximum 3 féle adatról van szó, (Mondjuk nevekről) de
    teljesen összekeverve vegyesen. Szeretnék ezek közül mindegyikből egyet-egyet(természetesen különbözőeket) kiválogatni, és az adott munkafüzet B6-B8-as celláiba másoltatni. Tudom, hogy képlettel ez teljesen jól megoldható, de én mindenképp makróval szeretném csinálni.
    Előre is köszi!
  • Delila1
    #2185
    Szívesen.
  • Storey
    #2184
    Tökéletes!
    Nagyon szépen köszönöm!
  • Delila1
    #2183
    Sub Masolas()
    Dim utvonal As String, WSE As Worksheet
    Dim usor As Long

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    Set WSE = ActiveWorkbook.Sheets(1)

    utvonal = ActiveWorkbook.Path & "\"
    Workbooks.Open Filename:=utvonal & "Az új munkafüzet neve.xlsx"

    usor = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
    Range("A8:C" & usor).Copy
    WSE.Range("D10").PasteSpecial xlPasteValues

    Application.CutCopyMode = False

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    End Sub
  • Storey
    #2182
    Az újonnan ("Az új munkafüzet neve") megnyitott munkafüzetből akarok másolni adatokat az A, B, C oszlop 8. sorától kezdődően, addig, amíg a sorok adatokat tartalmaznak, és ezt az adathalmazt szeretném beilleszteni az eredeti (a makrót tartalmazó) munkafüzet, D10 cellájától kezdődően, lefelé, a D, E, F oszlopokba.
  • Delila1
    #2181
    Melyik füzetből melyikbe akarsz másolni?
    Az eredetiből (a makrót tartalmazóból) "Az új munkafüzet neve" nevűbe, vagy fordítva?
    Melyik területet a másik füzet melyik területére?
  • Storey
    #2180
    Sziasztok!

    Kis segítségre lenne szükségem. Szeretnék megnyitni egy új excel munkalapot, majd abból adatokat importálni.
    A megnyitás sikerült, de sajnos nem tér vissza az eredeti munkafüzetbe, hogy ott az adatokat beillessze.
    Mit csináltam rosszul?

    Sub Megnyitás()

    Dim usor%

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    usor% = Range("E9").End(xlDown).Row

    utvonal = ActiveWorkbook.Path & "\"
    Workbooks.Open utvonal & ("\") & ("Az új munkafüzet neve")
    Range("A8:C" & usor%).Copy
    Worksheets(1).Select
    Range("E10").PasteSpecial Paste:=xlPasteValue
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True

    End Sub

    Előre is köszi!
  • Delila1
    #2179
    Szívesen. Örülök, hogy összejött.
  • Storey
    #2178
    Nagyszerű!
    Köszönöm szépen!
    Örök hála! :)
  • Delila1
    #2177
    utvonal = ActiveWorkbook.Path & "\"
    Sheets("Munka1").Copy
    Cells.Copy
    Range("A1").PasteSpecial xlPasteValues
    ActiveWorkbook.SaveAs Filename:=utvonal & "Füzet_neve.xls", FileFormat:=xlExcel8
    ActiveWorkbook.Close
  • Storey
    #2176
    Köszi!

    Majdnem jó, de 2 problémám van vele.

    1: Nekem . XLS formátumban kelle az új munkafüzet. Jelenleg .XLSX-ként menti.
    2: A számítógép Dokumentumok mappájába teszi az új munkafüzetet, Nekem az kellene, hogy abba a mappába mentse, amelyikben az eredeti munkafüzet található!
    Illetve még egy kérdés. Hogyan tudom ugyanebben a makróban megadni az új munkafüzet nevét?

    Előre is köszi!
  • Delila1
    #2175
    Sheets("másolandó lap neve").Copy
    Cells.Copy
    Range("A1").PasteSpecial xlPasteValues
    ActiveWorkbook.Save
    ActiveWorkbook.Close

    Az első sor átmásolja egy új füzetbe a lapot, és az új füzetet teszi aktívvá. A cells.copy másolja az összes cellát, a köv. sor beilleszti az értéket. A két utolsó ment és zár.