2417
megoldást keresek erre a problémára
  • Delila1
    #2134
    A fejléc beírását még egyszerűbben is megoldhatod.

    Dim fejlec As String, oszlop As Integer

    fejlec = "Dátum,Napok,Kezdés,Vége,Ledolgozott idő"
    For oszlop = 0 To 4
    Cells(1, oszlop + 1) = Split(fejlec, ",")(oszlop)
    Next

  • Delila1
    #2133
    Az inputboxban a hónapot kéred be dátum formában. Csakhogy ez szám, nem dátum.

    Ezt írod:
    Range("A1").Select
    Selection.Formula = "Dátum"

    Helyette éppen elég (és a Selection elhagyása gyorsít is a programon) Range("A1")="Dátum"

    A második kérdésedre:
    Dim usor As Long

    usor = Range("E" & Rows.Count).End(xlUp).Row
    Range("E" & usor + 1) = "=SUM(E1:E" & usor & ")"

  • GImre70
    #2132
    Bocsánat de még egy kérdés.
    Hogy tudom azt megcsinálni - makróban - hogy az adott oszlop - "E" oszlop - utolsó sora után összegezze az "E" oszlop értékeit. A sorok változhatnak lehet 30 vagy 31 sora attól függ hogy az adott hónap hány napos.
  • GImre70
    #2131
    Sziasztok. Egy kis segítséget kérnék. Készítettem egy táblázatot, ami a ledolgozott időmet tartalmazza.
    Készítettem egy makró - előtte - innen-onnan sőt még erről az oldalról is kértem segítséget a makró megírására. Na most az a problémám, hogy amikor lefut a Sub Workbook_NewSheet( Byval Sh as Object) és utána a Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Az ebben a rutinban megírt esemény egyik változója Type Mismatch üzenettel kiáll:
    Be másolom a cls fájlt mivel nem tom, hogy hogy kell beilleszteni.
    Itt a fájl:
    Dim menyinap
    Public kezdese
    Public veges
    Public perce
    Public terulet As Range


    Private Sub Workbook_NewSheet(ByVal Sh As Object)
    Dim menyinap, honapneve
    Dim kerdes As Date

    If Sh.Name Like "Mun*" Then
    kerdes = InputBox("Melyik hónap ? Ird be a dátumot", "Hónap", Date)
    honapneve = honnev(kerdes)
    Sh.Name = honapneve
    End If
    menyinap = hanynap(kerdes)
    Range("A1").Select
    Selection.Formula = "Dátum"
    Range("B1").Select
    Selection.Formula = "Napok"
    Range("C1").Select
    Selection.Formula = "Kezdés"
    Range("D1").Select
    Selection.Formula = "Vége"
    Range("E1").Select
    Selection.Formula = "Ledolgozott Idő"
    Range("A1:E1").Select
    With Selection
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
    .WrapText = True
    .Font.Size = 16
    .Font.Bold = True
    .Columns.AutoFit
    End With
    Range("A2:E" & menyinap + 1).Activate
    Columns("A:A").ColumnWidth = 15
    Columns("B:B").ColumnWidth = 14
    Columns("C:C").ColumnWidth = 12
    Columns("D:D").ColumnWidth = 11
    Columns("E:E").ColumnWidth = 15
    Range("A1:E1").Interior.ColorIndex = 15
    Range("A2:A" & menyinap + 1).Interior.ColorIndex = 43
    Range("B2:B" & menyinap + 1).Interior.ColorIndex = 6
    Range("C2:C" & menyinap + 1).Interior.ColorIndex = 40
    Range("D2:D" & menyinap + 1).Interior.ColorIndex = 32
    Range("E2:E" & menyinap + 1).Interior.ColorIndex = 7
    Range("A2:A" & menyinap + 1).Font.ColorIndex = 49
    Range("B2:B" & menyinap + 1).Font.ColorIndex = 53
    Range("C2:C" & menyinap + 1).Font.ColorIndex = 14
    Range("D2:D" & menyinap + 1).Font.ColorIndex = 3
    Range("E2:E" & menyinap + 1).Font.ColorIndex = 49 '18
    With Selection.Font
    .Size = 15
    .Name = "calibri"
    .Bold = True
    End With
    'Range("C2:E" & menyinap + 1).NumberFormat = h & ":" & mm
    Range("A2").Select
    With Selection
    .FormulaR1C1 = kerdes
    .AutoFill Destination:=Range("A2:A" & menyinap+1), Type:=xlFillDefault
    .Columns.AutoFit
    End With
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "=TEXT(RC[-1],""nnnn"")"
    Range("B2").Select
    Selection.AutoFill Destination:=Range("B2:B" & menyinap + 1)
    Range("B2:B" & menyinap + 1).HorizontalAlignment = xlCenter



    End Sub

    Public Function honnev(honapp As Date)
    Dim neve
    neve = MonthName(Month(honapp))
    honnev = neve
    End Function

    Public Function hanynap(anapok)
    Dim napszam
    napszam = WorksheetFunction.EoMonth(anapok, 0)
    hanynap = Day(napszam)
    End Function

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim kezdese, veges As Date
    Dim perce As Currency
    Dim i
    Range("c1").Activate
    i = ActiveCell.CurrentRegion.Rows.Count - 1
    kezdese = Cells(Target.Row, 3)
    veges = Cells(Target.Row, 4)
    perce = Minute(vege) Type mishmatch hiba
    'Debug.Print "kezdés:" & kezdes, "vége:" & vege
    'Debug.Print "vege - kezdes:" & WorksheetFunction.RoundUp((vege - kezdes) * 24, 0)
    If Target.Column = 4 Then
    Select Case perc
    Case 0, 30
    Cells(Target.Row, 5) = ((vege - kezdes) * 24)
    Case 1 To 29
    Cells(Target.Row, 5) = WorksheetFunction.RoundUp((vege - kezdes) * 24 / 0.5, 0) * 0.5
    Case 31 To 59
    Cells(Target.Row, 5) = WorksheetFunction.RoundUp((vege - kezdes) * 24 / 0.5, 0) * 0.5
    End Select
    End If
    End Sub
    Ebben kérném a segítséget. Előre is köszönöm.
  • Delila1
    #2130
    Szívesen.

    Azt hittem, felteszed a kérdést, majd soha többé nem nézel el a fórumra.
  • cool123
    #2129
    Nagyon szépen köszönöm!
  • Delila1
    #2128
    A VB szerkesztőben a ThisWorkbook lapodhoz kell rendelned a makrót.

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Const utvonal = "D:\Akármi\Valami\"

    ActiveWorkbook.SaveAs Filename:=utvonal & Sheets("Munka1").Range("G3") & ".xlsm", FileFormat:= _
    xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    End Sub

    Az utvonal változóhoz a saját útvonaladat add meg, a Sheets("Munka1") helyén is a saját lapod neve legyen.
  • cool123
    #2127
    Helló!
    Az lenne a kérdésem hogy, hogyan tudom azt megcsinálni hogy a G3 cellába írt szöveg legyen automatikusan a mentési név.
    Előre is köszönőm a segítséget!
  • Delila1
    #2126
    Egyszer kell jól elrendezni az adatokat. Ezt érdemes az adatbevitel előtt ésszerűen elvégezni.

    Könnyen elforgathatsz egy táblázatot. Kijelölöd, másolod, egy üres helyre irányítottan, transzponálással beilleszted.
  • zvaragabor
    #2125
    Sajnos nem lehet átrendezni a táblát, az "fr" és "abc" oszlopok mind a kiinduló táblázat oszlopai, nem tudom elforgatni sajnos. Illetve megoldható, de akkor át kell rendezni a táblázat struktúráját. A makrós dologhoz nem értek, az kimarad. Köszönöm szépen a segítséget, a nagyja így is sikerült. :)
  • Delila1
    #2124
    Biztosan találsz ésszerűbb elrendezést a kiinduló (bal oldali) táblázathoz.
    Valószínű, hogy a példa szerintit csak makróval lehet megoldani.
  • zvaragabor
    #2123
    Nagyon jó! Köszönöm szépen! :) Még egy lenne, itt a kritériumtartomány vízszintes.


    A jobb oldali összesítőtáblát szeretném függvénnyel megoldani a bal oldali alapján.
  • Delila1
    #2122
    A két táblázat egymás mellett legyen, ne egymás alatt.
    Az összesítő G2 cellájának a képlete látszik a szerkesztőlécen. Ezt másold jobbra és le az I13 celláig. Ügyelj a $ jelekre!




    Utoljára szerkesztette: Delila1, 2015.10.01. 15:29:44
  • zvaragabor
    #2121
    Nem igazán tudtam a DARABHATÖBB-et alkalmazni. Szerintem ide valamilyen FKERES szerűség kellene valamelyik DARAB függvénnyel. Be printscreeneltem egy példa táblát, hátha így érthetőbb.


    Tehát az összesítőtáblát szeretném függvénnyel frissíteni.
    Utoljára szerkesztette: zvaragabor, 2015.10.01. 15:06:52
  • Atika :o)
    #2120
    koszi szepen
  • Delila1
    #2119
    Vegyük, hogy a két szám az A1, ill. a B1 cellában van. Ezek közül kell a kisebbet kivonnod 100-ból a C1 cellában.
    A C1 képlete =100-MIN(A1:B1)

    Ha mindig a nagyobból kell kivonnod a kisebbet, akkor a C1-be ezt írd: =MAX(A1:B1)-MIN(A1:B1)
  • Delila1
    #2118
    Nézd meg a DARABHATÖBB függvény leírását.
  • zvaragabor
    #2117
    Alapvetően az a gondom ezzel, hogy az összesítő táblázatnál pl a "JAN" sorban az FR0-hoz végig kell mennie a nagy táblázatban soronként, hogy "ha a sor egyik oszlopa JAN, akkor a másik oszlop értékét számolom" És ugye itt nem ugyan az a kritériumot vizsgálandó tartomány, mint a számolandó.
  • zvaragabor
    #2116
    Sziasztok, én olyat szeretnék kérdezni, hogy:
    Van egy táblám, több oszloppal, de ami nekem kell, az egyik oszlop a hónapot tartalmazza (JAN, FEB, MAR...), hogy melyik hónapban szerepelt az adott tétel, néhány oszloppal arrébb pedig különböző kategóriájú (FR0, FR1, FR2, FR3, O) oszlopok vannak, és be van jelölve egy 1-essel, hogy melyik kategóriában szerepelt az az esemény. Egy hónapban szerepelhet több esemény is, de nem föltétlen ugyan azzal a kategóriával. Ez a fő táblám, ahova viszem be az adatokat.

    Akkor alatta van egy összesítő táblázat, első oszlop a hónapok nevei egymás alatt soronként, következő oszlopok megint a kategóriák (FR0, FR1...). Szeretném összegezni, hogy adott hónapban mennyi esemény volt az adott kategóriában. Tudtok segíteni?
  • Atika :o)
    #2115
    Hello, olyat hogy tudok megoldani hogy van ket oszlopom ahol kulombozo szamok vannak ezt kellene osszehasonlitanom es egy harmadikban ahol egy kivonas van oda kellene beleraknom az osszehasonlitottbol a kessebbik szamot?
  • Delila1
    #2114
    Másik módszer:
    B1-ben marad a BAL függvény. C1 –> =KÖZÉP($A1;HOSSZ($A1)-OSZLOP()+2;1). A OSZLOP() függvény az aktuális oszlop értékét adja.
    Ezt a képletet másolhatod jobbra változtatás nélkül akármeddig. Amelyik oszlopban az OSZLOP()+2 eléri az A1-ben lévő szó hosszát, onnan kezdve #ÉRTÉK hibát kapsz.

    Ezt használhatod ki a HAHIBA függvénnyel.
    =B1&HAHIBA(C1;"")&HAHIBA(D1;"")&HAHIBA(E1;"")&HAHIBA(F1;"")&HAHIBA(G1;"")&HAHIBA(H1;"")&HAHIBA(I1;"")&HAHIBA(J1;"")&HAHIBA(K1;"")&HAHIBA(L1;"") ...stb.
  • Delila1
    #2113
    Bevetheted még a HOSSZ függvényt.

    A1-ben van a szó. B1 –> =JOBB(A1;1)
    C1 –> =KÖZÉP($A1;HOSSZ($A1)-1;1) ezt a függvényt másolod jobbra, és a levonandó értéket átírod mindig eggyel nagyobbra.
    D1 –> =KÖZÉP($A1;HOSSZ($A1)-2;1)
    E1 –> =KÖZÉP($A1;HOSSZ($A1)-3;1) ... és így tovább. Amelyik oszlopban #ÉRTÉK hibát kapsz, az már nem kell, mert a levonandó érték egyenlő a szó hosszával. Az utolsó hibátlan képlet helyére beírhatod a =BAL($A1;1) függvényt.

    Most már csak az egyes cellák függvényeit (nem az eredményeket, tehát nem cellahivatkozást) kell összefűznöd a B1-ben az & jellel, az eredeti képleteket törölheted.
  • Aycek
    #2112
    Szóval valami ilyesmi: =BAL(JOBB(A6;1))&BAL(JOBB(A6;2))&BAL(JOBB(A6;3))&BAL(JOBB(A6;4))&BAL(JOBB(A6;5))&BAL(JOBB(A6;6))
  • Aycek
    #2111
    Sajnos nem. Azt mondta tanár úr, hogy szövegfüggvényekkel megoldható a feladat. Igazából eljutottam egy darabig, csak az a baj, hogy ezzel a képlettel csak 6 betűs szavakat tudok megfordítani.
  • Delila1
    #2110
    Gondolom, makróval kell megoldanotok.
    A laphoz rendeld a lenti eseményvezérelt makrót:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim betu As Integer, forditott As String

    If Target.Address = "$A$1" Then
    Application.EnableEvents = False
    For betu = Len(Target.Value) To 1 Step -1
    forditott = forditott & Mid(Target.Value, betu, 1)
    Next
    Range("A1") = forditott
    Application.EnableEvents = True
    End If
    End Sub
  • Aycek
    #2109
    Sziasztok. :) Azt a házit kaptuk számtech tanártól, hogy excelben valósítsuk meg valahogy azt, hogy mondjuk egy cellába beírok bármilyen szót, akkor az a másik cellában fordítva jelenjen meg. (Pl: karakter=>retkarak) Még azt is tudom, hogy a HOSSZ, BAL, JOBB és ÖSSZEFŰZ függvényekkel kellene dolgoznom, de fogalmam sincs, hogy csináljam. Segítene valaki? Nagyon megköszönném! :)
  • Delila1
    #2108
    Szivi. :)
  • Atika :o)
    #2107
    koszi
  • Delila1
    #2106
    Makróval

    Dim usor As Long

    usor = Range("A" & Rows.Count).End(xlUp).Row
    Range("B2:B" & usor) = "=vlookup(A2,G:H,2,0)"
  • Delila1
    #2105
  • Atika :o)
    #2104
    Sziasztok lenne egy olyan problemam, hogy szeretnem megoldani excelben azt hogy van ket oszlopom az egyikben beirok egy szamot+betut a masikban pedig ez alapjan kellene egy adott szoveget rendelnie a beirt szam es betu kombinacioja alapjan. Amit probalok az a macroban az if es a else if, de valahogy nem sikerul osszehoznom. Tudna nekem ebben segiteni valaki?
  • Delila1
    #2103
    Minden kategóriában lesznek új függvényeid, nem egy külön csoportban.
    Arra emlékszem, hogy pl. a HEX2BIN függvényhez csak a bővítmény bekapcsolása után lehetett régebben hozzáférni. Lehet, hogy most is.

    Számold meg a függvényeidet a Mind csoportban, zárd be a bővítményt, és számolj újra. Ha veszed a fáradságot, írd meg, mennyi a különbség.
  • GImre70
    #2102
    Igen igazad van, de nem látom azokat a függvényeket, amik ebben a "csomagban"- nevezzük ennek - benne vannak. Bár nem tudom pontosan milyen függvényeket tartalmaz. Mert mint mondottam be van kapcsolva csak a függvények közt nem találom/látom ezeket a fgv-ket
  • Delila1
    #2101
    Az Analysis ToolPak nem 1 db függvény. Ha bekapcsolod, akkor egy halom új függvényt kapsz.
  • GImre70
    #2100
    Sziasztok. Azt szeretném kérdezni, hogy ha be van jelölve a Bővítmények ablakban az Analysis Toolpack és a többi bővítmény akkor miért nem látom a Képletek menü/függvények ablakban. Ez beállítási hiba vagy esetleg valami más probléma lehet. Van erre valami megoldás? Nem rég újra telepítettem az Office-t 2013-s verzió.
    Erre kérném a segítségeteket. Előre is köszönöm. Imre
  • godunov
    #2099
    Hello!

    Nagyon köszi a gyors reagálást!

    Bocsi, hogy nem fogalmaztam pontosan.
    Az Excelben fut a makró. Az Excel megnyitja a Word doksit, keres, kijelöli a sort, kimásol belőle, majd (innen már tudom) beilleszti egy saját cellába.
    Köszi!
    godunov
  • Delila1
    #2098
    Nem világos, hogy a Word-ben lévő szöveget keresed-e az Excelben.
    A makróban megadtam a keresett_szoveg értékét, annak a sorát jelöli ki a makró.

    Sub Valami()
    Dim sor As Integer, keresett_szoveg As String

    keresett_szoveg = "Viki"
    sor = Cells.Find(What:=keresett_szoveg, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False).Row
    Range("A" & sor).Select
    Range(Selection, Selection.End(xlToRight)).Copy
    End Sub
  • godunov
    #2097
    Sziasztok!

    Az alábbi Excel makró problémában kérném szíves segítségeteket:
    Excelből szeretnék Word doksit kezelni.
    1) megnyitom
    2) megkeresek egy kifejezést
    3) kijelölöm a sor (sor elejére ugrik, majd a végére kijelöléssel)
    4) copy
    Az utolsó két műveletet sehogy sem veszi be.
    Ha a Word-ben fut a makró így néz ki és működik:

    Selection.HomeKey Unit:=wdLine
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    Selection.Copy

    Excelben eddig jutottam el (A sor elejére ugrik, majd a végére, kijelölés nélkül. A "Unit" és "Extend" nem működik.)

    Sub MACROEXCELLWITHWORD()

    Dim OWORD As Object
    Set OWORD = CreateObject("Word.Application")

    Dim ODOC As Object

    Set ODOC = OWORD.Documents.Open("C:\teszt.doc")

    OWORD.Visible = True

    Set sel = OWORD.Selection
    sel.Find.ClearFormatting

    With sel.Find
    .Text = "keresett szöveg"
    .Forward = True
    .Wrap = OWORDFindContinue
    .Format = False
    .MatchCase = True
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = False
    .MatchFuzzy = True
    End With

    With sel.Find.Execute
    End With

    With sel
    .HomeKey
    .EndKey
    End With

    End Sub

    Nagyon köszönöm előre is a segítséget!
    Üdv: godunov
    Utoljára szerkesztette: godunov, 2015.08.17. 10:47:22
  • rooney8
    #2096
    üdv. csak kicsit kapcsolódik excel-hez, de itt azért nagyobb az élet, ezért ide teszem fel a kérdést:)
    van egy excel táblázatom, melyekben különböző színekkel vannak jelölve a sorok. lényegében arról van szó, hogy egy munka táblázata ez, és minden sor egy darab eszközt jelöl, amin el lett végezve a munka. zöld színű a sor, ha sikeres, piros színű a sor, ha sikertelen. na most szeretnék csinálni egy kimutatást, hogy mennyi sikeres és sikertelen munka volt. access-re gondoltam, bár nincs nagy gyakorlatom benne, még suliban használtam utoljára, szóval eléggé megkopott a tudásom. viszont ahogy beimportálom a táblát, a színek eltűnnek, így nem is tudok ez alapján szűrni. igazából excel-ben is megoldható, csak kíváncsi vagyok, hogy access-t lehet-e ilyenre használni:)
  • norbre
    #2095
    Meglett a válasz ha valakit érdekel:
    Az egyik munkalapon volt egy egyszerű feltételes formázás, és az utolsó cella "beragadt" valahol 100e sor után, pedig pár száz sor után már nem volt adat.. ezt a "beragadást" pedig így lehet feloldani:
    1. Excel adott munkalapján: ALT+F11 (visual basic indítása)
    2. Megnyíló Visual Basicben: CTRL+G (immediate ablak megnyitása)
    3. Immediate ablakba:
    Worksheets("Sheetx").Activate (+ENTER)
    ActiveSheet.UsedRange.Select (+ENTER)
    4. ALT+Q (Visual Basic bezárása)

    .. és ez után már jó is lett