Keresés

Részletes keresés

SQLkerdes Creative Commons License 2011.08.15 0 0 15846

Sub teszt()
    Dim  W As Word.Document, WD As Word.Application
    Dim o As OLEObject
    
    Set o = ActiveSheet.Shapes("Object 3").OLEFormat.Object
    o.Verb Verb:=xlOpen

    Set W = o.Object
    Set WD = W.Parent
    W.SaveAs "D:akármi.doc"
    W.Close
    WD.Quit
End Sub

 

Ide az elejére miért nem lehet beszúrni, hogy:

 

WD.Visible = FALSE

 

Vagy félreértem a kérdést?

Törölt nick Creative Commons License 2011.08.15 0 0 15845

Lehet, egy másik nézetből kellene nekikezdeni. A lényeg, hogy különböző munkalapok, különböző adataiból makróval létrehozok és összeállítok egy word dokumentumot különböző formázásokkal.

A problémám az, hogy sehogy sem tudok egy kis képet (egy logót) a wordbe illeszteni, úgy, hogy a képnek ne kelljen külön elérési utat megadni, hanem az adatokat (és a makrót is) tartalmazó excel munkafüzetből lehessen azt a wordben adott helyre beszúrni. 

Előzmény: Jimmy the Hand (15843)
Törölt nick Creative Commons License 2011.08.15 0 0 15844

Sajnos, semmi, pedig erőst guglizok is a témában...

Előzmény: Jimmy the Hand (15843)
Jimmy the Hand Creative Commons License 2011.08.15 0 0 15843

Nem tudom, nem sikerült megoldani. Ha neked van valamid, kíváncsi lennék rá.

Előzmény: Törölt nick (15837)
Törölt nick Creative Commons License 2011.08.15 0 0 15842

Köszi, sokat segítettél ;-)

Előzmény: SQLkerdes (15841)
SQLkerdes Creative Commons License 2011.08.15 0 0 15841

Az application-öknek van egy visible property-jük, azt kell false-ra állítani.

Előzmény: Törölt nick (15837)
Törölt nick Creative Commons License 2011.08.15 0 0 15840

aztán persze elképzelhető, hogy a fkeres-ben az oszlopszámot is dinamikussá kell tenned. (Pl. megkeresed a számát egy matc (hol.van) fgv-el. Nem ismerem a tábla szekezetét...

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

Lásd el névvel a tartományt. A Névvel ellátott tartomány a sorok/oszlpok beszúrásával dinamikusan változni fog.

A nevet pedig a range-ben adod meg:   Range("NÉV")

De lehet így is, nem kell az autofill:

 

Range("teszt").Formula = "=IF(ISERROR(VLOOKUP(A7,orders,3,0)),""Missing"",VLOOKUP(A7,orders,3,0))"

Előzmény: wawabagus (15838)
wawabagus Creative Commons License 2011.08.15 0 0 15838

Sziasztok!

Megint kéne sajnos segítség.

 

Hogyan tudom rugalmasan függvényekkel feltölteni egy munkalapot?

 

Példéul ez a függvényem:

 

   Sheets("SumUp").Cells(6 + 1, LastCol + 3).Formula = _
      "=IF(ISERROR(VLOOKUP(A7,orders,3,0)),""Missing"",VLOOKUP(A7,orders,3,0))"
   Range("R7").Select
   Selection.AutoFill Destination:=Range("R7:R123")

 

Azt, hogy a függvény mindig az utolsó oszlop utáni x (itt 3. oszlopba) kerüljön azt megoldottam.

azt nem tudom,  hogyan másoljam ezt le értelmesen...

 

Tehát az R, nem mindig lesz R...szóval ezt nem használhatom Selection.AutoFill Destination:=Range("R7:R123"). És persze a az sem biztos, hogy 123 sor lesz.

 

 

Hogyan tundám ezt praktikusan megoldani?

Van ötletetek?

 

Köszi előre is!!

 

Törölt nick Creative Commons License 2011.08.15 0 0 15837

Esetleg meg lehet oldani azt is, hogy a beágyazott doksi megnyitása (mentése-bezárása) ne látszódjon?

Az 'Application.ScreenUpdating = False' itt nem működik. 

Előzmény: Jimmy the Hand (15833)
Törölt nick Creative Commons License 2011.08.15 0 0 15836

Tökéletesen működik! Nagyon köszönöm a segítséget! :-)

Előzmény: Jimmy the Hand (15833)
Jimmy the Hand Creative Commons License 2011.08.15 0 0 15835

;-)

Előzmény: wawabagus (15832)
Jimmy the Hand Creative Commons License 2011.08.15 0 0 15834

Ja, bocs. Ezt elfelejtettem visszaírni:

 

Set o = ActiveSheet.Shapes("Object 3").OLEFormat.Object

helyett

Set o = ActiveSheet.Shapes("Objektum 3").OLEFormat.Object

 

Előzmény: Jimmy the Hand (15833)
Jimmy the Hand Creative Commons License 2011.08.15 0 0 15833

Sub teszt()
    Dim  W As Word.Document, WD As Word.Application
    Dim o As OLEObject
    
    Set o = ActiveSheet.Shapes("Object 3").OLEFormat.Object
    o.Verb Verb:=xlOpen

    Set W = o.Object
    Set WD = W.Parent
    W.SaveAs "D:\akármi.doc"
    W.Close
    WD.Quit
End Sub

 

Kell hozzá csatolni a Microsoft Word xx.y Object Library-t a Tools->References menüben.

A vastagított kódrészekre szigorúan véve nem lenne szükség. Azért kellenek mégis, hogy a Word alkalmazást is be lehessen zárni, különben nyitva maradna.

Előzmény: Törölt nick (15831)
wawabagus Creative Commons License 2011.08.15 0 0 15832

Szuper vagy :-)!!!!!!!!

Köszi, működik :-)

Hurra!

Előzmény: Jimmy the Hand (15830)
Törölt nick Creative Commons License 2011.08.15 0 0 15831

Sziasztok!

 

Egy munkalapra beágyazott word dokumentumot szeretnék makróval megnyitni, majd egy adott helyre elmenteni.

A megnyitás rendben van, de nem tudom (a makrórögzítő nem segít), hogyan lehet elmenteni (mentés másként) és utána bezárni a beágyazott dokumentumot.

 

A megnyitásra ezt adta a makrórögzítő:

    ActiveSheet.Shapes("Objektum 3").Select

    Selection.Verb Verb:=xlOpen

 

Tudna valaki segíteni?

Jimmy the Hand Creative Commons License 2011.08.15 0 0 15830

Nem teszteltem, de sztem valami ilyesmi lesz:

 

    Sheets("SumUp").Cells(6 + 1, LastCol + 3).Formula = _
        "=IF(ISERROR(VLOOKUP(A7,orders,3,0)),""Missing"",VLOOKUP(A7,orders,3,0))"

Előzmény: wawabagus (15829)
wawabagus Creative Commons License 2011.08.15 0 0 15829

Sziasztok!

Mint várható volt megint felmerült egy kis bonyodalom.

VBA kódok és Vlookup.

 

Van egy összesítő sheetem, aminek 4 oszlopát vlookup-okkal szeretném feltölteni.

Fel is vettem a makrót. Bizonyos szintig működik is.

 

A gond ezzel a R1C1-es formátummal van.

Hogyan lehet ezt átírni úgy, hogy ne ilyen relatívan határozza meg a pozíciót, hanem fapadosan pl Vookup(Range("A5")...stb...

Valamiért nekem igy nem működik ezzel a range-vel...de nyílván rosszul csinálom.

 

 

 

    Sheets("SumUp").Cells(6 + 1, LastCol + 3).FormulaR1C1 = _
        "=IF(ISERROR(VLOOKUP(RC[-17],'Country Orders'!C[-17]:C[-15],3,0)),""Missing"",VLOOKUP(RC[-17],'Country Orders'!C[-17]:C[-15],3,0))"
    Range("R7").Select
    Selection.AutoFill Destination:=Range("R7:R123")    Sheets("SumUp").Cells(6 + 1, LastCol + 3).FormulaR1C1 = _
        "=IF(ISERROR(VLOOKUP(RC[-17],'Country Orders'!C[-17]:C[-15],3,0)),""Missing"",VLOOKUP(RC[-17],'Country Orders'!C[-17]:C[-15],3,0))"
    Range("R7").Select
    Selection.AutoFill Destination:=Range("R7:R123")

 

 

RC[-17] helyett pl Range("a7") kéne

'Country Orders'!C[-17]:C[-15], helyett pedig named range (már meg is csináltam "orders")

 

Van tippetek?

Nagyon köszönöm előre is!

 

tt65 Creative Commons License 2011.08.15 0 0 15828

"azonos pontszám esetén mindíg az elsőt írja ki. Ez a probléma is megoldható, de most erre nem térnék ki"

pont belefutottam egy ilyenbe, kitérne valaki erre?

vagy biztos volt már a témáról szó, ha valaki segít melyik hszben találom, megköszönném!

Előzmény: Sztai (15773)
Jimmy the Hand Creative Commons License 2011.08.14 0 0 15825

Private Sub UserForm_Activate()

End Sub

?

Előzmény: Gavriel (15823)
_Nyuszi Creative Commons License 2011.08.14 0 0 15824

OFF

"Basszus hány év megtanulni ezt a makró írás mekkmester módra...."

Teljesen átérzem a helyzetedet: én a héten php-ban gyártottam kódot... Nem tudok programozni.... Vicces volt. :-)

Előzmény: wawabagus (15816)
wawabagus Creative Commons License 2011.08.12 0 0 15822

Persze mindig újabb és újabb dolgok merülnek fel, mint:

 

Miért romlik el a conditional formatting a COPY-ban, ami még az eredetiben tök jó.

A conditinal formattingolt rász magábaölel egy pivotot is...

Ott van a probléma...

 

áááá

 

wawabagus Creative Commons License 2011.08.12 0 0 15821

hahahaha...hát igen

:-D

Előzmény: SQLkerdes (15819)
wawabagus Creative Commons License 2011.08.12 0 0 15820

Szia Delila!

Ó, ez tényleg szuper. Megjegyzem későbbre, közben már "átcsináltam" a makrót....

Köszi!

 

Előzmény: Delila10 (15818)
SQLkerdes Creative Commons License 2011.08.12 0 0 15819

Mondjuk az biztos, hogy futás közben tarkón lőni a kódot tartalmazó excel file-t nem egy best practice :-)

Előzmény: wawabagus (15814)
Delila10 Creative Commons License 2011.08.12 0 0 15818

Hihetetlen, de ez az egy sor létrehoz egy új füzetet, és átmásolja a Sheet1 lapot.  Az új füzet lesz aktív, nem lesz benne több lap. Ezt az új füzeted mentheted más néven, és bezárhatod.

 

A sor: Sheets("Sheets1").Copy

Előzmény: wawabagus (15816)
wawabagus Creative Commons License 2011.08.12 0 0 15817

...vagy SaveCopyAs lesz a megoldás :-DDD?

 

Istenem

Előzmény: wawabagus (15816)
wawabagus Creative Commons License 2011.08.12 0 0 15816

Szia,

Igen tudom, de mások fogják használni és nem biztos hogy majd vágják ezt....

Csak közben az jutott eszembe, hogy ha én ciklust írok, amiben becsukom a makrós munkafüzetet, akkor nem szakad meg a ciklus...nem felejti el hol tart a számolásban?

 

Bocs a hülye kérdését...kezdek már kikészülni ettől a hülye makrótól :-D.

 

Már belekezdtem egy olyan megoldásba, ahol inkább array-ként átmásolom az össze sheetet egy friss munkafüzetbe...

Itt most azon szenvedek, hogy nekem csak az átmásolt munkafüzetek kellenek, tehát sheet1, sheet2, sheets3-ra /vagy ahány van nem/.

Ok, újabb megoldásra váró feladat.

 

OK, törlöm az össze sheetet, mielőtt bemásolnám azt ami kell majd nekem.

Szuper, akkor már csak azt nem tudom, hogyan lehet üres munkafüzetbe másolni:

 

   Windows("Template - Version2.xls").Activate
    Sheets(Array("InventoryReport", "EMEA Orders", "Country Orders", _
        "Country Orders Data", "EMEA calls", "Country calls", "EMEA usage", "Country usage" _
        , "PartUsage Data")).Copy Before:=Workbooks("Book1").Sheets(1)

 

Nincs before, after, mert nincs benne sheet...

 

Basszus hány év megtanulni ezt a makró írás mekkmester módra....

ááááááááááááááááááááááá

 

Előzmény: SQLkerdes (15815)
SQLkerdes Creative Commons License 2011.08.12 0 0 15815

Szerintem ehhez elég az Excel biztonsági beállításait megváltoztatni.  Asszem a Trust Center címszó alatt futnak az excel 2007-ben és felette.

Előzmény: wawabagus (15814)
wawabagus Creative Commons License 2011.08.12 0 0 15814

Sziasztok!

Lenne még egy kérdésem...

 

Adott egy template sok sok sheettel, amin mindenféle manipulációt végzek, majd a végén nyomok egy SaveAS-t.

 

Majd újra nyitom a templetem, hogy egy újabb országra is lefusson ugyanaz a procedura...egészen annyiszor ahány országot talál egy adott helyen.

 

 

A kérdésem az lenne, hogy mivel ciklusba szeretném tenni a procedurát /annyiszor fut, ahány országot talál/...a makro biztonsági bizbasza be fog zavarni...

 

Lehet ezt makróból kikapcsolni? Hogy ne zavarjon be minden macro templet nyitáskor?...

 

Össze vagyok zavarodva, lehet nem jó ötlet hogy SaveAS-t nyomok és becsukódik a template...

 

ÁÁÁÁ

 

Esetleg ahelyett, hogy SaveAS a templetre esetleg az egészet egy új munkfüzetbe kéne másolni és akkor a template nyitva marad?

 

Nem tudom mennyire sikerült érthetően átadni mi a gond...

 

Tudok nekem tippet adni, hogyan lehet ezt praktikusan megoldani?

KÖSZÖNÖM

 

 

wawabagus Creative Commons License 2011.08.12 0 0 15813

Szia Jimmy,

Hahaha...nagyon trükkös megoldás :-). Sosem jutott volna ilyen eszembe.

Köszi szépen, tegnap még vissza csináltam a filteres megoldásom...úgy ezerszer gyorsabb :-), mint a szuper loopos...pedig arra nagyon büszke voltam.

 

 

 

Előzmény: Jimmy the Hand (15811)
wawabagus Creative Commons License 2011.08.12 0 0 15812

Ok, köszi

Előzmény: SQLkerdes (15810)
Jimmy the Hand Creative Commons License 2011.08.11 0 0 15811

Esetleg ezt is megpróbálhatod. Úgy mértem, durván 5x gyorsabb, mint a ciklusos megoldás.

Kb. 55000 sornál 51 sec volt a futási idő. (Lehet, hogy a kézi szűrés-másolás ennél is gyorsabb :))

 

Sub töröl()
    Dim Rng As Range, WS As Worksheet
    Application.Calculation = xlCalculationManual
    Set WS = Sheets("Country Orders Data")
    Set Rng = WS.Range("B2", WS.Range("B" & Rows.Count).End(xlUp))
    WS.Range("B:B").Insert
    With Rng.Offset(, -1)
        .FormulaR1C1 = "=IF(RC[1]<>""Denmark"",1,"""")"
        .Copy
        .PasteSpecial xlPasteValues
        .SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow.Delete
    End With
    WS.Range("B:B").Delete
    Application.Calculation = xlCalculationAutomatic
End Sub

Előzmény: wawabagus (15809)
SQLkerdes Creative Commons License 2011.08.11 0 0 15810

A Calculate-et feltétlenül próbáld meg.

Előzmény: wawabagus (15809)
wawabagus Creative Commons License 2011.08.11 0 0 15809

Szia,

Screenupdate-et lekapcsoltam

Calculate-et viszont nem

 

Közben megpróbáltam, hogy szüréssel nyerem ki ami kell nem ezzel a ciklussal és így sokkal gyorsabb.

 

Köszi!

Utánanézek ennek a calculate dolognak

Köszönöm a sgeítséget!!

 

Előzmény: SQLkerdes (15808)
SQLkerdes Creative Commons License 2011.08.11 0 0 15808

Screenupdating lekapcsolás,

Calculate lekapcsolás

 

35000 sornál akár rengeteget is számíthat.

Előzmény: wawabagus (15807)
wawabagus Creative Commons License 2011.08.11 0 0 15807

Sziasztok!

Lenne még egy kérdésem.

 

Van nekem ez a kódom:

 

    Sheets("Country Orders Data").Activate
    Last = Cells(Rows.Count, "B").End(xlUp).Row
    For i = Last To 2 Step -1
        If (Cells(i, "B").Value) <> "Denmark" Then
            Cells(i, "A").EntireRow.Delete
        End If
    Next i

 

Mivel azonban a sheet, amin töröl kb 35ezer sor van, ez eléggé kikészíti a programot.

Mi lehetne a gyorsabb megoldás? Rászűrés Denmarkra és kicopizás?

 

Köszi a tiippeket!!

 

 

wawabagus Creative Commons License 2011.08.11 0 0 15806

Sziasztok!

Tudnátok nekem tanácsot adni?

 

Vadi új gépet kaptam a munkahelyemen és új programokat is:

 

Windows XP - ->> Windows7

Excel 2003 -->> Excel2007, de a Excel 2003-es még rajta van

 

Vannak régi excel fájlaim, minenféle makróval....meg új fájlok amikben most komponálik makrót stb...

 

TETÜ LASSÚ AZ EXCELEM!!!

 

Megnyitni egy fájlt 3 perc

Elmenteni 2perc

Gagyi makrót futtatni 4 perc

 

A gépem vadi új!

 

Lehet emögött olyan ok, amin esetleg változtatni tudok? Létezik, hogy az excel 2007-en ennyire lassan nyíljanak a régi fájlok?

 

Köszi előre is a tippeket/ötleteket mit lehetne tenni...

Köszi!!!

magyarpityu Creative Commons License 2011.08.11 0 0 15805

Szia Jimmy!

 

Köszönöm a választ, megint tanultam tőled! :))

 

Ezt a 4 elemű tömböt én is nézegettem, de nem tudtam kiokoskodni, milyen adatokat is tárol. Végül megtaláltam a megoldást:

 

Sub szamol()
  Dim Param1 As Integer, Param2 As String
  Dim MenuCommand As CommandBarControl
  Set MenuCommand = CommandBars.ActionControl
  If Not TypeName(MenuCommand) = "CommandBarButton" Then Exit Sub
  Param1 = MenuCommand.Tag
  Param2 = MenuCommand.DescriptionText
  ...

 

A menü több szintes, minden szinten CommandBarControl objektumok szerepelnek. Azokat a menüpontokat, amelyek valamilyen feladatot hajtanak végre, vagyis amelyek meghívják a szamol() makrót, azokat msoControlButton típussal hoztam létre:

 

AlMenu(k).OnAction = "szamol"

AlMenu(k).DescriptionText = "..." 'Param2

AlMenu(k).Tag = "..." 'Param1

 

Azok a menüpontok, amelyekből almenü nyílik, azok msoControlPopup típusúak, és nincs .OnAction tulajdonságuk (pontosabban, ezt a tulajdonságát nem irányítottam a szamol() makróra).

 

Mikor a menüből meghívódik a 'szamol' makró, akkor a CommandBars.ActionControl tartalmazza azt a referenciát, amire szükségem van. Felvettem a 'szamol' makróban egy CommandBarControl típusú objektumot, ennek adtam át a CommandBars.ActionControl referenciát, és innentől kiolvashattam a korábban minden menüpontra egyedileg jellemző .DescriptionText és .Tag tulajdonságokat. Így már át tudok adni paramétereket a meghívott makrónak. Sőt, akár három paraméter is átadható, mert a .Parameter tulajdonság is használható.

Még egyszer köszönöm a segítséget!

Előzmény: Jimmy the Hand (15804)
Jimmy the Hand Creative Commons License 2011.08.11 0 0 15804

Hát én úgy nézem, hogy a variant egy négyelemű tömb, amelynek elemei a hívó menuitem pozícióját mutatják.

 

Sub teszt()
    Dim v As Variant
    v = Application.Caller
End Sub

 

Ha a fenti makrót saját menügombbal indítod, akkor a v(1 To 4) vektor elemei a következők lesznek:

 

v(2) : hányadik menü a felső menüsorban

v(1) : az adott menün belül hányadik menüpont

v(3) : ??? (nem tudom mi ez)

v(4) : kísérleteim szerint, ha legalább 3. szinten van az aktivált menüpont, akkor v(4) értéke 1, egyéb esetben nulla. (Vagyis, ha az aktivált menüpont a főmenü->almenü->menüpont útvonalon érhető el, mint pl. az Eszközök->Védele->Lapvédelem, vagy még ennél is lejjebb van a hierarchiában.)

 

Maximum 2 szintes menürendszer esetén működik az alábbi tesztprogram. A 3. szintre már nem tudtam kiterjeszteni, mert fogalmam sincs, miből derül ki az, hogy az aktív menüpont a hierarchia hányadik szntjén tartózkodik.

 

Sub szamol()
    Dim v As Variant
    With Application
        v = .Caller
        MsgBox .ActiveMenuBar.Menus(v(2)).Caption & " -> " & .ActiveMenuBar.Menus(v(2)).MenuItems(v(1)).Caption
    End With
End Sub

 

Lehet, hogy van egyszerűbb módja is, pl. direkt hivatkozás az aktív menüpontra valahol az Application objektum ezernyi tulajdonsága között. Nem tudom.

Előzmény: magyarpityu (15803)
magyarpityu Creative Commons License 2011.08.10 0 0 15803

Szia Jimmy!

 

Ezt a módszert hogyan lehetne alkamazni menürendszernél?

 

Létrehoztam egy több szintű menüt, minden menüpont CommandBarControl típusú.

 

Const maxMenuCommand As Integer = 40

Dim FoMenu As CommandBarControl

Dim AlMenu(maxMenuCommand) As CommandBarControl

 

Set FoMenu = CommandBars(1).Controls.Add(msoControlPopup)

 

Azokat az almenüpontokat, amelyeknek további almenüi vannak, így hoztam létre:

 

Set AlMenu(k) = FoMenu.Controls.Add(msoControlPopup)

 

Míg azokat a menüpontokat, amelyeknek már nincs almenüje, így:

 

Set AlMenu(k) = FoMenu.Controls.Add(msoControlButton)

 

Minden almenü .OnAction tulajdonságát ugyanarra a makróra állítottam:

 

AlMenu(k).OnAction = "szamol"

 

és a későbbi azonosítás kedvéért még néhány menüpontra jellemző adatot is beállítottam:

 

AlMenu(k).DescriptionText = "..."

AlMenu(k).Tag = "..."

 

Már csak az van hátra, hogy mikor meghívódik a 'szamol' makró, akkor valahogyan azonosítania kellene, hogy melyik menüpont indította el. Ha tudnám, melyik menüpontról lett meghívva, onnantól tudnám a 'szamol' makró paramétereit is, mert minden menüpont .DescriptionText és .Tag tulajdonságait kitöltöttem. Viszont az Application.Caller ebben az esetben egy Variant() típust ad vissza. Hogyan lesz ebből CommandBarControl objektumra való hivatkozás?

 

Előre is köszönöm a segítséget!

Előzmény: Jimmy the Hand (15800)
magyarpityu Creative Commons License 2011.08.10 0 0 15802

Szia Jimmy!

 

Ez fantasztikus, köszönöm szépen! :)) Ezt az Application.Caller-t kerestem!!!

 

Még egyszer köszönöm a segítséget!

Előzmény: Jimmy the Hand (15800)
Jimmy the Hand Creative Commons License 2011.08.10 0 0 15801

kórvégrehajtás kódvégrehajtás

Előzmény: Jimmy the Hand (15800)
Jimmy the Hand Creative Commons License 2011.08.10 0 0 15800

Nem biztos, hogy jól értem a kérdést, de ha igen, akkor a következő megoldást javaslom.

Ne az OnAction értékbe adjad be a paramétert, hanem magát a makrót írd meg úgy, hogy különböző dolgokat csináljon attól függően, hogy melyik képről indult.

 

Tehát pl. minden kép OnAction értéke a meret nevű makró, ami pedig így épül fel:

Sub meret()
    If TypeName(Application.Caller) = "String" Then
        Select Case Application.Caller
        Case "Kép 1"
            MsgBox "A 'Kép 1' objektumra kattintottál."
        Case "Kép 2"
            MsgBox "A 'Kép 2' objektumra kattintottál."
        Case "Szövegdoboz 3"
            MsgBox "A 'Szövegdoboz 3' objektumra kattintottál."
        End Select
    End If
End Sub

Itt tehát az Application.Caller tartalmazza annak az objektumnak a nevét, amelyről a kórvégrehajtás indult.

 

 

Előzmény: magyarpityu (15799)
magyarpityu Creative Commons License 2011.08.10 0 0 15799

Az ID azonosítók mentés, kilépés, újra megnyitás után változnak (de természetesen továbbra is egyediek maradnak), úgyhogy másként kell azonosítani az eseményt kiváltó objektumot. Így aztán most már két kérdésben kérek tőletek segítséget!

 

1. Hogyan lehet (pl. Shape objektum) OnAction eseménykezelőjébe olyan makróhivatkozást megadni, ami paramétereket is át tud adni a meghívott makrónak?

 

2. Hogyan lehet azonosítani azt az elemet, ami kiváltott az OnAction hatására a makróhívást?

 

Illetve talán rosszul közelítek a kérdéshez. Hogyan oldható meg, hogy egy képre kattintva elinduljon egy makró, ami ezt a képet (csak ezt, a többit nem) módosítja?

Előzmény: magyarpityu (15798)
magyarpityu Creative Commons License 2011.08.10 0 0 15798

Sziasztok!

 

Egy dologban szeretném a segítségeteket kérni! Makróval képeket szúrok be egy munkalapra, és azt szeretném, hogy a képre kattintva elinduljon egy makró.

 

Addig rendben, hogy a kép 'Shape' típusú objektum, és az 'OnAction' tulajdonságát beállítom a meghívandó makró nevére, de hogyan adok át paramétert a makrónak? Paraméterek nélkül valóban meghívódik a makró a képre kattintva, de át szeretném adni paraméterként, hogy melyik képre kattintva hívódott meg a makró! Arra gondolok, hogy a meghívandó makró várna egy Long típusú értéket, ami az egérkattintás eseményt kiváltó Shape objektum ID azonosítója lenne. Így próbáltam:

 

Dim abra as Shape

Set abra = Munlalap.Shapes.AddPicture(FileNev, msoTrue, msoTrue, Xpos, Ypos, pWidth, pHeight)

abra.OnAction = "meret(" & abra.ID & ")"

 

Az 'abra' objektum 'OnAction' tulajdonsága valóban felveszi pl. a "meret(12)" stringet, de rákattintva az ábrára hibaüzenetet kapok: "A(z) meret(12) makró nem futtatható. Lehetséges, hogy a makró nem érhető el a munkafüzetben, vagy le van tiltva az összes makró." Viszont a 'meret' makrót Excelből elindítva rendben lefut. Kipróbáltam:

 

sub tesztel()

meret 12

end sub

 

így működik.

 

Mi lehet a hiba? Hogyan lehet ezt megoldani?

tt65 Creative Commons License 2011.08.10 0 0 15797

köszi, valóban  3x(18+1)=57, most már értem honnan a misztikus szám! :-)

Előzmény: Sztai (15794)
Jimmy the Hand Creative Commons License 2011.08.10 0 0 15796

Az Outlook a csatolmányokat belementi az email-be.

Amikor a mellékletet megnyitos, bemásolódik egy temporary mappába, és a továbbiakban az összes mentés, automentés itt rögzül. Aztán amikor be akarod zárni az emailt, az Outlook megkérdezi, hogy mentse-e a változásokat. És ha azt mondod, hogy igen, akkor a temp mappából az email obektumba beágyazódik a csatolt fájl utolsó verziója, és az egész együtt elmentődik vagy az exchange szerverre, vagy a lokális pst fájlba. Mivel elvileg ez (tehát az email + a beágyazott csatolt fájl) a végtermék, és minden egyéb csak munkaverzió, az ideiglenes fájlokra nincs szükség, tehát fölösleges őket az asztalra, vagy egyéb frekventált helyre másolni/menteni. Legalábbis valami ilyesmi lehet az ideológia mögötte.

 

Mindenesetre akár tetszik, akár nem, ehhez kell alkalmazkodni, ha Outlookot használ az ember. Fontos fájlok esetében érdemes rászokni arra, hogy mindenekelőtt lemented a mellékletet egy biztos helyre, és csak utána kezdesz dolgozni vele.

Előzmény: Qtyi (15793)
Sztai Creative Commons License 2011.08.10 0 0 15795

Milyen oprendszered van, milyen outlookod és exceled?

Előzmény: Qtyi (15775)
Sztai Creative Commons License 2011.08.10 0 0 15794

az 57 abból adódik, hogy a példában 18 ország volt, tehát az első 18 pontot kap, a második 17 stb. Ezt úgy számolom ki, hogy 18+1-helyezési sorszám. Mivel 3 csoportban értékelte őket:

n+1-ssz1+n+1-ssz2+n+1-ssz3=3*(n+1)-ssz1-ssz2-ssz3

a ssz-ot pedig a MATCH/HOL.VAN adja meg

Természetesen 57 helyett jobb megszámolni az elemszámot fv-nyel (3*(count(a:a)+1))

Üdv

 

Előzmény: tt65 (15774)
Qtyi Creative Commons License 2011.08.10 0 0 15793

Jimmy, hályog kovács, tt65,

 

Köszönöm a segítségeteket!

Sajnos egyik módszerrel sem sikerült elővarázsolni a file-t.

Emlékeztem, hogy valami T-vel kezdődő krix-krax-nevű könyvtárba "mentettem", de azt nem találtam meg (pedig volt vagy 40 könyvtár mindenféle kezdőbetűvel, és mindet végignéztem).

Viszont megtaláltam egy korábbi file-t, amivel szintén így jártam anno, úgyhogy segítségetek nem volt hiábavaló :)

 

Mégegyszer köszönöm!

 

(Pusztán csak elgondolkodás végett, vajon mire jók ezek a krixkrax nevű, elérhetetlen könyvtárak? Miért nem menti az Outlook valami normális helyre a file-okat alapból?... )

 

Előzmény: Jimmy the Hand (15776)
tt65 Creative Commons License 2011.08.10 0 0 15792

mail ment

Előzmény: Daniel Jonas (15791)
Daniel Jonas Creative Commons License 2011.08.10 0 0 15791

1 Ft = ~366 Euro (az én világomban Júniusi adatok)

             -18  Font

             60   Bura

             182 Dán Dáner

              80  Svéd Bróken

             476 Román Ún

stb.

Ha érdekel; van facebookod?

Mert ez nem ehhez a témához tartozik szerintem... :/

Előzmény: tt65 (15790)
tt65 Creative Commons License 2011.08.10 0 0 15790

egyik kevésnek tűnik, a másik sok, hogy kell értelmezni?

Előzmény: Daniel Jonas (15789)
Daniel Jonas Creative Commons License 2011.08.10 0 0 15789

0.30 Ft/lap (kb. 110 €)

Előzmény: tt65 (15787)
wawabagus Creative Commons License 2011.08.10 0 0 15788

Szia köszi,

Igen, valami olyasmi volt a parancs :-).

Ez lett a megoldás :-)

appexcel.ActiveWorkbook.SaveAs "D:ChannelKnowledge_MissingReports W" & wNum & ".xls"

 

Köszi!!!

 

Előzmény: Jimmy the Hand (15756)
tt65 Creative Commons License 2011.08.10 0 0 15787

OFF minden elsimerésem, ez nagyon jó dolog, igazán érdekes. Az ujságot hol lehet olvasni, előfizethető? :-)

Előzmény: Daniel Jonas (15786)
Daniel Jonas Creative Commons License 2011.08.10 0 0 15786

Hmm... Vajon ezt a szép témát ki hozta létre? :D

 

Amúgy azért használom gyakran, mert (nem muszáj kritizálni...) megterveztem a saját világom, országom, gazdasággal, domborzattal, valutákkal, stb. (köröbelül 2.-ikos kormoban kezdtem) és eleinte kézzel csináltam a dolgokat, de a micorosoft office sokszor nagyban megkönnyíti a dolgomat. A Publisherrel a 2havonta megjelenő újságokat gyártom (hogy később emlékezzek, hogy mi volt az országomban pl. 2010 Februárban, stb. Az excellel gyakran készítek hasonló táblázatokat, pl. az excelben vezetem a napi tőzsde-index grafikonomat is. A térképeket többnyire megcsinálom kézzel, de ma már (szerintem) elengedhetetlen a gépi formátum is, amit először paintal csinálok, majd a Publisherrel az átmásolt térképre ráírogatom az adatokat, neveket... Ezért van szükségem főleg erre a két office alkalmazásra :)

De jól esett ezt így leírni! :D

Még akkoris ha nem ebbe a topikba való... :)

Előzmény: tt65 (15784)
tt65 Creative Commons License 2011.08.10 0 0 15785

szivesen!

ez különösen tetszett: "elég rég használom az excelt bonyolultabb dolgokra is ... 15 éves létemre..."  :-)

Előzmény: Daniel Jonas (15783)
tt65 Creative Commons License 2011.08.10 0 0 15784
Előzmény: Qtyi (15775)
Daniel Jonas Creative Commons License 2011.08.10 0 0 15783

ÉS SIKER!

 

Most hogy látom, hogy ez egy ilyen jól működő fórum, szerintem gyakrabban fogok ide fordulni segítségért! ;)

Más fórumokon jó ha hetente egyszer néznek egy témát, de itt gyorsan és segítőkészen megkaptam a választ a részkérdéseimre is! :)

 

Köszönöm mindenkinek! :D

Üdv legközelebb!

tt65 Creative Commons License 2011.08.10 0 0 15782

Válassz fekvő elrendezést a nyomtatásnál :-)

segéd oszlopokat el is lehet rejteni ...

Előzmény: Daniel Jonas (15778)
Daniel Jonas Creative Commons License 2011.08.10 0 0 15781

Köszönöm! :)

Előzmény: Jimmy the Hand (15780)
Jimmy the Hand Creative Commons License 2011.08.10 0 0 15780

Az alábbi cseréket kell megoldanod, ha magyar Excel-t használsz:

MATCH helyett HOL.VAN

LARGE helyett NAGY

, helyett ;

 

 

Előzmény: Daniel Jonas (15778)
Daniel Jonas Creative Commons License 2011.08.10 0 0 15779

Képet nem kell újból gyártani, csak az előző leírásodat egy kissé érthetőbbé tenni számomra.. :)

Előzmény: Daniel Jonas (15778)
Daniel Jonas Creative Commons License 2011.08.10 0 0 15778

Tetszik az ötleted, én is pont így gondoltam (mármint a képet), csak nekem először is hibát ír ki, mert a vesszők nem tetszenek neki, aztán átírtam pontosvesszőre, mert gondoltam (lehet hogy rosszul) hogy az kell oda, aztán pedig még egy #NÉV? hibával is megdobott... Tudom hogy már hajnali négykor (!!!) ennyit vesződtél vele(m), de letudnád írni egy kicsit tagoltabban? :)

 

És köszönöm mindenkinek a segítséget az eddigiekért is! :)

 

tt65: Tetszik a válaszod, és egyszerűbbnek is tűnik, csak én szeretném kinyomtatni, és ez így már akkor is túl sok oszlop, ha minimálisra csökkentem az oszlopszélességet... De neked is nagyon köszönöm :)

Előzmény: Sztai (15773)
hályog kovács Creative Commons License 2011.08.10 0 0 15777

1. El tudom-e valahogy érni a file-t amin dolgoztam?


Szerintem ha tudod a fájl nevét akkor keress rá (Start>Keresés>Fájlok és mappák) akár *.xls-sel az összes excel fájlra. 

 

(Végülis lementettem a Temporary I. F-ba, de nem találok oda)

 

Vagy csak gondolod,hogy lementetted. Nem lehet, hogy Temp-ből csak olvasásra nyílik meg és ezért nem tudod menteni?

 

Gondolom levelezőfüggő, hogy hol van a Temp mappa. XP-Thunderbird5.0-nál C:Documents and settings<felhasználó>Local SettingsTemp útvonalon éred el.

 

XP-OE6-nál valahol itt:C:Documents and Settings<felhasználó>Local SettingsApplication DataIdentities{....}MicrosoftOutlook Express

 

Előzmény: Qtyi (15775)
Jimmy the Hand Creative Commons License 2011.08.10 0 0 15776

Feltételezem, hogy Outlook a levelezőprogramod. Az Outlook egy olyan rejtett mappába menti a mellékleteket, amit tudomásom szerint sehogy máshogy nem lehet megtalálni, csak az alábbi módon.

 

1. Nyisd meg az eredeti emailben az eredeti csatolmány excel fájlt!

2. Menüből válaszd a Fájl -> Mentés másként parancsot! Ekkor megjelenik a "Mentés másként" ablak, de NE kattints a mentésre!

3. Az ablakban megtalálod azt a bizonyos rejtett Outlook mappát. Keresd meg benne azt a fájlt, amelyet munka közben elmentettél! 

4. Ha megvan, kattints rá jobb gombbal, a helyi menüből válaszd a Másolás parancsot, majd Beillesztés valami jobban megközelíthető mappába.

5. A művelet tetszés szerint megismételhető más fájlokkal is.

 

 

 

Előzmény: Qtyi (15775)
Qtyi Creative Commons License 2011.08.10 0 0 15775

Kedves Szakértők,

 

Kérdeztem a Windows-os topicban is, de lehet, hogy inkáb itt tudjátok a választ. 

Segítséget szeretnék kérni.

Egy excel file-ban dolgoztam, melyet e-mailben kaptam, onnan nyitottam meg. Dolgoztam, dolgoztam, annyira, hogy elfelejtettem, hogy a munkám ilyenkor csak  Temporary Internet Files folder valamelyik krix-kraxos mappájában mentődik (ha mentődik).

 

Dolgoztam, dolgoztam, majd az 1-es munkalapot akartam másolni (duplikálni), sikerült is, de a Munkalap fülön a neve ".xls]Munka1" lett.

Egyszer már megkínlódtam azzal, amikor ezt át akartam írni valami normális névre, ezért gyorsan nyomtam egy mentést, - elfeldeve, hogy ilyenkor csak a Temporary I. F-ba mentem. De legalább nyomtam egyet.

Utána megpróbáltam átnevezni a munkalapot valami normálisabb névre, ami persze nem sikerült. Nem fogadott el semmilyen módosítást, hibajelzést dobott, és csak OK-zni hagyta, hogy ez így nem jó, és visszaugrasztott a Munkalap nevére, hogy írjam át valam elfogadhatóra. Ilyen azonban nem volt, még visszaállítani sem hagyta ".xls]Munka1"-re sem. Nem volt más lehetőségem, ki kellett lépjek az excelből, újabb mentés nélkül.

 

Kérdésem:

1. El tudom-e valahogy érni a file-t amin dolgoztam? (Végülis lementettem a Temporary I. F-ba, de nem találok oda)

2. Miért járatja a bolondját velem a Munkalapok elnevezésével az excel? Hogyan lehet egy ilyen helyzetből kikeveredni?

 

Előre is köszönöm a segítségeteket.

tt65 Creative Commons License 2011.08.10 0 0 15774

sztem érthető. annyi, hogy itt más az algoritmus annyiban, hogy nem 200 a versenyzők száma.

az "57" mibenlétére még ilyen hajnalban nem sikerül rájönnöm :-)

Előzmény: Sztai (15773)
Sztai Creative Commons License 2011.08.10 0 0 15773

egy másik megoldás:

1. A B oszlopban található országokhoz tartozó összpontszám meghatározása: 

F4=57-MATCH(B4,$B$4:$B$21,0)-MATCH(B4,$C$4:$C$21,0)-MATCH(B4,$D$4:$D$21,0)

(a pontszám az elemszám+1-sorrszám, összpontszám=(n+1)*3-ssz1-ssz2-ssz3)

2. Összesített helyezési lista az F oszlop pontszámai és a B oszlop nevei alapján:

E4=INDEX($B$4:$B$21,MATCH(LARGE($F$4:$F$21,A4),$F$4:$F$21,0))

(azonos pontszám esetén mindíg az elsőt írja ki. Ez a probléma is megoldható, de most erre nem térnék ki)

Remélem érthető

Üdv

Előzmény: Daniel Jonas (15759)
tt65 Creative Commons License 2011.08.09 0 0 15772

egy megoldás:

ahol:

F2: =SZUMHATÖBB($E$2:E$201;C$2:C$201;B2)

G2: =SZUMHATÖBB($E$2:E$201;D$2:D$201;B2)

M2: =NAGY($J$2:$J$201;SOR()-1)

P2: =FKERES(M2;$J$2:$K$201;2;0)

 

 

Előzmény: Daniel Jonas (15771)
Daniel Jonas Creative Commons License 2011.08.09 0 0 15771

Igen, csakhogy én függvénnyel szeretném :)

 

Nem. Ez csak egy példa. Minden *ország* fog szerepelni mindhárom oszlopban. :)

Előzmény: hályog kovács (15770)
hályog kovács Creative Commons License 2011.08.09 0 0 15770

Én az egyes neveket végigkeresném a három oszlopban és a nevekhez tartozó helyezéseket adnám össze. Az így kapott összegek alapján rendezném sorba a végső listát, a legkisebb lesz az első. Egyenlőség esetén természetesen holtverseny van.

 

Azt, hogy beépített fv-kel hogyan oldható meg a feladat azt nehezen látom, de lehet, hogy ez csak az én tudásom korlátait mutatja. :-)

 

A valódi listád is olyan mint a képen lévő, hogy van név ami csak két oszlopban van ami csak egyben szerepel és egy név sem szerepel mindháromban? Vagy minden név szerepel mindhárom oszlopban csak a példa egy kicsit pontatlan?

Előzmény: Daniel Jonas (15757)
Daniel Jonas Creative Commons License 2011.08.09 0 0 15769

Köszi! :)

 

Tehát akkor már (valaki... :) el tuja mondani (írni), hogy mit csináljak? :)

(Most hogy az algoritmus megvan :D )

Előzmény: tt65 (15768)
tt65 Creative Commons License 2011.08.09 0 0 15768

Üdvözlünk fiatal barátunk! :-) Az algoritmus, az amire gondoltál, a szabály, ami meghatározza,hogy a befutás sorrendjében ki hány pontot kap. Ez nem exceles dolog, hanem a játékhoz tartozik. Ilyen van a forma1- ben is pl. 

Ha a szabály megvan, akkor már csak számolni kell vele excelben és meghatározni az összesített eredményt. 

Az jó ha magadtól jössz rá sok mindenre, mert az tartós, fejleszti az elmét, de érdemes néha kérdezni is, mert az sokat rövidít, és nem biztos, hogy mindenre neked kell rájönni! :-)

Előzmény: Daniel Jonas (15766)
Daniel Jonas Creative Commons License 2011.08.09 0 0 15767

Bár szerintem erre gondoltál mert kezd beugrani hogy miaz, csak lehet hogy keverem a logaritmussal... :)

Daniel Jonas Creative Commons License 2011.08.09 0 0 15766

Boccs hogy sokára írtam, csak nem ültem egész nap itt :) Sajnálom, de annyira azért sajnos még nem értek az excelhez, hogy értsem, hogy mit jelent az algoritmus, de ha erre gondolsz:

úgy gondoltam, hogy a 200 értéket tartalmazó oszlopokban az első helyen álló "kap 200-at, utána lévő 199-et", stb.

 

Boccs ha nem erre gondoltál, elég rég használom az excelt bonyolultabb dolgokra is, de magamtól szoktam rájönni a dolgokra, és ezért az idegen szavak értelmezése kimaradt... :/

 

Ha illene tudnom, mi az (15 éves létemre) akkor is bocsi :|

Előzmény: Jimmy the Hand (15760)
hályog kovács Creative Commons License 2011.08.09 0 0 15764

"Ez volt a precíz kifejezés." :-)

 

Ez a vicc jut róla eszembe:

 

http://www.nevetseges.hu/index.php?menu=kereses

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

Lehet még így is, ami mindenhol működik:

 

listavege = Range("F" & Rows.Count).End(xlUp).Row 'sorok száma az F oszlop értékei alapján

Előzmény: hályog kovács (15762)
hályog kovács Creative Commons License 2011.08.09 0 0 15762

Ja és még valami. Ez a sor:

 

listavege = Range("F1048576").End(xlUp).Row

 

Excel2007-2010-ben működik. Excel2003 és régebbi verziók esetén így néz ki:

 

listavege = Range("F65536").End(xlUp).Row

Előzmény: hályog kovács (15761)
hályog kovács Creative Commons License 2011.08.09 0 0 15761

Ha még aktuális a kérdésed akkor lehet  ez egy megoldás. Lehet, hogy nem lesz mintapélda egyetemi programozás jegyzetekben de működik:

 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim listavege As Long
listavege = Range("F1048576").End(xlUp).Row
    If Target.Row = 5 And Target.Column = 4 Then
        valasz = MsgBox("Az adatok be fognak kerülni a gyűjtőlistába." & Chr(10) & _"Folytatja?", vbYesNo)
        If valasz = vbNo Then Exit Sub
            Range("F" & listavege + 1).Value = Range("D5").Value
            Range("G" & listavege + 1).Value = Range("D8").Value
    End If
End Sub

 

A munkalap Change eseményéhez van rendelve és annyit tud, hogy ha a D5-ös cellának megváltoztatod az értékét akkor felugrik egy MsgBox és rákérdez, hogy akarod-e hozzáadni a listához D5, D8 cellák értékét. "Igen" esetén beírja az értékeket a következő üres sorba "Nem" esetén pedig kilép.

Előzmény: adimania (15740)
Jimmy the Hand Creative Commons License 2011.08.09 0 0 15760

A pontozás algoritmusa megvan? Ha megvan, akkor tedd közzé, mert anélkül nem lehet rá képletet írni.

Vagy éppen az algoritmust kellene kitalálni?

Előzmény: Daniel Jonas (15757)
Daniel Jonas Creative Commons License 2011.08.09 0 0 15759

Na talán itt :)

Daniel Jonas Creative Commons License 2011.08.09 0 0 15758

Bocsi, a képet nem tudom hová tette... de majd csinálok vmit, idelinkelem, vagy ilyesmi... :) De aki érti így is az írhat! :)

Daniel Jonas Creative Commons License 2011.08.09 0 0 15757

Üdv!

 

Lenne egy érdekes problémám, ami lehet hogy valójában könnyedén megoldható, de nekem mégsem az...

 

Van egy táblázatom (a képen: a példákat egyenlőre csak beírtam...) ahol van 4 oszlop. Ezekben az oszlopokban sorrendeket fogok állítani fentről lefelé; elsőtől az utolsóig haladva. A negyedik oszlopba azt szeretném, ha az excel egy függvénnyel, amit végighúzhatok az oszlopon, összesítené az előző három oszlopban található tulajdonneveket egy végső sorrendbe.

Például, ha a "példa 1" mindháromszor első, akkor ő kerüljön az első helyre, ha meg például kétszer második, és egyszer első, és a "példa 2" kétszer első és egyszer második, akkor a "példa 2" legyen az első és a "példa 1" pedig a második, és így tovább...

 

Viszont így az a probléma is felmerülhet, hogy valamelyik név ugyanannyi "pontot" kap, azaz ugyanott végez, hogy azzal mit fog csinálni...

 

Kérlek segítsen aki tud!

 

Előre is köszönöm! :)

Jimmy the Hand Creative Commons License 2011.08.09 0 0 15756

Ha Access-ből fel tudod tölteni adatokkal azt a munkafüzetet, akkor  menteni is tudni kellene, mert tök egyszerű.

Mi a gondod vele?

Gondolom, van valami ilyesmid:

 

Dim WB As Excel.Workbook

 

Aztán beleteszed az adatokat, aztán már csak ennyi kell:

 

WB.Save

vagy

WB.SaveAs (Filename:="akármi.xls")

Előzmény: wawabagus (15755)
wawabagus Creative Commons License 2011.08.09 0 0 15755

Sziasztok!

Kellene egy kis segítség.

 

Van egy exceles template, ami accessból egy access-es makróval frissül automatikusan.

 

Annyit szeretnék hozzátenni a dologhoz, hogy weeknum hozzátételével el is mentődjön a fájl.

 

Variációs megoldások:

1. access megnyitja a templétet és ott egy macro gombbal, futtatom le a mentő makrót és a gombnak meg törölődnie kéne.

Itt leregadtam, hogy hogyan tudok egy gombot törölni...??? Próbáltam felvenni, de nem vett fel semmit :-(.

 

2. az is megoldás lehetne, hogy accessből frissül a template, és onnan menti le weeknum-mal...de ebben a megoldáson itt ragadtam le...:-(

 

Van valami ötletetek?

 

Köszi szépen előre is!!!

 

 

 

wawabagus Creative Commons License 2011.08.09 0 0 15754

Szia!

Tök igazad van :-), a sablonmunkafüzet másolása egy tökéletes megoldás :-)!

Köszi!

Előzmény: Jimmy the Hand (15750)
wawabagus Creative Commons License 2011.08.09 0 0 15753

Köszönöm :-)!

Előzmény: Törölt nick (15747)
Jimmy the Hand Creative Commons License 2011.08.09 0 0 15752

Vagy ha van a References között valami extra cucc, nem árt ellenőrizni, hogy minden gépen telepítve és csatolva van-e.

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

én még ezeklet megpróbálnám:

office frissítés, windows frissítés

Előzmény: Gavriel (15746)
Jimmy the Hand Creative Commons License 2011.08.08 0 0 15750

Ha készítesz egy sablon munkafüzetet, amiben a megfelelő számú munkalap van, akkor azt egy utasítással le lehet másolni, és így kvázi létrehozni az új munkafüzetet.

Ha Workbooks.Add metódust akarsz, akkor még legalább egy lépés, hogy elmented más néven (így tudsz neki nevet adni), és több lépés, hogy új munkalapokat szúrj be. Ezek szerintem nem elkerülhetők. Lásd Boraka kódját.

Előzmény: wawabagus (15739)
tt65 Creative Commons License 2011.08.08 0 0 15749

valami ilyesmi:

Előzmény: adimania (15744)
tt65 Creative Commons License 2011.08.08 0 0 15748

ha jól értettem és csak a mennyiség változik, akkor egyváltozós adatábláról beszélünk

lsd: http://office.microsoft.com/hu-hu/excel-help/egyvaltozos-adattabla-keszitese-HP005199545.aspx

 

ha az egységár is változik, akkor kétváltozós adattábla forog fenn:

http://office.microsoft.com/hu-hu/excel-help/ketvaltozos-adattabla-keszitese-HP005199586.aspx

 

ha ettől is több a változó, akkor esetekről van szó:

http://office.microsoft.com/hu-hu/excel-help/valtas-ertekkeszletek-kozott-esetek-hasznalataval-HP010072669.aspx

Előzmény: adimania (15744)
Törölt nick Creative Commons License 2011.08.08 0 0 15747

Valami hasonlóra gondoltál?

 

Sub UjMunkafuzet()
Dim MunkaLapokSzamaMost As Long
Dim MunkaLapokSzama As Long
Dim MentesHelye As String
Dim MentesNeve As String

 

  MentesHelye = "C:\mappaneve\"
  MentesNeve = "munkafuzetneve.xls"
  MunkaLapokSzama = 5

 

 With Application
    MunkaLapokSzamaMost = .SheetsInNewWorkbook
    .SheetsInNewWorkbook = MunkaLapokSzama
  End With
 
  Workbooks.Add
  ActiveWorkbook.SaveAs Filename:=MentesHelye & MentesNeve
 
  Application.SheetsInNewWorkbook = MunkaLapokSzamaMost
 
End Sub

 

Előzmény: wawabagus (15739)
adimania Creative Commons License 2011.08.08 0 0 15745

Valamiért nem működik a dolog a képfeltöltéssel kapcsolatban, úgyhogy itt tudjátok elérni:

http://www.megaupload.com/?d=GXY9CLPG

Előzmény: adimania (15744)
adimania Creative Commons License 2011.08.08 0 0 15744

Ezt részletezd kérlek, ha nem jelent túl nagy vesződséget!

Köszönöm előre is!

Előzmény: tt65 (15742)
tt65 Creative Commons License 2011.08.08 0 0 15743

inkább illeszd be ide, mert tűzfal mögül nem minden látszik ...

Előzmény: adimania (15741)
tt65 Creative Commons License 2011.08.08 0 0 15742

esetvizsgáló, esetkimutatás, adattábla a te barátod!

Előzmény: adimania (15740)
adimania Creative Commons License 2011.08.08 0 0 15741

Az előbb valmiért nem csatolta a képet, legalábbis én nem látom, úgyhogy feltöltöttem ide:

http://kepfeltoltes.hu/view/110808/probl_ma_www.kepfeltoltes.hu_.jpg

adimania Creative Commons License 2011.08.08 0 0 15740

Sziasztok!

Egy szerintem általatok rutinműveletnek tűnő, ám számomra annál sürgősebb probléma kapcsán fordulok hozzátok.

Mivel a komplett problémát nehézkes lenne írásban magyarázni, ezért egy egyszerű iskolapéldán keresztül szemléltetem, mellékelten pedig csapolok egy képet is:

------------------------------------------------------------------

Van egy adatsorom amelyben az alábbi inputok (tetszőlegesen megadható) és output (számolt érték) vannak:

 

INPUT
Gyümölcs mennyisége (kg): "beadható érték"
Gyümölcs kilónkénti ára (ft/kg): "beadható érték"


OUTPUT
Fizetendő összeg (ft): "számolt érték"

Eddig ugye semmi probléma, a számítás egyszerű függvénnyel megoldható.

Én viszont azt szeretném, hogy egy külön táblázatban egymás alá gyűjtse a fizetendő összegeket, hogyha én változtatok a gyümölcs mennyiségén az input cellában. Valahogy így:

x kg gyümölcs - "x kg gyümölcs esetén számolt összeg"
y kg gyümölcs - "y kg gyümölcs esetén számolt összeg"
z kg gyümölcs - "z kg gyümölcs esetén számolt összeg"
stb...

------------------------------------------------------------------

- Én olyasmin gondolkodtam, hogy be kellene vonni az accest majd az ott kapott adatbázist visszaimportálni excelbe. Ez akkor lenne az ideális ha automatikusan történne. Accesben viszont nem vagyok otthon kb semennyire, de ha elmondjátok hogyan kell, meg tudom csinálni.

- Az is elképzelhető, hogy makrót kell írni, de ott is hasonló a helyzet.

Éppen ezért arra kérlek benneteket, hogy a lehető legegszerűbb megoldást mondjátok nekem, ami persze neketek is kevesebb vesződséggel jár.

Előre is köszönöm szépen a segítségeteket!

wawabagus Creative Commons License 2011.08.08 0 0 15739

Sziasztok!

 

Meg lehet nyitni VBA-ból egy tök új munkafüzetet adott számű sheettel és egyben el is nevezni?

Workbooks.add és utána valahogy ezt a 2 db dolgot be lehet szúrni egyszerre?

 

Vagy több lépésre van szülség?

 

Úgy rémlik már mintha egyszer említettétek vona, ezt a darab dolgot, de sehol sem találom.

 

Köszönöm a segítséget!!

Yo

SQLkerdes Creative Commons License 2011.08.07 0 0 15738

Alapvetően ugyanúgy közelíteném meg, mint Lucky problémáját:

- előállítanék egy számsort, ami vagy nullákat vagy a pozitiv ügyfélszámok esetén a sorok számát tartalmazza (pld. (a2:a500>0)*row(a2:a500))

- a SMALL függvénnyel sorra előszedném ennek a fenti számsornak a darabjait, oly módon, hgoy a cél cella sorának száma határozza meg,hogy hanyadik SMALL-t keressük.

 

Az INDIRECT tuti működik ezzel a technikával.  Sajnos az OFFSET nem, mert a SMALL/LARGE egy 1*1-es tömböt ad vissza és az OFFSET visszaköpi a tömb bemenő adatokat.

Előzmény: kovacsmiklos1985 (15737)
kovacsmiklos1985 Creative Commons License 2011.08.07 0 0 15737

Sziasztok!

 

Egy kis segítséget szeretnék kérni tőletek, hogy ti hogyan bírkóznátok meg ezzel a feladattal.

 

Van egy oszlop, amelybe alap esetben pozitív előjelű ügyfélszámokat jegyzek be, hogyha mondjuk eladok az ügyfél részére egy terméket.

Azokban az esetekben, amikor nem eladok nekik, hanem bármely más munkát csinálok (pl.: információadás) velük, abban az esetben mínuszos (-) ügyfélszámot jegyzek a cellába, vagy üresen hagyom azt.

 

A kérdésem az lenne, hogy hogyan lehet megoldani azt, hogy egy másik munkalapon ki legyen listázva az oszlop azon cellái, amelyekben a pozitív számok voltak beírva (sorkihagyás nélkül, tehát nem szűrős megoldással, hanem valami listázás félével).

Mellékeltem egy képet, hogy az oszlop tartalom hogy néz ki, és ezek közül kellenének külön listába azok a sorok, amelyekbe pozitív számok vannak.

 

Segítségeteket előre is köszönöm!

 

Miki

luckeEEEr Creative Commons License 2011.08.07 0 0 15736

Igazad van, végül csak megoldottam magamtól ilyen nyögve nyelős módszerrel, de ezt legalább el tudom magyarázni. Köszi a megoldást, azt is áttanulmányozom hogyan működik!

Előzmény: SQLkerdes (15735)
SQLkerdes Creative Commons License 2011.08.07 0 0 15735

Alapvetések:

- adatok az A-C oszlopig (ebben a példában a2:c6-ig, javitsd kreativan)

- keresendő adat a D2 cellában

- találat az E:G oszlopokban

 

Teendő:

E2-be írd be a következőt

=IFERROR(INDIRECT("A"&LARGE(IF($A$2:$C$6=$D$2,ROW($A$2:$C$6),""),ROW(A2)-1)),"")

 

F2-be a következőt:

=IFERROR(INDIRECT("b"&LARGE(IF($A$2:$C$6=$D$2,ROW($A$2:$C$6),""),ROW(B2)-1)),"")

 

G2-be a következőt:

=IFERROR(INDIRECT("C"&LARGE(IF($A$2:$C$6=$D$2,ROW($A$2:$C$6),""),ROW(C2)-1)),"")

 

MINDEGYIK fenti cellát Ctrl+Shift+Enterrel kell lezárni (kapcsoszárójelbe kerül a függvény).

 

Ezután, ha tudod mennyi lehet a maximális találatok száma, akkor annyiszor másolod lefele copy-paste-tel a képleteket, ha nem tudod mennyi a maximális találat, akkor az 500.-sorig (mert ugye max 500 találat lehet egy 500 soros táblázatban.

 

Ha xl2007 előtti exceled van akkor az IFERROR nem fog működni, ISERROR a megoldás.

 

Ne tarts olyanból előadást, amihez nem értesz, mert csúnyán rá lehet égni

Előzmény: luckeEEEr (15734)
luckeEEEr Creative Commons License 2011.08.07 0 0 15734

Köszönöm. Így tényleg működik, a duplikációsat nem próbáltam erre a verzióra előzőleg. Azt hogyan lehetne megoldani, hogy a 3 segédoszlopból a találatokat egy kupacba gyűjtse ki, hogy ne kelljen nekem külön kikeresni?

Előzmény: Delila10 (15733)
Delila10 Creative Commons License 2011.08.06 0 0 15733

A variáció előtt mindhárom oszlopban csakis egyszer fordulhatott elő egy-egy adat.

 

A mostanihoz vagy makró kell, vagy 3 segédoszlop. Nézd meg a 15626-os, és 15629-es hozzászólásokat, vagy várd meg SQL-t, ő ír egy szorzatösszeges, vagy egy istentudjami() függvényt.

Előzmény: luckeEEEr (15732)
luckeEEEr Creative Commons License 2011.08.06 0 0 15732

Kérlek segítsetek!!!

 

A múltkor segítettek páran megoldani nekem ezt a feladatot, de variálni kell egy kicsit rajta és hétfőn előadást kell belőle tartanom! Ezért nagyon sürgős lenne.

 

A lényeg az, hogy van egy 3 oszlopból álló Range-em (A2-től C500-ig).

Keresek egy adatot, amit F2-be írok be.

A feladat, hogy a függvény megkeresse az A2:C500 tartományban az F2-be beírt számot és kiírja annak a sornak a tartalmát, amelyik sor tartalmazza a keresett adatot.  Szóval ha a F2-be rögzített szám a B8-ban van, akkor írja ki az A8-at, a B8-at és a C8-at is.

Az F2-be beírt érték viszont több találatot is adhat! A kérdésem az, hogy hogyan szedem szét sorokra a találatokat?

Itt az általam eddig használt függvény, ami duplikáció esetén már nem jó:

 

=OFSZET(A1;SZUM(--(A2:C217=F2)*SOR(A2:C217))-1;0;1;3)

 

Aki elolvassa és tud segíteni, annak nagyon megköszönöm, mert ez fontos lenne!

pimre Creative Commons License 2011.08.06 0 0 15731

Időközben teszteltem a dolgot. A programhoz nem nyúltam, pusztán a munkalap nevét rövidítettem le. És így hibaüzenet nélkül lefutott a program. Tehát az .XValues = szöveg és hasonló értékadásnál a szöveg string hossza korlátozott. Valahol a 256 karakter környékén. 

Előzmény: pimre (15729)
magyarpityu Creative Commons License 2011.08.06 0 0 15730

Sziasztok!

 

Egy furcsa dolgot tapasztaltam, ebben szeretnék segítséget kérni!

 

Létrehoztam egy menürendszert, hogy a makróimat legördülő menüből hívhassam meg, és azt tapasztaltam, hogy a menüből meghívva a makrók bizonyos részei nem működnek! Az Excelből közvetlenül meghívva minden utasítás jól működik, de menüből elindítva a makrót nem működnek ezek a sorok, és hibaüzenet sincs!

 

Ilyenek nem működnek ('Data' egy Worksheet objektum):

 

Data.Cells.ClearContents

 

Dim LastRow As Long
LastRow = Data.Cells.SpecialCells(xlLastCell).Row

 

de különben így sem jó:

LastRow = Data.Cells(1, 1).SpecialCells(xlLastCell).Row

 

ez utóbbi azért különös, mert így viszont már jó eredményt ad:

LastRow = Data.Cells(1, 1).End(xlDown).Row

 

(De mi van, ha nem az első oszlop utolsó elemének helye kellene, hanem a munkalap legalsó cellájának sorindexe?)

 

Menüből hívva csak az utolsó sor ad vissza helyes értéket, míg a makrókat simán az Excelből indítva mind jó értéket ad vissza. Mi lehet ennek az oka, és mit lehet tenni? Előre is köszönöm a segítséget!

pimre Creative Commons License 2011.08.06 0 0 15729

Bocs, hogy túl sokat kérdezek, de találtam valamit. A tegnapi problémám az aposztrof használatával megoldódott. Ma meg is írtam a programot, ami gyönyörűen összefűzi a tengelyek megadásához szükséges stringet, és rajzolja is a grafikonokat.

 

Ámde: Az egyik adatsoromnál, ahol nagyon szétszórtak voltak az adatok, egyszer csak kiakadt. Hosszas töprengés után azt találtam, hogy nem szintaktikai a probléma, hanem az összefűzött parancsstring hossza meghaladta a 256 karaktert, és erre kezdtem gyanakodni. Ki akartam próbálni a makró fényképezés módszerével, hogy ők hogy oldják meg, de azt találtam, hogy kézből kijelölgetve az adatokat, egy bizonyos pont után meglehetősen udvariatlanul, se szó se beszéd, félbehagyja a munkát, és törli az addigi kijelöléseket.

 

Lehetséges, hogy van egy olyan határ, hogy a parancssor hossza nem haladhatja meg a 256 karektert?

 

Előzmény: Delila10 (15666)
Beugró lány Creative Commons License 2011.08.05 0 0 15728

Köszönöm a segítségeteket!

 

pimre Creative Commons License 2011.08.05 0 0 15727

Tulajdonképpen ehhez hasonlót kapok, csak fekete-fehérben, ha a diagram főlé állva az egér jobb gombjával a forrásadatra kattintok. Csak míg ez következetes, addig a diagramra kattintva nem az. 

Előzmény: pimre (15726)
pimre Creative Commons License 2011.08.05 0 0 15726

Sziasztok, meg tudja valaki mondani, hogy az mitől függ, hogy egy elkészült diagramra kattintva az Excel megjelöli-e (lila és kék színekkel bekeretezi) azt az adattartományt, amiből a diagram készült.

 

Nekem egyetlen munkafüzet egyes munkalapjain másképp viselkedik. Egyiken bejelöli, a másikon nem. Szeretném egységesen kezelni őket, de nem tudok rájönni, hogy mitől van a különbség. 

Delila10 Creative Commons License 2011.08.05 0 0 15725

Azt nem figyeltem, hogy 2003-asról van szó. Azzal nem is volt probléma, csak a két újabbal.

A Te kedvedért tettem ki a képet erről a 15717-es hozzászólásban.

Előzmény: SQLkerdes (15724)
SQLkerdes Creative Commons License 2011.08.05 0 0 15724

Ha követed a linket látod, hogy xl2003-ról szól.

2007-ben képtelen voltam előhozni ezt a fícsört.

Előzmény: Delila10 (15723)
Delila10 Creative Commons License 2011.08.05 0 0 15723

Nálad megjelent a tételek elrejtését kínáló doboz? Nálam nem.

Előzmény: SQLkerdes (15722)
SQLkerdes Creative Commons License 2011.08.05 0 0 15722

http://office.microsoft.com/en-us/excel-help/display-or-hide-items-in-a-pivottable-or-pivotchart-field-HP005199384.aspx

 

"Hiding an item in a row field  or column field  removes it from the report, but the item still appears in the dropdown list for the field. Hiding an item in a page field  removes it both from the report and from the dropdown list for the field."

 

Szóval csak a page field-ekkel műxik ez.

 

  1. Double-click the page field.
  2. If the Hide items box is present, select each item that you want to hide, and clear the selection from each item that you want to show.

If the Hide items box is missing, your source data  always lists all available items in the dropdown list for the page field.

 

Előzmény: Delila10 (15721)
Delila10 Creative Commons License 2011.08.05 0 0 15721

A 2010-es sem tudja. :(

Előzmény: Beugró lány (15720)
Beugró lány Creative Commons License 2011.08.05 0 0 15720

Köszönöm, pont erre gondoltam!

 

A 2010-es verzióban esetleg?

Előzmény: Delila10 (15717)
Delila10 Creative Commons License 2011.08.05 0 0 15719

Elnézést, két ilyen makró volt, és nem azt tettem ki, amelyiket kipróbáltam, és jól működött. Itt az igazi.

 

Sub DeleteOldItemsWB()
    Dim ws As Worksheet
    Dim pt As PivotTable
    Dim pf As PivotField
    Dim pi As PivotItem
    
    On Error Resume Next
    For Each ws In ActiveWorkbook.Worksheets
        For Each pt In ws.PivotTables
            pt.RefreshTable
            pt.ManualUpdate = True
            For Each pf In pt.VisibleFields
                If pf.Name <> "Data" Then
                    For Each pi In pf.PivotItems
                        If pi.RecordCount = 0 And Not pi.IsCalculated Then pi.Delete
                    Next pi
                End If
            Next pf
            pt.ManualUpdate = False
            pt.RefreshTable
        Next pt
    Next ws
End Sub

Előzmény: Delila10 (15718)
Delila10 Creative Commons License 2011.08.05 0 0 15718

Kimutatásokról és felesleges adatokról volt itt szó.

 

Nem tudom, a 2007-es verzióra is jellemző-e, hogy azokat a tételeket is mutatja a szűrőkben, amiket már töröltünk a tartományból, de a kimutatás nem felejt. A 2003-as verzióra még igaz.

 

Valahonnan kaptam egykor egy "szellemírtó"-t, ami ezt a hibát megszünteti. Közre adom, biztosan jó hasznát veszi, akinek ilyen gondja van.

 

Sub RemoveGhostPivotItems()
    Dim ghost As PivotItem
    Dim pt As PivotTable
     
    Set pt = ActiveSheet.PivotTables(1)
    pt.ManualUpdate = True
     
    For i = 1 To pt.PivotFields(i).PivotItems
        On Error Resume Next
        For Each ghost In pt.PivotFields(i).PivotItems
            ghost.Delete
        Next ghost
    Next i
     
    pt.ManualUpdate = False
End Sub

Delila10 Creative Commons License 2011.08.05 0 0 15717

Kép a 2003-as verzióból.

 

 

 

A bekarikázott mezőben elrejti azokat, akiket nem akar látni a kimutatásban. Ezután a foglalkozás legördülője csak a megmaradt tételekhez tartozó értékeket mutatja, ill. ezek további szűrését engedélyezi.

Ez az opció nem található meg a 2007-ben.

 

 

Előzmény: SQLkerdes (15703)
tt65 Creative Commons License 2011.08.05 0 0 15716

örülök neki, sok van mit érdemes tudni!

Előzmény: Beugró lány (15713)
luckeEEEr Creative Commons License 2011.08.05 0 0 15714

Hello!

 

Megint módosították az elvárásokat a táblázatommal kapcsolatban. Így már több találatot is ad a függvény, tehát sorokra is szét kellene szedni. Azt mondtad index függvénnyel lehet megoldani. Kérdésem, hogy hogyan?

 

=OFSZET(A1;SZUM(--(A2:C500=F2)*SOR(A2:C500))-1;0;1;3)

 

Köszönöm a segítséget!

Előzmény: SQLkerdes (15633)
Beugró lány Creative Commons License 2011.08.05 0 0 15713

Képzeld! Most meg tudtam oldani valamit, azzal amit tegnap este mutattál a nyilakkal! Köszi!!!! :)

Előzmény: tt65 (15706)
Beugró lány Creative Commons License 2011.08.05 0 0 15710

Tényleg! A 2010-et nézted már?

Előzmény: Beugró lány (15709)
Beugró lány Creative Commons License 2011.08.05 0 0 15709

Ebből az adatbázisból kell minden hónapban egy statisztikát készítenem, ami biztosan halál egysezrű lehet annak aki virtuóz a Kimutatásokban. Nekem nagyon neki kell feküdnöm, hogy ez menjen. S persze, ha kész a táblázat, akkor már automatizmus lesz a munka a továbbiakban.

Előzmény: tt65 (15706)
Beugró lány Creative Commons License 2011.08.05 0 0 15708

Ma reggel megnyitottam a bázisomat egy régebbi verzióban.  Ott készítettem egyszerűen egy Print Screen -t, hogy meg tudjam nektek, mi is a probléma.

 

De megint az adatok bizalmassága miatt nem szeretném idemásolni.

 

Tehát, ha rákattintottam 2x a "Név" tartalmú, a mostani verióban a Jelentésszűrők között lévő mezőre, akkor a régi verzióban felugrott egy "Kimutatásmező" ablak, aminek a tartalma és funkciója hasonló, minta mostani "Mezőbeállítások"-nak. Kivéve azt az egy plusz funkciót, ami a régiben még legalul "Tételek elrejtése" címmel felsorolta az összes nevet, s itt kijelölhettem, hogy melyik nevet akarom látni, ha legördítem a nevek mellett található "fekete háromszöget" :)

 

Már kezdem elfogadni, hogy az új verzóban nem fogom tudni ezt beállítani, s talán tovább kellene lépnem :(((

 

Azt is látom, hgy Ti itt már nagyon régen, évekkel ezelőtt használtátok csak a 2003-at, s balgaság Tőletek olyat kérni, hogy emlékezzetek valami ilyesmire.

 

 

Előzmény: SQLkerdes (15703)
tt65 Creative Commons License 2011.08.05 0 0 15706

Elvileg a pivot tables opcióknál, de én is elbizonytalanodtam, az előző hozzászóló intelmei miatt.

Esetleg nem tudod, az új összetettebb feladat miatt ezt lepasszolni? :-)

Előzmény: Beugró lány (15705)
Beugró lány Creative Commons License 2011.08.05 0 0 15705

Tudom, hogy Ti ezen a nyelven kommunikáltok, de lefordítanád (persze csak ha lehet), hogyan találom meg ezeket a lépéseket?

 

Ma megtiszteltek egy sokkal összetettebb feladattal is! Már nem volta annyira őszinte a mosolyom.

Előzmény: tt65 (15701)
SQLkerdes Creative Commons License 2011.08.05 0 0 15704

Azt hiszem sikerült reprodukálnom a problémát.

Nincsenek jó híreim, ezt a dolgot már én is észrevettem (csak nem Pivot-oknál, hanem táblázatok szűrésénél) és nem tűnik úgy hogy van megoldás.

A jó hír, hogy xl2010-ben már mintha másként lenne.

Előzmény: SQLkerdes (15703)
SQLkerdes Creative Commons License 2011.08.05 0 0 15703

Szerintem nem.  Amit te mondasz, csak "megtöri" a page filed oszlopokat.  Egyébként sincs az az érzésem, hogy Lány a page field-ekről beszélt.

Én restelkedve de bevallom, hogy még mindíg nem értem a kérdést.  Lány egyszer azt mondja, csak x darabot akar látni, egy másik hozzászólásban (nevekkel és szinekkel) azt mondja, hogy ha a szinek között kiválasztotta a sárgát, akkor csak a sárga játékok nevét akarja látni a Név oszlop szűrőjében (vagyis kumulativ szűrést akar csinálni).

Ha csak pld 10 darabot akar látni a több mint 60 (játék) nevéből, akkor hogy választja ki melyik 10-et?  Erre írtam, hogy írja le, hogy hogy csinálja.

Lány, tedd már meg, hogy egy kicsit részletesebben elmagyarázod a problémát.

Screenshot-ok sokat segítenének, főleg egy 2003-as excelből, ahol műxik a dolog.

Előzmény: tt65 (15701)
Jimmy the Hand Creative Commons License 2011.08.05 0 0 15702

Private Sub TextBox1_AfterUpdate()
    Debug.Print TextBox1.Text
End Sub

Előzmény: Gavriel (15699)
tt65 Creative Commons License 2011.08.05 0 0 15701

Szerintem a Pivot tables opcióknál a "Fields per Column: You can specify the number of page fields to show before starting another row of page fields." lesz a te barátod. Próbáld ki.

Előzmény: Beugró lány (15698)
Beugró lány Creative Commons License 2011.08.04 0 0 15698

Egyetértek veled a 2007 komfortosságát illetően. Emiatt is mertem belevágni az újításba, mert bíztam benne, hogy sokkal kellemesebb lesz. az is lett nagyon sok mindenben, de...!

Egy gyenge hasonlattal élve egy 2007 szintű ember sok jó, de talán körülményes megoldási javaslatot adna a híd alá beszorult kamionnak, míg a 2003-as javasolná a kerekek leengedését. De azt hiszem én angyon kevés vagyok ezen programok minősítésére, ez talán csak az én problémámra igaz.

Előzmény: tt65 (15697)
tt65 Creative Commons License 2011.08.04 0 0 15697

Az adatbázisban való szűrés (táblázat) nem érvényessül a belőle készült kimutatásban, ott újra szűrni kell az adatokat. Asszem ez is gondot okoz neked. Szóval elegendő csak a kimutatásban szűrni.

Amugy biztos nem a 2007 a bűnös, szvsz pivot táblában sokkal komfortosabb mint a 2003 volt.

Előzmény: Beugró lány (15675)
Beugró lány Creative Commons License 2011.08.04 0 0 15696

Ez jó lenne, de sajnos más is akar ebből az adatbázisból mindenféle kimutatást készíteni, napi szinten töltöm folyamatosan fel. Tovább bonyoltaná az amúgy se egyszerű munkámat.

Gyakran érzem az egészet egy egész napos logikai feladatnak. Élvezem, hogy mindig rájövök valami újabb "csodára", és szinte kihívásnak érzem az ilyen helyzeteket. De már kezd bosszantani ez a mostani.

Előzmény: Delila10 (15695)
Delila10 Creative Commons License 2011.08.04 0 0 15695

Csöppet sem elegáns dolog, de másold át egy új lapra azokat, akiket meg akarsz jeleníteni, és erről az új lapról csinálj kimutatást.

Előzmény: Beugró lány (15694)
Beugró lány Creative Commons License 2011.08.04 0 0 15694

Ne má'! Ezt nem akarom elhinni! Utálom, ha valamit nem tudok megoldani. Biztosan kell legyen valami megoldás. Erről ismerszek meg, hogy mindig találok megoldást! Logisztikai cégnél dolgozom :)

 

De komolyra fordítva a szót: nem tudom rendezni a neveket, mert havonta ismétlődnek, néha jönnek újak, majd eltünnek. S ezek mind-mind ott "figyelnek" legördítéskor :((((((( 

Hát emiatt szeretném de nagyon, ezt lekorlátozni. Már néztem a Kimutatás mezőadatainak csoportosítását is. De ez nem Mezőadat, mint azt már tudom :(

Előzmény: Delila10 (15693)
Delila10 Creative Commons License 2011.08.04 0 0 15693

Egyéb jó dolgokat is megszüntettek. :(

Előzmény: Delila10 (15692)
Delila10 Creative Commons License 2011.08.04 0 0 15692

Ha módodban áll, rendezd úgy az adataidat, hogy azok a nevek, amiket nem akarsz látni a kimutatásban, a lista végére kerüljenek, a kimutatáshoz pedig ezt a csökkentett tartományt add meg forrásként.

Előzmény: Beugró lány (15689)
Beugró lány Creative Commons License 2011.08.04 0 0 15691

No hát pont ez az! Nem hiszem el egyszerűen, hogy egy fejlettebb változat elhagyjon egy lehetőséget, ami rendkívül hasznos volt!

 

De örülök, hogy végre el tudtam magyarázni a hasfájásomat! :)

Előzmény: Delila10 (15690)
Delila10 Creative Commons License 2011.08.04 0 0 15690

Igen, ott volt lehetőség a tételek elrejtésére, itt nem találom.

Előzmény: Beugró lány (15689)
Beugró lány Creative Commons License 2011.08.04 0 0 15689

Ja, természetesen nem pont 10  nevet, hanem tetszőleges, általam kiválasztott pár nevet. Akikre éppen az a kimutatás vonatkozik.

Előzmény: Beugró lány (15688)
Beugró lány Creative Commons License 2011.08.04 0 0 15688

Sajnos nem ez a gond. A név már eredetileg is ott volt a Jelentésszűróben. Így tudom mindig csak egy emberre leválogatni a kimutatást.

 

Azt szeretném, ha legördítéskor csak 10 nevet adjon föl nekem, s ne mind a 60 egynéhányat, aki csak szerepel az alapbázisban. Ezt tudtam anno beállítani a 2003-ban, a korábban már leírtak szerint.

 

Már több mező, kocka, négyzet, izé felett próbálkoztam az egér jobb illetve bal gombjának nyomkodásával is, de semmi.

Előzmény: Delila10 (15687)
Delila10 Creative Commons License 2011.08.04 0 0 15687

Lehet, hogy rájöttem, mi a gond.

 

Ha mindig csak egy nevet (és a hozzá tartozó többi adatot) akarod látni, állj be a kimutatásba.

Jobb oldalon megjelenik a Kimutatás mezőlista. A Sorcímkék közül a Név mezőt húzd fel a Jelentésszűrőbe (bal oldali alsó négyzetből a fölötte lévőbe).

A név most a kimutatásod fölött lesz, (mind) felirattal. Ennek a legördülőjéből kiválaszthatod egyenként a neveket.

 

A 2003-ban ezt oldalnak hívták.

Előzmény: Beugró lány (15685)
Beugró lány Creative Commons License 2011.08.04 0 0 15686

De látom, jó helyen vetettem fel a kérdést, csak a felvetés módja kezdetleges, elnézéseteket kérem.

Beugró lány Creative Commons License 2011.08.04 0 0 15685

A kimutatásban mindig csak egy nevet akarok látni! Ez rendben is van. Az is be tudom állítani, hogy egy vagy több nevet lássak a kimutatásban, tudom.

Ide nekem vissza egy 2003-as verziót! Holnap én is keresek egyet. Az itthoni gépemen is már az új van. De a benti gépek valamelyikén még láttam az elődöt.

 

Nem kattintottam rá, szót fogadtam :), azt is tudom már, hogy nem kell oda pipa, szerencsére ezeknél már előrébb vagyok.

 

Pedig a nevek legördülője mellett is van tölcsér, mégis az adatbázisban szereplő összes nevet legördíti. Én ezt a legördülő listát szeretném leszűkíteni valahogy, mint ahogyan azt meg tudtam tenni a régi verzióban.

Előzmény: Delila10 (15683)
Delila10 Creative Commons License 2011.08.04 0 0 15684

Az a mező, ahol a tölcsért látod, szűrve van. Ezt gördítsd le, és meglátod, nem minden jelölőnégyzet előtt van pipa. Ahol nincs tölcsér, ott minden tétel be van jelölve.

Előzmény: Beugró lány (15682)
Delila10 Creative Commons License 2011.08.04 0 0 15683

NE kattints rá. A legördülőben megjelennek a nevek, akit nem akarsz látni a kimutatásban, az elől vedd ki a pipát.

 

Megpróbáltam 2003-ban ezt a duplaklikket, nálam a többi mező jelent meg, amiből egyet kiválasztva az is bekerült a kimutatásba. Semmi alá-, vagy áthúzás.

Előzmény: Beugró lány (15679)
Beugró lány Creative Commons License 2011.08.04 0 0 15682

Látod, még ezt sem tudom nagyon, mit is jelent.

 

Van egy több tízezer soros s több mint 30 oszlopos alapbázis nevű lap, melyen be van kapcsolva az adatszűrés. Ebből készítettek az elődeim kimutatásokat, ahol szintén látom a szűrőket. No az igaz, hogy nem egyforma ikonnal vannak ellátva az oszlopok a kimutatásokon. Van olyan, ahol csak fekete lefele mutató háromszög van, s van olyan ahol tölcsér és pici háromszög is van. (huh, ijesztően egyszerűnek tűnhetek:( ) Fél évvel ezelőtt, még csak az alapműveleteket voltam képes kezelni az excelben, ehhez képest most függvénykete értelmezek, s néha már alkotok is. Az elődöm egyik napról a másikra kiment küldöldre dolgozni. Töméntelen keresztbe hosszába file-kon és munkalapokon keresztüli hivakozások nyüzsögnek mindenfelé. Napról napra fedezem fel az értelmét, s emiatt bosszant, hogy erre nem tudok rájönni.

Előzmény: Delila10 (15680)
Delila10 Creative Commons License 2011.08.04 0 0 15681

Igen, 1000 a maximum.

Előzmény: _Nyuszi (15678)
Delila10 Creative Commons License 2011.08.04 0 0 15680

Kimutatásban dolgozol, vagy az autoszűrő van bekapcsolva?

Előzmény: Beugró lány (15679)
Beugró lány Creative Commons License 2011.08.04 0 0 15679

Hát nekem nem szineződik el semmi :(

 

Az egérrel természetesen tudok ide-oda közlekedni, de ha nyitva van a Mezőbeállítások ablak, azon kívül úgy sem enged sehova se kattintani.

 

Tehát nagyjából így néz ki

A3 : Év

B3: 2011 (jelen esetben, ezt úgye ki tdom választani)

A4: Hó

B4: 7 (ezt is tudom választani a lgördülő listából)

A5: Név (na erre kellett a régi verzióban 2x kattintani és itt jött ki az összes név az adatbázisból, sötétkéken áthúzta 1 kattintásra, vagy fehéren hagyta, s ettől függött, hgoy a következő B5 mezőben miket sorol fel, amik közül szintén válaszhatok, ha lenyitom)

B5: Kovács J (pl. egy név az összes közül sajnos)

 

Most ha rákattintok 2x az A5-re akkor a gyűlölt Mezőbeállítások ablak nyílik meg, ahol szerintem már minden létező variációt végigpróbáltam...

 

Köszönöm, hogy válaszolgattok!

 

Előzmény: SQLkerdes (15673)
_Nyuszi Creative Commons License 2011.08.04 0 0 15678

AutoSzűrőnél azt hiszem maximalizált a listába kerülő mennyiség. Vagy valami ilyesmi, mert már én is belefutottam (Excel 2003).

Előzmény: SQLkerdes (15676)
SQLkerdes Creative Commons License 2011.08.04 0 0 15677

Azt azért írd le, hogy Excel 2003-ban hogy csináltad, mert lehet abból rájövünk a jelenség nevére.

Előzmény: Beugró lány (15675)
SQLkerdes Creative Commons License 2011.08.04 0 0 15676

Én erről még sose hallottam.

Szóval már a legördülőben sem látszik minden név?  Mifene.

Most már tökre érdekel, holnap megpróbálok ráfeküdni a témára.

Előzmény: Beugró lány (15675)
Beugró lány Creative Commons License 2011.08.04 0 0 15675

Igen, sejtettem, hogy nem tudom elég jól elmondani a problémámat.

 

Ha legördítem a neveket, akkor az adatbázisban szereplő összes nevet felsorolja. Ez rendjén is lenne. De a régi - 2003-as verzióban be tudtam állítani, hogy melyik pl. 10 nevet sorolja fel lenyitáskor.

 

Elég bizalmas adatokat kezelek így, emiatt nem tudok konkrétabb példát hozni itt nyilvánosan-

 

Az alapbázisból (ennek Ti talán valami szaknévvel illetitek) több hasonló tartalmú kimutatást készítek, természetesen külön munkalapokon. 

Hiába szűröm le azonban pl. szinekre a játékokat, hogy csak a sárgákat kérem, a neveknél mégis felsorolja az össze színű játékot.

Nem ez a tartalom persze, de a hasonlat jó.

 

Már néztem a súgót is, de lehet, hogy valahol keresnem kellene 2003-as verzió súgóját és ott megkeresnem, hogyan vezeti le ezt a beállítást? Ha egyáltalán leírja.

 

Én szeretném komolyan venni  az excelt! Naponta 10-12 órán keresztül dolgozom vele, de sohasem tanultam, csak belecsöppentem.

Előzmény: Delila10 (15672)
SQLkerdes Creative Commons License 2011.08.04 0 0 15674

Delila módszere is működik, meg a Lány módszere is.

Az egyetlen eltérés, hogy a Lány módszere már eleve szűrve készíti el a Pivottable-t, Deliláé meg teljes amikor elkészül és "utólag" szűkíti le.

A végeredmény ugyanaz.

Előzmény: Delila10 (15672)
SQLkerdes Creative Commons License 2011.08.04 0 0 15673

Amikor a gyűlölt Mezőbeállítások rész felugrik mozgasd a mouse-t a Név mezőre (de ne kattints, csak mozgasd fölé).

A Név mező színe megválozik, és a mező jobb oldalán feltűnik egy fekete lefele mutató háromszög.  Kattints a háromszögre és voálá!

Előzmény: Beugró lány (15654)
Delila10 Creative Commons License 2011.08.04 0 0 15672

Elbizonytalanodtam, hogy nem válaszolt senki erre a kérdésre. Lehet, hogy nem tudom, mire gondolsz?

 

Szerintem úgy tudsz válogatni a tartományban megjelenő nevek között, hogy a Név mező legördülőjét legördíted. Ott találod a felsorolást, és válogathatsz, kit jelölsz be, kit nem.

Előzmény: Beugró lány (15670)
Beugró lány Creative Commons License 2011.08.04 0 0 15670

Segítsetek nekem is plííííz, az én kérdésem szerintem ennél lényegesen egyszerűbb.

Az idén már a 12000. sornál jár az adatbázisom, amiből a kimutatásokat készítgetem, (ez lehet másoknak nem olyan sok, csak nekem), de bosszantó ez a kis apróság, hogy nem jövök rá, hol lehetne beállítani.

Előzmény: SQLkerdes (15669)
SQLkerdes Creative Commons License 2011.08.04 0 0 15669

Pedig ha komolyak a szándékaid az excellel, készülj fel erre!

Az excel annyira összetett (bármit is gondolnak a júzerek kezdetben), hogy nem létezik, hogy minden szabályt fejből tudj.  Ha valahol először olvasol is pld. az aposztrófos szabályról, el is felejted rövidesen.

Ellenben amikor élesben beleszaladsz a késbe és több óra kisérletezgetés után rájössz, hogy mi volt a probléma, nos arra emlékezni fogsz egy életen át.

 

Az aposztrófos szabály még csak-csak, mert az dokumentált szabály.

 

Majd akkor is ejts itt egy bejegyzést, ha egyszer megpróbálkozol pld. dinamikus grafikonokkal és az alkalmazott Named Range nem hajlandó működni grafikonos környezetben, mert INDIRECT van benne.  Nos, ezekre a dolgokra nem tér ki az excel manúál, ezt meg kell szívni, gúglizni és egy életre megjegyezni.

Előzmény: pimre (15667)
Delila10 Creative Commons License 2011.08.04 0 0 15668

Sajnos nem tudok ebben segíteni, tapasztalat alapján jöttem rá. :(

Előzmény: pimre (15667)
pimre Creative Commons License 2011.08.04 0 0 15667

Így van, időközben ellenőriztem, hogy nem az ékezetes karakterek, hanem a munkalap névben lévő szóközök miatt kellett az aposztrof. A szóközök törlése után, az ékezetes karakterek ellenére nem tett aposztrofot a program.

 

De Te ezt honnan tudod ilyen szabatosan? A forrás érdekelne. Nem szeretnék minden ilyen megtanulható aprósággal napokat eltölteni, mire próbálgatással rájövök.

Előzmény: Delila10 (15666)
Delila10 Creative Commons License 2011.08.04 0 0 15666

A lapnevet a hivatkozásokban függetlenül attól, hogy magyar, vagy nem, aposztrófok közé kell tenni, ha szóközt tartalmaz, vagy számjegyekből áll.

 

Végül csak összejött!

Előzmény: pimre (15665)
pimre Creative Commons License 2011.08.04 0 0 15665

Kösz, de nem az a problémám, hogy miként fűzzem össze a stringet programból, hanem az, hogy mit fogad el a program.

 

 

Időközben megtaláltam a hibát. A 15647-es hozzászólásban a munkalapomat az egyszerűség kedvéért átneveztem Munka1-re. Ezzel a kritikus sor így nézett ki:

  ActiveChart.SeriesCollection(1).XValues = _

        "=(Munka1!R6C6:R11C6,Munka1!R13C6:R18C6,Munka1!R20C6:R23C6,Munka1!R25C6:R28C6)"

 

És mivel én tényleges ékezetes magyar nyelvű munkalapneveket használok, pl: "Átmérő korreláció 1999", azzal próbálkoztam, hogy a fenti sorban a Munka1 helyére egyszerűen beírtam a tényleges munkalapnevet, amit aztán a program nem fogadott el.

 

És mostanáig nem jutott eszembe, hogy az "új makró rögzítés" funkciót a tényleges munkalapnévvel lefuttassam. Most megtettem. És meglepetésemre kiderült, hogy a magyar nyelvű munkalap nevet aposztrofok közé zárta a program. Így:

ActiveChart.SeriesCollection(1).XValues = "=('Átmérő korreláció 1999'!R6C6:R11C6,'Átmérő korreláció 1999'!R13C6:R18C6,'Átmérő korreláció 1999'!R20C6:R23C6,'Átmérő korreláció 1999'!R25C6:R28C6)"

Ezzel kipróbáltam, és a saját tesztprogramomba bemásolva tökéletesen működik.

 

Tehát az aposztrof hiánya volt eddig a gond. Innetől már gyerekjáték lesz ciklusban összefűzni a szükséges stringet.

 

De hogy ezzel mennyi időm elment, az borzasztó :-)))

Előzmény: Delila10 (15658)
Beugró lány Creative Commons License 2011.08.04 0 0 15664

Megtaláltam mindent amit írtál, de ez nagyon angol és nagyon szaknyelv nekem. 

Annyit tudok róla mondani, ha tudsz így távsegíteni, hogy a Reference ablakban a legfelső 4 elem van kipipálva. Természetesen fogggggggggggalmam sincs, melyik mit jelent.

 

 

 

Előzmény: Gavriel (15655)
Beugró lány Creative Commons License 2011.08.04 0 0 15663

Khm, megtalálam :)

Előzmény: Beugró lány (15661)
Delila10 Creative Commons License 2011.08.04 0 0 15662

Ne a szerkesztőlécre írj, hanem a "balra fent (ahol a mindenkori kiválasztott cella koordinátái vannak) ott adj neki egy tömb címet."

Előzmény: pimre (15660)
Beugró lány Creative Commons License 2011.08.04 0 0 15661

Kszönöm, de sejtettem, hogy annyira alapszintűek az ismereteim, hogy már az első kifejezésnél elakadok :( szégyen, nem szégyen, de kezdjük ott esetleg, hogy mi az és hol találom a Visual Basic-et.

Előzmény: Gavriel (15655)
pimre Creative Commons License 2011.08.04 0 0 15660

Ez nekem nem így működik. Az "oszlopfejre" ha ráklikkelek, az kijelöli az oszopot. Ha ezután a szerkesztőlécre kattintok, és beírok bármit, az az oszlop első sorába íródik.

 

De nem is érdekes ez, hiszen nem kattintgatni akarok, hanem programot írni! Adatokat tömbbe másolni egyébként programból tudok. Azt nem tudom, hogy a tömböt hogyan tudnám használni a regresszióanalízisnél az .xvalues=range("f6:f28") parancs idézőjeles része helyett.

Előzmény: Gavriel (15659)
Delila10 Creative Commons License 2011.08.04 0 0 15658

A 15617-es írásodban az értékeknél szerepel a munkalap neve is. A for-next ilyesmi legyen - ismét próba nélkül:

 

dim szv as string, CV as range

 

for each CV in terület

if CV<>0 then szv=szv & "Munka1!" & CV.address & ","

next

ActiveChart.SeriesCollection(1).XValues = right(szv, len(szv)-1) ' az utolsó vessző levágása

 

Gavriel 15652-es válaszát kipróbáltad már?

 

 

Előzmény: pimre (15656)
pimre Creative Commons License 2011.08.04 0 0 15657

Igen, attól tartok, hogy ilyen irányba kell elmennem (eltekintve attól, hogy az első mondatodat nem értem: "Szerintem csinálj klikkelj rá az oszlop fejre és balra fent adj neki egy tömb címet. "). 

 

A lényeget tekintve viszont ez lesz a kényszerű megoldás. Valahova átmásolgatom az adatokat, kihagyva az érdekteleneket, és onnan már a program tudja majd kezelni az egybefüggő adattartományokat. Csak el akartam kerülni, hogy az adatokat át kelljen másolgatni új helyre, mert borzasztóan nem elegáns megoldás.

Előzmény: Gavriel (15652)
pimre Creative Commons License 2011.08.04 0 0 15656

Ezt már kipróbáltam, nem fogadja el. Egyszerűen a vesszőkkel nem tud mit kezdeni. Pedig igyekeztem hibátlanul lemásolni a makrókészítésnél a program által generált értékadási mintát.

 

Egyszerűen érthetetlen. Nem akarom elhinni, hogy az Excel programozás szintaktikáját csak találgatással lehet megismerni:-(((

Előzmény: Delila10 (15651)
Beugró lány Creative Commons License 2011.08.04 0 0 15654

Szervusztok!

 

Segítséget szeretnék kérni.

 

Évek óta használom az excel 2003 változatát, kimutatásokat, szűréseket egészen jól kezelem. Két hete "fel"cserélték a 2007-es vezióra, s azóta nem tudok egy számomra elég fontos funkciót használni. Megpróbálom érthetően leírni:

 

A régi vezióban a kimutatásoknál le tudtam szűkíteni, hogy az oszlopcimkéknél az összes (pl.) Név közül melyik 10-et kínálja fel nekem kiválasztásra.

Rá kellett kattintanom 2x a Név mezőre, felsorolta az összeset, s amelyiket nem akartam hogy látszódjon a nevek között, az sötétkéken áthúzta, amelyik kellett, az maradt fehéren. Most ha ezt teszem, akkor a Mezőbeállítások ablak ugrik fel, amiben semmi hasonlót nem találtam eddig.

 

TUDOM, elég primitív lehet a leírásom, de egyszerű felhasználó vagyok sok-sok adat kezelésével megbízva.

 

Már elég sok mindent átnéztem, nem adom fel könnyen, s sejtem valami banálisan egyszerű lesz a megoldás, de NEMTALÁLOM!!!!!!!!! :(

 

Köszönöm előre is!

luckeEEEr Creative Commons License 2011.08.04 0 0 15653

Sziasztok!

Akinek van annyi ideje, le tudná írni, hogy részenként hogyan működik a következő offszetes függvény:

 

=OFSZET(A1;SZUM(--(A2:C217=F2)*SOR(A2:C217))-1;0;1;3)

 

Annál a hozzászólásnál található, amire most válaszoltam.

Ma derült ki, hogy majd előadást is kell róla tartanom a kollegáknak...

 

Köszönöm előre a segítséget!

Előzmény: SQLkerdes (15633)
Delila10 Creative Commons License 2011.08.03 0 0 15651

Egy for each - next ciklussal egy szöveges változóba gyűjteném a nem nulla értékeket tartalmazó cellák címét vesszővel elválasztva, és ezt a változót adnám meg értékként az X és Y tengelynek. 

 

Érthető ez így? Nem próbáltam ki, csak egy ötlet.

Előzmény: pimre (15650)
pimre Creative Commons License 2011.08.03 0 0 15650

Ezt kipróbáltam. Vesszővel elválasztva még 2 elemet sem fogad el, nemhogy egy adatsort.

 

Az előzőt (#15648) majd kipróbálom. Most el kell mennem. A vicc az, hogy az általam makrófényképezéssel elkészített és leírt kódot sem tudom egyelőre bemásolni a saját programomba. AZ a baj, hogy egyelőre azt sem látom át, hogy mikor ActiveChart.SeriesCollection.NewSeries (azaz beszúrt új adatsor, ha jól értem), és mikor ctiveChart.SeriesCollection(1) után jön az .XValues. 

 

Csak sehol egy leírás, ami ezeket elmagyarázná. Pedig szívesen rászánnám az időt.

Előzmény: SQLkerdes (15649)
SQLkerdes Creative Commons License 2011.08.03 0 0 15649

Meg ezt:

Sub valamimas()

Range("a1, a3").Select
End Sub

 

 

Előzmény: pimre (15647)
SQLkerdes Creative Commons License 2011.08.03 0 0 15648

Gondolatébresztőnek nézd meg ezt:

 

Sub valami()

Dim MyRange As Range
Set MyRange = Union(Range("sheet1!A1"), Range("sheet1!A3"))

MyRange.Select

End Sub

Előzmény: pimre (15647)
pimre Creative Commons License 2011.08.03 0 0 15647

Viszont makrófelvétellel indítva megoldható a hibás sorok kihagyása (Ctrl billentyű nyomva tartásával adva meg a tartományhatárokat). De az eredmény így néz ki:

 

Sub próba()

 

'

    Charts.Add

    ActiveChart.ChartType = xlXYScatter

    ActiveChart.SetSourceData Source:=Sheets("Munka1").Range("L6") ’ Ez mindegy, a táblázat egy üres pontjáról indítottam a diagram beszúrást

 

    ActiveChart.SeriesCollection.NewSeries

    ActiveChart.SeriesCollection(1).XValues = _

        "=(Munka1!R6C6:R11C6,Munka1!R13C6:R18C6,Munka1!R20C6:R23C6,Munka1!R25C6:R28C6)"

    ActiveChart.SeriesCollection(1).Values = _

        "=(Munka1!R6C7:R11C7,Munka1!R13C7:R18C7,Munka1!R20C7:R23C7,Munka1!R25C7:R28C7)"

    ActiveChart.Location Where:=xlLocationAsObject, Name:="Munka1"

    With ActiveChart

        .HasTitle = False

        .Axes(xlCategory, xlPrimary).HasTitle = False

        .Axes(xlValue, xlPrimary).HasTitle = False

    End With

End Sub

 

És a 2 vastagon szedett sort nem vagyok képes program által kezelhető formába hozni.

 

Segítsetek!

 

Előzmény: pimre (15646)
pimre Creative Commons License 2011.08.03 0 0 15646

Sziasztok!

 

Továbbra is a programból való chart rajzolással vagyok elakadva. A feladat zömét már megoldottam, be tudom állítani a grafikon valamennyi paraméterét programból, csak a lényegét nem. Az általam kívánt tartományt nem tudom úgy megadni, ahogy szeretném. Alaphelyzetben persze működik a következő képlet:

 

   With ActiveChart.SeriesCollection.NewSeries

      .XValues = Range("F6:f28")

      .Values = Range("G6:G28")  

   End With

 

A feladat a következő.  Egy nagy táblázatom van (több ezer sorral), melyben az F oszlop az X, a G oszlop az Y tengely. Egy másik oszlopbeli azonosítószám szerint rendezve vannak az adatok.  Az azonos azonosítószámú adatokkal kellene regresszióanalízist végezni. A program meg tudja vizsgálni, hogy melyik az azonos azonosítójú adatok kezdő és befejező sora.  A konkrét példában a 6-28. sorok. Talán működne is a dolog, ha folyamatosak lennének az adataim a 6. és a 28. sor között. De az a gond, hogy regresszióanalízist végzek, és az adatok közt több értékelhetetlen van (0 értékekkel, amit ki kellene hagyni). Ha kézzel állítom be a grafikonkészítést, akkor ki tudom válogatni a megfelelő sorokat, a programban ezt nem tudom megtenni. Arra gondoltam, hogy kigyűjtöm őket tömbbe (kihagyva a hibás adatokat), de nem találok megoldást arra, hogy a range("....") helyére meg tudok-e adni egy tömbcímet. Ezen belül annak kezdő és befejező elemével.

 

A másik megoldás az lenne, ha a Range magadás működne úgy, hogy range("G6:G11,G13:G18,G20:G23,G25:G28"), de ezt nem engedi a program.

 

(Elvileg könnyű lenne a megoldás, ha rendezném az adataimat az azonosítószámon belül az X, vagy az Y oszlop szerint csökken/növekvő sorrendbe, de sajnos mindkét oszlopban előfordulhatnak 0 értékű, tehát kizárandó adatok)

Törölt nick Creative Commons License 2011.08.03 0 0 15645

Egyszerű.

Jobb egérgombbal kattints a képen. A felugró menüben kiválasztod a makró hozzárendelését. Ott katt az "Újat" gombra. Erre kapsz felnyílik az excel fejlesztőkörnyezete valami ilyesmi generált kóddal:

 

Sub Kép1_Kattintás()

End Sub

 

A két sor közé beírod ezt, ahogy neked kell:

 

 

Range("Q6:R8").ClearContents

 

 

A range nyilván a te tartományod lesz

Előzmény: kovacsmiklos1985 (15644)
kovacsmiklos1985 Creative Commons License 2011.08.02 0 0 15644

Sziasztok! A segítségeteket kérném, hogy hogyan tudnám azt megoldani excelben, hogyha mondjuk egy képi elemre kattintok, akkor egy bizonyos cellatartomány értéke törlésre kerüljön. Magyarul szeretném ha egy gombnyomásra kitörlődnének bizonyos cellák értékei. Segítségeteket előre is köszönöm!

pimre Creative Commons License 2011.08.02 0 0 15643

Köszönöm, ez a Peltier féle honlap nagyon jó, már korábban is néztem. Sok érdekes ötletet látok benne, de egyetlen dolog hiányzik nekem, a szisztematikus tanulható, kereshető információgyűjtemény.  Egyébként talán túl konkrét voltam, amikor olyan irodalmat kerestem, ami a chartokkal foglalkozik. Azt hiszem, olyan kellene, ami általában, és nagyon részletesen foglalkozik az Excel VBA programozásával.  Valami kézikönyv szerű leírás kellene. És ha esetleg nincs az interneten, szívesen vennék javaslatot klasszikus kézikönyvre. Én most az alapokat Kovalcsik Géza 1999-es könyvéből tanulom, de ez csak nagyon az alapismereteket adja. Nem is nagyon adhat többet 300 oldalon. 

 

Szóval, ha valaki tud nagyon részletes kézikönyvet, azért hálás lennék.

 

Előzmény: SQLkerdes (15618)
wawabagus Creative Commons License 2011.08.01 0 0 15642

Gavirel és Jimmy the Hand!

Nagyon Köszönöm a weeknumos tippet,

Bocs, hogy csak most válaszolok, de most jöttem haza szabiból :-).

Köszi!

Előzmény: Gavriel (15531)
Delila10 Creative Commons License 2011.08.01 0 0 15641

Ezt a választ eddig nem vettem észre, pedig nagyon jó.

Előzmény: SQLkerdes (15633)
Delila10 Creative Commons License 2011.08.01 0 0 15640

Felveszel 3 segédcellát, ezek nálam a következők:

J1 -> =HA(NEM(HIBÁS(FKERES($F$2;A:A;1;0)));HOL.VAN($F$2;A:A;0);"")

K1 -> =HA(NEM(HIBÁS(FKERES($F$2;B:B;1;0)));HOL.VAN($F$2;B:B;0);"")

L1 -> =HA(NEM(HIBÁS(FKERES($F$2;C:C;1;0)));HOL.VAN($F$2;C:C;0);"")

 

Azért $F$2, mert ide írtam be a keresendő adatot.

 

A 3 titkos helyzetű cella:

Cella1 -> =HA(DARAB($J$1:$L$1)>0;INDEX($A:$C;MIN($J$1:$L$1);1);"Nincs a kritériumnak megfelelő érték")

Cella2 -> =HA(DARAB($J$1:$L$1)>0;INDEX($A:$C;MIN($J$1:$L$1);2);"Nincs a kritériumnak megfelelő érték")

Cella3 -> =HA(DARAB($J$1:$L$1)>0;INDEX($A:$C;MIN($J$1:$L$1);3);"Nincs a kritériumnak megfelelő érték")

 

Ha nem feltétlenül szükséges – és ebben az esetben nem az – ne vonj össze cellákat. Beírod a bal oldaliba a szöveget, kijelölöd harmad magával, és a cellaformátum Igazítás fülén a vízszintes elrendezésnél "A kijelölés közepére" opciót választod. Ha ehhez hozzászoksz, kevesebb nyűgöd lesz később.

 

Előzmény: luckeEEEr (15637)
luckeEEEr Creative Commons License 2011.08.01 0 0 15639

Nem nevek vannak. Akkor ez a legegyszerűbb megoldás úgy látom. Sikerült megcsinálni minden variációt amit leírtatok, el is mentettem őket. Köszönöm mindenkinek a segítséget!

Előzmény: SQLkerdes (15638)
SQLkerdes Creative Commons License 2011.08.01 0 0 15638

Akkor az én megoldásom műxik.

Bár ha tényleg nevek vannak az egyik oszlopban, akkor azért nem vehető abszolút biztosnak, hgoy nem lesz duplikáció...

Előzmény: luckeEEEr (15637)
luckeEEEr Creative Commons License 2011.08.01 0 0 15637

Legjobban egy példával tudom leírni. Az első oszlopban sorszámok vannak, 1- mondjuk 200-ig. Második oszlopban nevek, harmadik oszlopban pedig születési dátumok. Azonos oszlopon belül nincs 2 egyforma adat. Egy kereső cella van, rákereshetek a három adat közül bármelyikre. A célom az, hogy ha rákeresek pl a Kiss Ádám névre, kiírja ezt egy általam meghatározott külön cellába, előtte levő cellába a sorszámot, mögé pedig a születési dátumot. A három cella fölötti cellákat egyesítem, beleírom hogy TALÁLAT. A kereső cella felé pedig értelem szerűen KERESÉS. Tehát csak a kereső és a találati részt akarom elhatárolni magától a táblázattól, hogy ez kerüljön a figyelem középpontjába. Ugyanis nem én fogok vele a későbbiekben dolgozni. Remélem így már érthetőbb volt(?).

SQLkerdes Creative Commons License 2011.08.01 0 0 15636

Én is követelem e félreértések tisztázását!

A kérdező azt írta:  ne csak azt az egy adatot írja ki a találathoz ami egyezik, hanem a mellette szereplő másik 2 cella adatait is.

VAgyis ha a C8-ban van találat, akkor a C8, D8 és E8 cellák tartalmára vagy kiváncsi?  Vagy az A8, B8, C8 cellákéra.  Vagy a mellette balra szereplő másik két cella?

Előzmény: Delila10 (15635)
Delila10 Creative Commons License 2011.08.01 0 0 15635

Akkor tisztázzuk, mi is pontosan a feladat.

Az első kérdésnél ezt írtad: "Egyetlen cellát használok a keresésre, és az A, B, C oszlopokban keresek. Azt szeretném elérni, hogy bármely oszlopban egyezést talál akármelyik cella tartalmával, ne csak azt az egy adatot írja ki a találathoz ami egyezik, hanem a mellette szereplő másik 2 cella adatait is."

 

Tehát különféle adatok vannak az A, B és C oszlopokban, amik közül bármelyikben előfordulhat a kereső cellában lévő adat. Azt az azonos sorban lévő hármat szeretnéd kiíratni az általad meghatározott 3 cellába (melyikbe?), amik közül valamelyik azonos a kereső cellában (melyikben?) lévővel – ha jól értem.

Az egyes oszlopokban többször is előfordulhat a kereső cella értéke? Ha igen, jó-e az első fellelhető sor, amelyiknek bármelyik oszlopában azonos az adat kereső celláéval?

Előzmény: luckeEEEr (15632)
SQLkerdes Creative Commons License 2011.08.01 0 0 15634

Mer UDF :-)

Előzmény: Delila10 (15631)
SQLkerdes Creative Commons License 2011.08.01 0 0 15633

Most segítsetek már, hogy jól értem-e.

Szóval a kollegának van egy 3 oszlopból álló Range-e (mondjuk A1-tól C10-ig).

Van egy száma, amit beír a D1-be.

A feladat, hogy a függvény megkeresse az A1:C10 tartományban a D1-be beírt számot és kiírja annak a sornak a tartalmát, amelyik sor tartalmazza a számot.  Szóval ha a D1-be rögzített szám a B8-ban van, akkor írja ki az A8-at, a B8-at és a C8-at is.

A D1-be rögzített szám csak egy találatot ad, ugye?

 

Mert akkor a teendő a következő:

 

1.) E1-től G1-ig terjedő tartományt kijelölni

2.)  F2 billenytűt leütni

3.) Beírni a szerkesztőlécbe, hogy:  =OFFSET(A1,SUM(--(A1:C10=D1)*ROW(A1:C10))-1,0,1,3)  (ez nyilvánvalóan angol változat, könnyen magyarítható!)  (Vigyázat, lehet, hogy a magyar verzióban nem vesszőket kell a függvényeken belül használni.

4.)  A rögzítést NEM Enterrel, hanem Ctrl+Shift+Enter-rel lezárni (ha jól csináltad akkor a képlet kapcsos zárójelek közé kerül).

5.) D1-be beírni a keresett értéket, a D1 változására az E1:G1 tartomány automatikusan reagál.

 

Ha a D1-be rögzített érték több találatot is generál akkor szóljatok és egy INDEX-szel szétszedjük sorokra a dolgot.

Előzmény: luckeEEEr (15632)
luckeEEEr Creative Commons License 2011.08.01 0 0 15632

Köszi az újabb választ! Azt hogy oldanád meg, hogy az általam meghatározott 3 külön cellába írja ki a találatot? Mert ebben az esetben is a 3 oszlopban a keresett adattól függően jelenik meg a 3 találat.

Előzmény: Delila10 (15629)
Delila10 Creative Commons License 2011.08.01 0 0 15631

A határidő függvényt nem ismerem. :)

Előzmény: SQLkerdes (15630)
SQLkerdes Creative Commons License 2011.08.01 0 0 15630

Én egy INDEX - MATCH kombón gondolkoztam, de közbejött egy határidő :-(

Előzmény: Delila10 (15629)
Delila10 Creative Commons License 2011.08.01 0 0 15629

Közel sem biztos, hogy nincs egyszerűbb megoldás az enyémnél. Biztos vagyok benne, hogy hamarosan jelentkezik valaki egy ofszetes megoldással. 

 

luckeEER! Itt egy másik, ahol nem kell a D1:F1 képletein változtatni, csak a D1 képletét jobbra másolni az F oszlopig, majd le.

D1-be:

=HA(VAGY(A1=$I$1;B1=$I$1;C1=$I$1);INDEX($A:$C;SOR();OSZLOP()-3);"")

 

 

 

Előzmény: _Nyuszi (15628)
_Nyuszi Creative Commons License 2011.08.01 0 0 15628

Éreztem én, hogy nem az enyém a legegyszerűbb válasz. ;)

Delila, én is köszönöm!

Előzmény: luckeEEEr (15627)
luckeEEEr Creative Commons License 2011.08.01 0 0 15627

Köszönöm! És én még attól féltem, hogy nem kapok választ:) Jó ez a topik!

Előzmény: Delila10 (15626)
Delila10 Creative Commons License 2011.08.01 0 0 15626

Egy másik megoldás a feladatodhoz:

 

D1-be =HA(VAGY($I$1=A1;$I$1=B1;$I$1=C1);INDIREKT("A"&SOR());"")

 

ahol a keresendő értéket az I1 cella tartalmazza. A képletet jobbra másolod az E és F oszlopokba, az "A"-t átírod "B"-re, illetve "C"-re. A három képletet lemásolod, ameddig értékek vannak az A:C oszlopokban.

 

Előzmény: luckeEEEr (15617)
luckeEEEr Creative Commons License 2011.08.01 0 0 15625

Igazad van, jobb félni mint megijedni; valamint sikertelen próbálkozásaim következtében a teljesség igénye nélkül bezárom az excelt az autocad-del együtt és húzok ebédelni! Nemsoká visszatérek!

Előzmény: _Nyuszi (15624)
_Nyuszi Creative Commons License 2011.08.01 0 0 15624

Egyszer kellett volna AutoLISP-ben csinálni valami ilyesmit, de inkább passzoltam. Külön-külön használom őket: az egyik Autodesk, a másik Microsoft, inkább nem engedem össze őket... Sohasem lehessen tudni. Félős vagyok? Lehet... Nomen est omen.

Előzmény: luckeEEEr (15623)
luckeEEEr Creative Commons License 2011.08.01 0 0 15623

Főleg, hogy nem is dolgozok itt csak szakmai gyakorlaton vagyok, ami a sulihoz kell. A bitgondnok pedig derüsebb napjain is morcos személyiség :D Szóval nem kontárkodok inkább a makrókkal. Jól van ez így ahogy van.

Most, hogy megvan ez a feladat is, megint elfogyott a munkám. De majd pár nap múlva szokás szerint egyszerre minden a nyakamba zúdul.

Hogy legyen egy kis ontopic is, kérdezek még egyet szintén esztétikai jelleggel. Mennyire értesz az autoCAD és excel táblázat közötti adatkapcsolatokhoz?

Előzmény: _Nyuszi (15622)
_Nyuszi Creative Commons License 2011.08.01 0 0 15622

Jut eszembe, van megoldás arra is, hogy írsz egy makrót, és amit a ctrl+F talál, azt kigyűjti (meg a sor többi elemét is, persze) egy külön cellatartományba. Ehhez viszont engedélyezni kell a makrókat, ami vállalati gépek esetén néha világnézeti összetűzést okoz a bitgondnokkal... :-(

Előzmény: luckeEEEr (15620)
_Nyuszi Creative Commons License 2011.08.01 0 0 15621

OFF

Igazából pár lépést ki szoktam próbálni (pl. nálad a hibakódos részt, HA nélkül), de nem ütök össze egy konyhakész verziót a topikoló kedvéért, szóval csak részben írom fejből. :-)

Részben vág csak ide, amit a munkahelyen csinálok: kell hozzá pc, néha Excel is, de nem ilyen mértékben. Ez csak kikapcsolódás, hobbi. Jó dolog ez a program, érdemes érteni hozzá, azt hiszem.

Előzmény: luckeEEEr (15620)
luckeEEEr Creative Commons License 2011.08.01 0 0 15620

Trimmel kiszedtem a felesleges szóközöket, úgy sem néz ki rosszul. Egyébként ha nem várták volna el ezt tőlem, annyit mondtam volna hogy ott a táblázat, ctrl+F és írják be amit keresnek. De úgy persze nem jó... Köszönöm még egyszer a segítséget! Mivel foglalkozol, hogy ilyen szépen megy fejből is az excel?

Előzmény: _Nyuszi (15619)
_Nyuszi Creative Commons License 2011.08.01 0 0 15619

Ne fűzd össze, és akkor külön cellákba írja. ;-)

Viccet félretéve: én nem " "-zel, hanem ""-zel oldanám meg (még mindig HA fgv., és akkor mondhatod azt, hogy a kilencből az a három kell, amelyiknél egyik trió sem üres (DARABTELI, DARABÜRES stb.). Vagy valami ilyesmi.

Előzmény: luckeEEEr (15617)
SQLkerdes Creative Commons License 2011.08.01 0 0 15618

Számos ilyen hely van, csak ezek közül kevés ami egy helyen lefedi a Chart-ok minden dimenzióját.

Én általában egy Peltier nevű csóka dolgaihoz nyúlok először ha grafikonos problémám van, lehet neked is segítség lesz.

Itt van pld egy Chart mozgatás és átméretezés cikke:  http://peltiertech.com/Excel/ChartsHowTo/ResizeAndMoveAChart.html

Előzmény: pimre (15616)
luckeEEEr Creative Commons License 2011.08.01 0 0 15617

A struktúrád tökéletesen működik, viszont lenne még egy esztétikai problémám a megoldás végével kapcsolatban. Az a jelenlegi helyzet, hogy 9 cellában jelennek meg az adatok attól függően, hogy melyik oszlopban levő adatra keresnek rá. A hibák ki vannak szedve, helyükön egy "space" van. Összefűzve egymás mögé rakja be az adatokat, nekem viszont arra lenne szükségem, hogy 3 külön cellába írja ki a 9 adatból azokat, amelyek nem hibásak. Erre is van valami megoldás? Előre is köszönöm a segítséget!

Előzmény: _Nyuszi (15608)
pimre Creative Commons License 2011.07.31 0 0 15616

Sziasztok!

 

Található az interneten olyan leírás, amely részletesen taglalja, hogyan lehet programból diagramot rajzolni?

 

Próbáltam makró létrehozással majd a kód elemzésével, de nem az igazi. Nem kapok választ többek közt olyan kérdésekre, hogy miként lehetne tartomány kijelölés helyett tömbökből megadni a tengelyeket, meg arra sem, hogy hogyan tudnám a kész diagram helyét fixen megadni. És talán még egy pár "apróság", ami egyelőre eszembe sem jut, amig nem kezdem el a programot írni.

mafikám Creative Commons License 2011.07.31 0 0 15615

Szuperjóó, köszi szépen!!

Előzmény: Jimmy the Hand (15588)
tt65 Creative Commons License 2011.07.31 0 0 15614

bossatntó, mert sehol nem írják ezt a korlátot.

ill. nem találok ellenkező példát.

Előzmény: _Nyuszi (15613)
_Nyuszi Creative Commons License 2011.07.31 0 0 15613

Nekem is. :)

Ezért kerestem valami más, áthidaló megoldást, amíg nem jön nálam okosabb olvtárs.

Előzmény: tt65 (15612)
tt65 Creative Commons License 2011.07.31 0 0 15612

igen, de nekem a HOL.VAN hibát dob, ha nem sorban vagy oszlopban keres!

Előzmény: _Nyuszi (15611)
_Nyuszi Creative Commons License 2011.07.31 0 0 15611

Mire gondolsz? HOL.VAN?

Előzmény: tt65 (15610)
tt65 Creative Commons License 2011.07.31 0 0 15610

Nincs olyan fv. ami nem csak sorban vagy oszlopban tud keresni, hanem tömbben is?

Előzmény: _Nyuszi (15608)
luckeEEEr Creative Commons License 2011.07.31 0 0 15609

Nagyon köszönöm a segítséget! Nem is olyan bonyolult dolog ez, csak első olvasásra volt az :)

_Nyuszi Creative Commons License 2011.07.31 0 0 15608

A három oszlophoz három FKERES-t használnék úgy, hogy egy negyedik, D oszlopba a sor sorszámát venném fel. Mind a három FKERES a saját oszlopában keres, és a D oszlopban lévő sorszámot adja vissza.

Ekkor lesz egy értékes adatod és két hibaüzeneted attól függő oszlopban, hogy melyikben van a keresett adat.

Mindegyik oszlophoz két INDEX függvénnyel megkeresteted a hiányzó két értéket, a következő módon: az A oszlophoz tartozó két INDEX függvény a B és a C oszlopban lévő értékkel tér vissza, a B oszlopé az A és a C oszlopban stb. Az oszlopszám egyértelmű, a sor száma meg az FKERES értéke.

Ezek után HA függvénnyel kiszeded a hibaüzeneteket, valahogy így (fejből írom), A13-as, B13-as, C13-as cella: HA(HIBA.TÍPUS(A10)=7;....;....).

Majd összefűzöd a válaszokat egy tetszőleges cellába, mondjuk pontosvesszővel tagolva: ÖSSZEFŰZ(A13;"; ";B13;"; ";C13".").

Ez magyar 2003-ss Excelre vonatkozik.

 

Van elegánsabb megoldás is, de ez egyszerű(?). :)

Előzmény: luckeEEEr (15607)
luckeEEEr Creative Commons License 2011.07.31 0 0 15607

Sziasztok!

A következő dolgot szeretném excelben megoldani.

Van 3 oszlopnyi különböző kategóriájú adatom: A, B, C. Egyetlen cellát használok a keresésre, és az A, B, C oszlopokban keresek. Azt szeretném elérni, hogy bármely oszlopban egyezést talál akármelyik cella tartalmával, ne csak azt az egy adatot írja ki a találathoz ami egyezik, hanem a mellette szereplő másik 2 cella adatait is. Úgy tudtam eddig megoldani, hogy 3 kereső cella van, de most az a kérdésem, hogy 1-el hogy lehet?

Gulyi921 Creative Commons License 2011.07.29 0 0 15606

Közben SQL módszere is életre kelt, természetesen átsiklottam SUM/SZUM mondatodon... :)

Köszönöm mégegyszer!

tt65 Creative Commons License 2011.07.29 0 0 15605

SQL kreatív műxik, azt használhatod

Előzmény: Gulyi921 (15603)
tt65 Creative Commons License 2011.07.29 0 0 15604

sorry, egy oszloppal elcsúsztam jobbra, D helyett C, E helyett C.

kollega unalmas megoldása nem a te barátod, neked db. kell nem szumma.

Előzmény: tt65 (15602)
Gulyi921 Creative Commons License 2011.07.29 0 0 15603

Köszönöm!

tt65 módszere tökéletesen működik ez esetben.

SQL sajnos a tiéd nem működött valamiért. :(

tt65 Creative Commons License 2011.07.29 0 0 15602

valami ilyesmi: =DARABHATÖBB(D:D;"=A";E:E;"=2")

Előzmény: Gulyi921 (15600)
SQLkerdes Creative Commons License 2011.07.29 0 0 15601

Hagyományos (értsd: unalmas) módon SUMIFS (excel 2010 és felette).

Ha kreatív módon akarod megoldani vagy régi exceled van akkor:

(mondjuk az A1-be írde be, hogy:)

=SUM(--(C1:C7="A")*(D1:D7=2))

A képletet NE Enterrel, hanem CTRL+Shift+Enter-rel zárd le. (Ha jól csináltad akkor a szerkesztőlécben a képlet kapcsos zárójelek közé kerül).

Ha magyar exceled van akkor SUM helyett SZUM.

Előzmény: Gulyi921 (15600)
Gulyi921 Creative Commons License 2011.07.29 0 0 15600

Sziasztok!

A következő problémára szeretnék megoldást találni:
Lebutítva egy olyan függvényre lenne szükségem, mely megmondja, hogy hány darab olyan találat van, mely jelen esetben a "C" oszlopban A és ezzel együtt a "D" oszlopban pedig 2. (Ezt sárgával kiemeltem)

 




u.i.: Tudom, hogy szűréssel is meg lehetne oldani, de mindenképp függvénnyel szeretném!

Előre is köszönöm a válaszokat!

_Nyuszi Creative Commons License 2011.07.28 0 0 15599

Erre próbáltam utalni, de azt hiszem, túl bátortalanul.

:-(

Előzmény: Jimmy the Hand (15589)
tt65 Creative Commons License 2011.07.28 0 0 15598

Delila tippje jó, de az igazi szakértő Hamupipőke, őt kérdezd meg! :-)

Előzmény: mimi_bacsi (15597)
mimi_bacsi Creative Commons License 2011.07.28 0 0 15597

Ilyen tagolásúak (is) vannak: 

 

Kovács Béláné Özv.

Kiss Kft

ifj. Huszár Károly

Nyilvános Állomások Sibyll Kisszövetkezet

Idősek Napközi Otthona

 

Sajnos a példa miatt nem lenne jó a 2 tagú nevek keresése...:-(

 

 

Előzmény: Delila10 (15596)
Delila10 Creative Commons License 2011.07.28 0 0 15596

Próbáld meg a Szövegből oszlopok funkcióval szétszedni az adatokat. Valamennyit segíthet, hogy a nevek áltzalában 2 tagúak, a cégnevek több tagból állnak.

Előzmény: mimi_bacsi (15595)
mimi_bacsi Creative Commons License 2011.07.28 0 0 15595

Sajnos nem tartalmazza a cégformákat legtöbb esetben...:-(

Arra gondoltam, hogy a személynevek (pl.: Károly, István, Irén...) irányában indulnék el.. (Ha a cella tartalmazza ezeket a személyneveket, akkor marad, egyébként pedig másolja át (hogy átnézhessem, ellenőrizhessem) egy másik munkalapra azokat, amelyekben nincsenek személynevek...(Bár találtam olyat, ami így nézett ki, pl.: Kovács Péter Étterem)

 

De ez talán már így makróval lehet megoldani...?

Előzmény: SQLkerdes (15594)
SQLkerdes Creative Commons License 2011.07.28 0 0 15594

Cellánként megnézném, hogy a cella tartalmazza-e az ismert cégformák rövid v. hosszú változatát (kft, rt., zrt, nyrt, ...).  Ennek a vizságlatnak az eredménye (TRUE/FALSE) lenne mondjuk a B oszlopban.  Utána már csak rendezés és törlés kérdése a dolog.

Előzmény: mimi_bacsi (15593)
mimi_bacsi Creative Commons License 2011.07.28 0 0 15593

Van egy táblázatom, ami több, mint 40 000 sorból áll. A oszlopban vannak személynevek (pl.: A1 cellában Kis István) és cégnevek (pl.: A2 cellában Kis Kft, Étterem) és ezek ömlesztve.

Van-e arra viszonylag egyszerű megoldás, hogy csak a személynevek (Kis István) maradjanak a táblázatban?

zotilla Creative Commons License 2011.07.28 0 0 15592

Szia ! Köszi a segítséget. Ez 5 pontos volt! :)

Előzmény: Sznida (15576)
zotilla Creative Commons License 2011.07.28 0 0 15591

Ez így nem jó. Azt Én tudom, hogy a B oszlopban lévő számok léteznek az A oszlopban is. Én azt szeretném tudni, hogy hol vannak, mert sok adatról van szó.

Előzmény: tt65 (15577)
Törölt nick Creative Commons License 2011.07.28 0 0 15590

adatérvényesítés kell neked szerintem, nézz utána.

Előzmény: fazonka (15580)
Jimmy the Hand Creative Commons License 2011.07.28 0 0 15589

Az eleve egy rossz konstrukció, amikor a felhasználó tervezetten képleteket ír felül, és most mindegy, hogy éppen helyes vagy hibás értékekkel, mert a képlet így mindenképpen megsemmisül, és nem tudhatod, mikor lesz rá megint szükség. Inkább kellene egy segédoszlop a hiányzó adatok bevitelére, és a zárolt oszlopban képlettel kiválasztani a megfelelő értéket az I oszlopból vagy az új segédoszlopból. A segédoszlopban meg feltételes formázással lehetne kiemelni azokat a sorokat, ahová adatot kell bevinni.

Előzmény: fazonka (15580)
Jimmy the Hand Creative Commons License 2011.07.28 0 0 15588

Ha a sorszám után van pont, akkor:

 

A2= =CSERE(B2;SZÖVEG.KERES(".";B2);1000;"")

C2= TRIM(CSERE(B2;1;SZÖVEG.KERES(".";B2);""))

Előzmény: mafikám (15587)
mafikám Creative Commons License 2011.07.28 0 0 15587

Sziasztok! A segítségetekre lenne szükségem.

 

Tudnátok egy olyan képletet / függvényt mondani, amely a B oszlopban található számokat átteszi az A oszlopba, a szöveget pedig a C oszlopba?

Pl.. B2 = 123.  Épületek, épületrészek, tulajdoni hányadok épületekben

A2= 123
C2 = Épületek, épületrészek, tulajdoni hányadok épületekben

 

Köszi szépen!!

pimre Creative Commons License 2011.07.27 0 0 15586

Eljött az ideje, hogy végleg lezárjam az eddigi offolásomat, és beszámoljak egy részeredményről. Miután két napja sikertelenül kutatok a megfelelő képlet után, hogy hogy programból váltsam ki az Excel regresszióanalízis eljárásának nehézkes menetét, kiderült, hogy az Excel ezt közvetlenül tartalmazza (rengeteg más hasonlóval együtt). Ez az FDist függvény, ami közvetlenül visszaadja a nekem szükséges p-értéket. A meghívása több másikhoz hasonlóan (például faktoriális számítás) egy kissé összetettebb formulával történik: Application.WorksheetFunction.FDist(férték, számláló szabadságfok, nevező szabadságfok) , viszont kitűnően működik.

Előzmény: pimre (15573)
tt65 Creative Commons License 2011.07.27 0 0 15585

igen, én is olyankor szoktam használni 1-el! :-)

Előzmény: Törölt nick (15583)
_Nyuszi Creative Commons License 2011.07.27 0 0 15584

Adj a felhasználónak egy plusz sort vagy oszlopot, ezt meg zárold vagy védd le vagy amit kell. Így nem jó?

Előzmény: fazonka (15580)
Törölt nick Creative Commons License 2011.07.27 0 0 15583

Igen. "alapesetben" az alapeset pedig az, ha az utolsó argumentumot elhagyod - ami így alapból 1-es (IGAZ) lesz.

Ritkán kell használom 1-essel, pl. ha intervallumot kell keresni, mondjuk egy korosításhoz.

Előzmény: tt65 (15582)
tt65 Creative Commons License 2011.07.27 0 0 15582

valami alapja, csak van:

 

 

de, van amikor tényleg úgy működik, ahogy írod.

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

Általános tévhit.

Miért kéne sorbarendezettnek lennie?

 

 

Előzmény: tt65 (15579)
fazonka Creative Commons License 2011.07.27 0 0 15580

Sziasztok!

Kellene egy kis segítség.

Adott egy oszlop,amiben a következő feltétel van:=HA(K2="M";I2; " ")

a feladat az lenne,hogy ha teljesűlt a feltétel és érték kerül a cellába azt a cellát zárolni kellene,de az üres vagy a feltételnek nem megfelelő cellába lehesen írni.

Eddig rendben is van,a baj csak akkor kezdődik ha elrontotta a beírt számot és "DEL"-el törli.

Ekkor a képlet is oda van..Megköszönném ha valaki kisegítene.

Fazon

tt65 Creative Commons License 2011.07.27 0 0 15579

igen, de az fkeresnél sorrendbe rendezettnek kell lennie, különben bukik a mutatvány

 

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

ezt lehet így is:

HA(HIBÁS(FKERES....);"van";"nincs")

Előzmény: zotilla (15574)
tt65 Creative Commons License 2011.07.27 0 0 15577

vagy C oszlopba : =HA(NINCS(HOL.VAN(B2;A:A;0));"nincs";"van")

 

Előzmény: zotilla (15574)
Sznida Creative Commons License 2011.07.27 0 0 15576

Ja bocsi, elnéztem az oszlopokat... :(

Szóval:

 

- A A1-es cellára katt.

- fomátum, feltételes formázás

- Ott kiválasztanám a legördülőben, hogy képlet értéke

- mellé beírnám ezt a képletet: =FKERES(A1;B:B;1;HAMIS)

- formátum gombra kattintva megadnám azt a formátumot amit láni akarok, én a hátteret szoktam ilyenkor változtatni.

- OK

 

Aztán formátum másolás, a A oszlop értékeire.

 

Bocs.

 

Üdv: Sznido

Előzmény: Sznida (15575)
Sznida Creative Commons License 2011.07.27 0 0 15575

Szia,

 

2003-as excelben én ezt a kövtkezőképpen csinálnám:

 

- A B1-es cellára katt.

- formátum, feltételes formázás

- Ott kiválasztanám a legördülőben, hogy képlet értéke

- mellé beírnám ezt a képletet: =FKERES(B1;A:A;1;HAMIS)

- formátum gombra kattintva megadnám azt a formátumot amit láni akarok, én a hátteret szoktam ilyenkor változtatni.

- OK

 

Aztán formátum másolás, a B oszlop értékeire.

 

Üdv: Sznido

Előzmény: zotilla (15574)
zotilla Creative Commons License 2011.07.27 0 0 15574

Sziasztok!

Kérlek segítsetek, hogyan tudonám a következő feladatott megoldani. Az A oszlopban van mondjuk egymás alatt 25 cellában adat(szám) a B oszlopban van egymás alatt 15 cellában adat(szám). A feladat az lenne, hogy keresse meg az A oszlopban lévő számok között azt amelyik a B oszlopban is megtalálható és ezeket vagy jelölje meg(vagy jelölje össze) vagy a C oszlop azonos sorában adjon vissza egy értéket egyezzőség esetén.

Előre is köszönök minden segítséget!

pimre Creative Commons License 2011.07.27 0 0 15573

Kösz, az valóban lehet, hogy nem iterációról, hanem integrál kiszámításról van szó. Ehhez sajnos nem értek.

 

De az továbbra is fennáll, hogy nem kerekítési pontosságbeli különbségekről van szó, hanem eljárásbeliről. Elképzelhető, hogy régebben az általam leírt algoritmust használták, és azóta áttértek másikra.

 

Időközben több más adatsoron is lefutattam a kétféle értékelést. Az eredmények viszonylag közeliek, egyetlen esetet kivéve, ami viszont nagyságrendi (ellenőriztem, nem elütésről, vagy adathibáról van szó). És ez utóbbi különösen zavaró.

 

saját képletem  Excel eredmény

p=0.3051              0.3044

P=0.4422              0.4366

p=0.1205              0.1239

p=0.0792            0.9697

p=0.0936              0.0970

 

Egyébként az összes többi adat ugyanaz. Tehát az általam számított érték és az Excel beépített értékelő program valamennyi tizedesre ugyanazt az eredményt adja az adatok átlaga, a regressziós egyenes paraméterei, az r és r², a t érték és az F érték esetében. Csak ez a fránya p érték más.

 

Off: valaki persze mondhatná, hogy használjam a beépített Excel függvényeket, de sajnos több munkalapon kell 100-100 adatpárra elvégeznem a munkát, amit nem szeretnék kézzel egyenként megtenni. Ezért írok programot.

 

És én azt kérem, hogy megköszönve az eddigi tippeket, hagyjuk egy időre a témát, mert ez már nem Excel programozási kérdés, hanem matematikai statisztikai. Megpróbálom ehhez értőkkel felvenni a kapcsolatot, és itt nem offolok tovább.

 

 

Előzmény: tt65 (15572)
tt65 Creative Commons License 2011.07.27 0 0 15572

Nem vagyok matematikus, de anno tanultam ilyeneket. Itt nem iterációról van szó, az egy kicsit más. Itt az van, hogy az intgerált nem lehet zárt alakban elvégezni, azaz nem lehet a primitiv függvényt meghatározni, ezért valamilyen módszerrel egy polinomot állítanak elő, valószínűleg sorfejtéssel. Ami jól illeszkedik a problémához és megbízhatóan jó eredményt ad. Az általad eredményül kapott két érték közt simán lehet különbség, bár ebben az esetben ez valóban nagynak tűnik. DE abba is gondolj bele, hogy a számítógép nem tud hatványozni, azaz nem tudja kiszámítani a 3.456^5,837 értékét, ezt is sorfejtésen alakuló algoritmusssal számolja ki ...

 

Esetleg próbáld ki az ecel beállításoknál, hogy a megjelenített pontossággal számoljon az excel, akkor mekkora az eltérés?

Előzmény: pimre (15571)
pimre Creative Commons License 2011.07.26 0 0 15571

Kösz, ez jó nyomnak tűnt. A linkből kiindulva elkezdtem keresgélni az angol nyelvű szakirodalomban. Találtam egy-két kalkulátort, ami szintén az Excel által adott értéket produkálja az enyémmel szemben. Aztán találtam képletet is hozzá, ami egészen más alapon működik, mint az enyém: http://easycalculation.com/statistics/f-test-p-value.php. Szóval lehet, hogy nem a kerekítési pontosságon múlik a dolog. Furcsa is lenne, hiszen a Double az Double pontosság, nemigen változhatott sokat az elmúlt időszakban.

 

Kell most nekem egy kis idő, amíg értelmezem ezt a képletet, és a kettő közti különbséget, de kösz a kiinduló linket.

 

Persze, ha akad itt egy matematikus, aki tudja, hogy működött az általam használt képlet, meg hogyan működik a fenti link képlete, mi köztük a különbség, mi az elméleti háttér, annak nagyon örülnék, mert nem biztos, hogy ezt magamtól meg tudom fejteni. 

Előzmény: Jozsef (15570)
Jozsef Creative Commons License 2011.07.26 0 0 15570

Én is erre gondolok. Az Fisher-féle F elosztás ( http://en.wikipedia.org/wiki/F-distribution) eloszlásfüggvényben egy integrált közelítő módon kell kiszámítani. Itt az értékes tizedesjegyek nagyban befolyásolják a pontosságot.

Egyébként érdemes lenne  még ellenőrizni, hogy az regresszió F-próbafüggvénye ugyanaz az érték mindkét módszerben.

 

Előzmény: SQLkerdes (15569)
SQLkerdes Creative Commons License 2011.07.26 0 0 15569

Bár sajnálatos módon a legtöbb képlet esetében már az egyenlőségjel utáni 10-ik karakternél elvesztem a fonalat, de a hiba okával kapcsolatban még megjegyezném, hogy akár az is lehet, hogy a későbbi excel-ek több tizedessel számolnak.

Persze lehet, hogy nem.

Előzmény: pimre (15565)
Törölt nick Creative Commons License 2011.07.26 0 0 15567

Az előbb kicsit gyorsan válaszoltam, szóval, tedd a userform eseménykezelőjébe az alábbi kódot és a form tulajdonságoknál állítsd be ezt: StartUpPosition = 0 - Manual

 

Private Sub UserForm_Activate()

  With Me
    .Width = Application.Width
    .Height = Application.Height
  End With
End Sub

Előzmény: Törölt nick (15564)
pimre Creative Commons License 2011.07.26 0 0 15566

"Amúgy az utóbbi képletet" helyesen "...képlettel" akart lenni. Ennyire hibásan általában nem fogalmazok:-)))

 

Előzmény: pimre (15565)
pimre Creative Commons License 2011.07.26 0 0 15565

Kösz, de ennyire gyermeteg hibát nem követek el. 

 

F próbáról lévén szó, a számláló szabadságfoka 1, a nevezőé n-2, az f értékét már kiszámoltam, és átadom a p értéket kiszámító függvénynek. Az algoritmus a következő:

 

a = 2 / 9  ' (helyesen 2/(9*számláló szabadságfok), de az utóbbi itt mindig 1

b = 2 / (9 * nevező szabadságfok)

zs = (1 - b) * f érték ^ (1 / 3) - 1 + a

zn = Sqr(b * f érték ^ (2 / 3) + a)

zy = Abs(zs) / zn

pérték = 0.5 * oldal / ((1 + zy * (0.196854 + zy * (0.115194 + zy * (0.000344 + zy * 0.019527)))) ^ 4) * 100

 

Amúgy az utóbbi képletet az én Excelem (Excel 2003, majd egyszer áttérek egy újabb verzióra) expression too complex hibát ad, de ez nem volt gond, felbontottam több lépésre.

 

A sejtésem az, hogy a gond az utolsó képlettel lehet. Sajnos nem vagyok matematikus, de ezt valami iterációnak gondolom. És nem tartom kizártnak, hogy nagyobb (vagy kisebb) mélységig is lehetne iterálni, és hogy az Excel beépített függvénye valami ilyesmiben tér el. 

 

Szóval örülnék, ha látnám az általuk használt algoritmust, esetleg egy matematikai statisztika könyvet, ami az algoritmust tartalmazza.

Előzmény: Jozsef (15563)
Törölt nick Creative Commons License 2011.07.26 0 0 15564

Tedd be a Form eseménykezelőjébe ezt:

 

Private Sub UserForm_Activate()
  UserForm1.Width = Application.Width
  UserForm1.Height = Application.Height
End Sub

Előzmény: Gavriel (15556)
Jozsef Creative Commons License 2011.07.26 0 0 15563

Első pillantásra a szabadsági fokok valamilyen kis eltérésére gondolok. Mindkét módszernél biztos, hogy ugyanazzal számolsz?

Előzmény: pimre (15562)
pimre Creative Commons License 2011.07.26 0 0 15562

Sziasztok!

 

Ismét segítséget kérek. Egy regresszió analizáló programon dolgozom. Lényegében kész, és szinte minden adat stimmel. A programomat lefuttatva szinte minden érték azonos az adatelemzésnél elérhető regressziószámítás paramétereivel.

 

Egyetlen kivétel a p érték, ami az F próba szignifikanciaszintjét megadja. A konkrét példáimon minimális az eltérés,  de van. Ami nálam 0.3055, az a beépített függvénynél 0.3044. 

 

Az én algoritmusom több mint 10 éves, és elég megbízható helyről kaptam annakidején. Már többször átnéztem, nem látok elütést ahhoz képest. Ugyanakkor nyugtalanít az eltérés, de az Excelnek a statisztikai rutinokat tartalmazó programját csak jelszóval tudnám megnyitni, ami érthető okokból nem elérhető felhasználóként.

 

Viszont nagyon szeretném összehasonlítani az algoritmusokat. 

 

Tudnátok segíteni?

 

Törölt nick Creative Commons License 2011.07.26 0 0 15561

Hát én valami ilyesmit csinálnék:

 

ActiveWindow.Width = UserForm1.Width
ActiveWindow.Height = UserForm1.Height

 

persze neked nem ez kell... :)

 

munkalap valamely eseménykezelőjében megadnám a szükséges paramétereket - a makrórögzítő dobja a metódusokat, mint sqlkerdes írta

 

 

Előzmény: Gavriel (15559)
SQLkerdes Creative Commons License 2011.07.26 0 0 15560

Hogy használtad?  Megadtál mindegyikhez (.left, stb) valami számot?  Mert ott kell megadni, hogy a képernyő bal felső sarka hol legyen illetve, hogy az Application window milyen magas és széles legyen (pixelben).

 

Próbáld meg macro recorderrel.  Indítsd el, mozgasd és méretezd át az Excel főképernyőt és nézd meg a kódot amit generált.

Előzmény: Gavriel (15559)
SQLkerdes Creative Commons License 2011.07.26 0 0 15557

Application.Left    

Application.Top    

Application.Width    

Application.Height

 

És mindezt berakod a Workbook Open eseménykezelőbe.

Előzmény: Gavriel (15556)
Törölt nick Creative Commons License 2011.07.25 0 0 15555

hát, elég durva.

egyébként 2010-es excelben már megvan rá a (kibővített) weeknum (HÉT.SZÁMA, vagy mi lett a neve) függvény.

 

Sőt, mssql, (transact-sql) acces sem kezeli

(t-sql-ben külön függvényt írtam rá)

Előzmény: tt65 (15552)
Törölt nick Creative Commons License 2011.07.25 0 0 15554

köszönöm szépen, az off-ért pedig elnézést mindenkitől

Előzmény: Sznida (15553)
Sznida Creative Commons License 2011.07.25 0 0 15553

Nem emlékszem már, honnan vadásztam, mert akkor betettem a start menübe, ja és otthon van meg sem tudom keresni.

Ám, ezt találtam:

http://windows.microsoft.com/hu-HU/windows7/Snipping-Tool-frequently-asked-questions

Meg ezt, ez is érdekes lehet:

http://win7.ucoz.es/load/minialkalmazasok/screen_snaper_gadget/7-1-0-386

 

Üdv: Sznido

Előzmény: Törölt nick (15551)
tt65 Creative Commons License 2011.07.25 0 0 15552

egy kis adalék: http://msdn.microsoft.com/en-us/library/bb277364.aspx

a hét számítására képlet: =INT((D7-DÁTUM(ÉV(D7-HÉT.NAPJA(D7-1)+4);1;3)+ HÉT.NAPJA(DÁTUM(ÉV(D7-HÉT.NAPJA(D7-1)+4);1;3))+5)/7) ; ha D7-ben van a dátum.

(Az év első hete  azon hét hétfőjével  kezdődik, amely az év első csütörtöki napja módszer szerint. Sajnos az outlook és az excel sem jól kezeli ezt)

Előzmény: Törölt nick (15537)
Törölt nick Creative Commons License 2011.07.25 0 0 15551

win 7 képmetszője? az hol van?

Delila, amúgy én is paint-be ctrl+v, majd szerkeszt, ment - de ez túl macerás.

Köszönöm, a  screenhunter-t meg az irfanview-t kipróbálom.

Előzmény: Sznida (15549)
Delila10 Creative Commons License 2011.07.25 0 0 15550

A "sima" a teljes képernyőt teszi vágólapra, az alt-os az aktuálisan megnyitott alkalmazásét. Még azon belül is, ha pl. az Excelben egy gyorsmenü van nyitva, azt tárolja.

 

Előzmény: Sznida (15549)
Sznida Creative Commons License 2011.07.25 0 0 15549

Én otthon a win7 képmetsző-jét használom, a cégnél win XP PrtSc, de csak simán.

 

Mi a különbség a sima, és az alt-os között??

 

Üdv: Sznido

Előzmény: Jimmy the Hand (15548)
Jimmy the Hand Creative Commons License 2011.07.24 0 0 15548

Részemről is. De én még az Alt-ot sem használom :)

Előzmény: Delila10 (15545)
Vacy Creative Commons License 2011.07.24 0 0 15547

http://www.szoftverbazis.hu/szoftver/irfanview-v4-23--magyar--OW12.html

 

Beállítható a kivágott kép mérete, helye.

Előzmény: Törölt nick (15544)
Delila10 Creative Commons License 2011.07.24 0 0 15545

Részemről Alt+Prt scr, majd Paint-be Ctrl+v. :)

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

ezeket milyen képlopóval vágjátok be?

(gondolom nem (alt)+prt scr, aztán vmi szerkesztőben igazgatott képet raktok ide.

Előzmény: Jimmy the Hand (15541)
Törölt nick Creative Commons License 2011.07.23 0 0 15543

Üdv!

 

Lenne egy-két kérdésem. Az első az lenne, hogy hogyan lehet azt megcsinálni, hogy van négy mérkőzés és ugye értelemszerűen a négy mérkőzésből továbbjut négy csapat és ezt a négy csapatot beírja a következő fordulóba autómatikusan és a négy győztes csapat nevét ki is emelje vastagon? Majd a két elődöntő győztesét automatikusan betegye a döntőbe? Illetve van négy féle verseny és mind a négynek más-más a pontrendszere, de egy tabellán számítják. Ez megoldható valahogy? Aki kiesik az első négyes mérkőzésén ők is más pontot kapnak mint aki ugyan azon verseny elődöntőjében esnek ki. Szóval 4 féle pontszámítás, de a 4 pontszámításon belül 4 adható. Negyeddöntős, elődöntős, döntős, győztes. Bocsi, ha bonyolultan fogalmaztam! Köszi előre is!

 

Üdv.

Jimmy the Hand Creative Commons License 2011.07.22 0 0 15541

A munkafüzet fölső keretére jobb gombbal kattintva is elérhető. Próbáld ki azt.

Előzmény: Gavriel (15540)
Jimmy the Hand Creative Commons License 2011.07.22 0 0 15538

Á, igen, emlékszem egyszer volt már erről szó. Csak nem használom, ezért aztán kipereg.

Viszont xl2003-ban a 21-gyel nem meg az a kód, amit az előbb beküldtem...

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

a magyar naptári hét számítás eltér a nemzetközitől, nálunk a csütörtökös hét számít elsőnek.

21-et kell a 2. argumentumba írni és akkor magyarul lesz (Legalábbis 2010-es xlben)

Előzmény: Jimmy the Hand (15536)
Jimmy the Hand Creative Commons License 2011.07.22 0 0 15536

Az lehet, de az Analysis Toolpak-ba beépített WEEKNUM függvény, amit a kérdező használ, 30-at ad, és gondolom, neki ez kell. Amúgy az én naptáramban is 29. hét van.

Előzmény: Gavriel (15533)
Jimmy the Hand Creative Commons License 2011.07.22 0 0 15535

Erre csak kerülő megoldást tudok: két ablak ugyanarról a munkafüzetről. (Ablak -> Új ablak menüpont)

Ha az egyiket görgeted, a másik nem mozdul, de amit az egyikbe beírsz, az a másikban is ott van.

Csak megfelelően el kell rendezni őket a képernyőn.

Előzmény: Gavriel (15529)
Jimmy the Hand Creative Commons License 2011.07.22 0 0 15532

    Dim a As Long
    a = Evaluate("WEEKNUM(TODAY(),1)")

Előzmény: wawabagus (15530)
wawabagus Creative Commons License 2011.07.22 0 0 15530

Sziasztok,

Hogyan lehet a legegyszerűbben Weeknum-ot számolni VBA-ban.

Tegyük fel a mai nap today() weeknum-ját?

 

Köszönöm a segitséget!

Y

Jimmy the Hand Creative Commons License 2011.07.22 0 0 15528

"Bármit megpróbálok a függöleges görgetés megmarad a kijelölt oszlopoknál."

 

15508-ban még az volt a baj, hogy "megfogja a sort is". Most meg az a baj, hogy nem fogja meg.

????

Mit is szeretnél tulajdonképpen elérni?

 

 

Előzmény: Gavriel (15525)
Sznida Creative Commons License 2011.07.22 0 0 15526

Szia,

 

Fel tudod tölteni a file-t? Megnéznénk, hogy mi lehet a baja!

 

Üdv: Sznido

Előzmény: Gavriel (15525)
Jimmy the Hand Creative Commons License 2011.07.22 0 0 15524

Ha kijelölsz egy teljes oszlopot, és menüből választod az Ablak->Ablaktábla rögzítése parancsot (ami a VBA-s FreezePanes=True megfelelője) akkor a kijelölt oszloptól balra minden rögzítve lesz, jobbra pedig szalad. Sorok rögzítettségére a művelet nincs hatással. Én még olyan Excelt nem láttam, ahol ez ne így működött volna, pedig láttam már néhányat. Nehezemre esik elhinni, hogy a tiéd kivétel lenne.

Előzmény: Gavriel (15521)
Sznida Creative Commons License 2011.07.22 0 0 15523

Nincs mit!

Örülök, hogy segítettem. (Ha segítettem, mert lehet a google barátod volt a megoldás kulcsa)

 

Üdv: Sznido

Előzmény: Xooo (15522)
Xooo Creative Commons License 2011.07.22 0 0 15522

Szia !

 

Köszönöm a segítséget, közben 3.5 órás guglizással sikerült megoldani a problémát. Az volt a baj a legördülő listákkal, hogy bármit kiválasztottál nem az jelent meg, hanem visszaugrott a lista elejére, ugyanis a makró az egész munkafüzetre érvényes volt és így szöveget sem lehetett beírni sehova és a listák sem működtek. A megoldás ez lett:

 

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim OldVal As Variant, NewVal As Variant
If Union(Range("$F3:$F100"), Target).Address = Range("$F3:$F100").Address Then
Application.EnableEvents = False
    NewVal = Target.Value
    Application.Undo
    OldVal = Target.Value
     If IsNumeric(OldVal) And IsNumeric(NewVal) Then
       Target.Offset(0, 1).Value = NewVal + Target.Offset(0, 1).Value
    End If
    Target.Value = NewVal
  Application.EnableEvents = True
  End If
  If Union(Range("$M3:$M100"), Target).Address = Range("$M3:$M100").Address Then
Application.EnableEvents = False
    NewVal = Target.Value
    Application.Undo
    OldVal = Target.Value
     If IsNumeric(OldVal) And IsNumeric(NewVal) Then
       Target.Offset(0, 1).Value = NewVal + Target.Offset(0, 1).Value
    End If
    Target.Value = NewVal
  Application.EnableEvents = True
  End If

End Sub

 

Így a beviteli cella mellett lévő cellába adja össze a számokat és a beviteli cellában mindig látszik az utolsó érték.

Igaz hogy mire rájöttem kifolyt mindkét szemem, de működik. Köszönöm szépen a segítségedet :)

Előzmény: Sznida (15517)
Törölt nick Creative Commons License 2011.07.21 0 0 15519

Köszi, iszonyat jó ötlet :)

 

Előzmény: SQLkerdes (15518)
SQLkerdes Creative Commons License 2011.07.21 0 0 15518

http://chandoo.org/wp/2011/07/20/interactive-dashboard-using-hyperlinks/

 

Na, ezek azok amitől leteszem a hajamat:

 

"Do you know that you can use a UDF as source for hyperlink.

Just like we can write =HYPERLINK(“http://chandoo.org/”,”Click here”)
we can also write =HYPERLINK(myFunction(),”Click here”)

And Excel would run your function when user clicks on the link.
But, there is more to it.
Excel would also run the function, when you place your mouse on the link. No need to click!"

 

"But, seasoned VBA programmers would know that Functions are not allowed to change values in other cells or format them. Well, that restriction does not apply if you use a function from Hyperlink!!!"

 

Most komolyan, ezeket a trükköket ki találja meg?

Ilyenkor jövök rá, hogy van okom szerénynek lenni excel témakörben...

 

Sznida Creative Commons License 2011.07.21 0 0 15517

Szia,

 

Azt a legördülős részt nem értem, de az oszlopra így tudod korlátozni a makrót:

 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim OldVal As Variant, NewVal As Variant
If Not Intersect(Target, Range("F:F,L:L")) Is Nothing Then
    If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    NewVal = Target.Value
    Application.Undo
    OldVal = Target.Value
    If IsNumeric(OldVal) And IsNumeric(NewVal) Then
        Target.Value = NewVal + OldVal
    End If
    Application.EnableEvents = True
End If
End Sub

 

Van még egy hátránya ennek a makrónak, hogy egy cella értékét nem tudsz törölni, csak ha tartományt jelölsz ki. Ez nem tudom jó-e vagy rossz, lehet Neked éppen így jó!

 

Üdv: Sznido

Előzmény: Xooo (15512)
wawabagus Creative Commons License 2011.07.21 0 0 15516

Szia Jimmy,

Köszi!!

Hát majdnem ezt, de végül ez lett:

TransferSpreadsheet, itt klasszul lehet tovább részletezni, hogy hova mentse pontosan.

Tökjó, persze mindig jönnek újabb kihivások...

 

Pl miért tűnnek el a nulla értékek, amik még megvannak a kereszttáblában, de ha már egy táblát csinálok belőle ugyenbből a kersezttáblából, akkor már csak üres cellát ad...

 

Apró bosszúságok, amit idegesítőek :-DDD

 

:-)

Előzmény: Jimmy the Hand (15499)
tt65 Creative Commons License 2011.07.21 0 0 15515

aha. akkor nekem se

Előzmény: Gavriel (15513)
Jimmy the Hand Creative Commons License 2011.07.21 0 0 15514

Nekem nem fogja meg.

Előzmény: Gavriel (15508)
Xooo Creative Commons License 2011.07.21 0 0 15512

Sziasztok !

 

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim OldVal As Variant, NewVal As Variant
  If Target.Count > 1 Then Exit Sub
   Application.EnableEvents = False
    NewVal = Target.Value
    Application.Undo
    OldVal = Target.Value
     If IsNumeric(OldVal) And IsNumeric(NewVal) Then
       Target.Value = NewVal + OldVal
    End If
  Application.EnableEvents = True
End Sub

 

Az előző kérdésemhez találtam ezt a makrót, ami tökéletesen megfelel a célra amit írtam. Ha bármelyik aktív cellába beírok egy számot hozzáadja a cella aktuális étékéhez. Tehát ha a cella 2, én beírok 3-at akkor 5-öt mutat. Egy gondom van vele, hogy a táblázatom felső sorában van legördülő lista, stb ami ezzel a makróval nem működik. Lehet valahogy csak az F és az L oszlopra megadni neki egy range-t....

 

Köszönöm szépen ! :)

tt65 Creative Commons License 2011.07.21 0 0 15511

a vízszintes elválasztó valamit, ami megosztja a táblázatot.

sajna képet most nem tudok beszúrni, ami megmutatná mire gondoltam

Előzmény: Gavriel (15510)
tt65 Creative Commons License 2011.07.21 0 0 15509

a sort húzd le az ablak aljáig is 'voila eltűnik!

Előzmény: Gavriel (15508)
Jimmy the Hand Creative Commons License 2011.07.21 0 0 15507

Jelölj ki egy oszlopot, és utána rögzítsd az ablakot.

Előzmény: Gavriel (15506)
Jimmy the Hand Creative Commons License 2011.07.21 0 0 15505

Igen, attól függ, hogy mi az aktív cella a FreezePanes parancs kiadásakor.

Ha pl. E11, akkor 1-10. sorok ill. A-D oszlopok rögzítettek.

Előzmény: Gavriel (15503)
Xooo Creative Commons License 2011.07.21 0 0 15504

Sziasztok !

 

Az alábbi dologban szeretném a segítségeteket kérni:

 

Adott pl A1, B1, C1 cella

 

A1-be írok több számot, ami C1-ben összegződne úgy, hogy B1-ben mindig megjelenne mi volt az utolsó szám amit A1-be írtam, egyfajta önellenőrzés céljául. Az A1-be írt szám nem kellene hogy ott maradjon, hasonlóan működne mint egy számológép. Ez egy havi összesítő táblázatomhoz kellene de nem jövök rá hogyan lehetne megoldani. Nyilván ennél bonyolultabb a dolog, ez csak egy szegmense az egész táblázatnak.

 

Köszönöm a segítséget / ötleteket !

 

Üdv mindenkinek.

Jimmy the Hand Creative Commons License 2011.07.21 0 0 15502

"Szóval másik workbook munkalapjára így már nem tudsz hivatkozni..."

 

... csak kerülő úton:

 

Dim wb As Workbook, ws As Worksheet

Set wb = Workbooks("Másik workbook.xls")

Set ws = wb.Sheets(wb.VBProject.VBComponents("Sheet2 kódnév").Properties("Name").Value)

Előzmény: SQLkerdes (15501)
SQLkerdes Creative Commons License 2011.07.20 0 0 15501

A Sheet2 az adott munkalap kódneve, ami nem változik bárhanyadik lesz is a munkalap a workbookon belül illetve bármire is változtatják a nevét.

Szerintem hasznos dolog ezt használni, egyetlen általam ismert korlátozása van:  csak a makrót tartalmazó workbookon belül működik.  Szóval másik workbook munkalapjára így már nem tudsz hivatkozni.

Előzmény: wawabagus (15489)
wawabagus Creative Commons License 2011.07.20 0 0 15500

Szia Jimmy,

Hááát, lehet hogy erre.

Kipróbálom...

Köszi szépen!!

Y

Előzmény: Jimmy the Hand (15499)
Jimmy the Hand Creative Commons License 2011.07.20 0 0 15499

Van itt ez a módszer:

DoCmd.OutputTo acOutputQuery, "query neve", acFormatXLS, "D:\teszt.xls", True

 

Erre gondoltál?

Előzmény: wawabagus (15498)
wawabagus Creative Commons License 2011.07.20 0 0 15498

Sziasztok!

Ért esetleg valaki Access quiery exportálásához konkrét excel templétbe VBA segitségével?

 

Tehát pl. lefut XY quiery amit a macro kiexportál a TEMPLÉT-be pl b4-es cellába mint value...

Nehéz ügy ez?

 

Köszi a segtséget!

Sznida Creative Commons License 2011.07.20 0 0 15497

Köszönöm az infókat, Neked is Jimmy!

Megfontolom, s így fogok tenni.

Jimmy, ezt kipróbáltam, s működik védett módban is lefut a kód!

 

Köszönöm még egyszer!

 

Üdv: Sznido

Előzmény: Gavriel (15496)
Jimmy the Hand Creative Commons License 2011.07.20 0 0 15495

Sajnálom, ebben a kérdésben nem tudok segíteni.

Utánakerestem én is, és egybehangzóan állítják mindenütt, hogy a VBA project védelme kódból nem érhető el, nem módosítható. Amit belinkeltél, az a SendKeys művelettel operál, ami tulajdonképpen, szimulálni próbálja a billentyűleütéseket, mintha manuálisan csinálnád a védelem beállítását. A SendKeys nagyon megbízhatatlan dolog, aki szakértőket én ismerek, mindenki fújol rá. Bármi történhet a billentyűkódok elküldése közben, ami megváltoztatja az aktív ablakot, vagy ilyesmi, és máris hibás eredményt kapsz. Vagy pl. ha az első x darab billentyűkód feldolgozásához kell egy kis idő, mielőtt következőt is fogadni tudja az alkalmazás, a SendKeys meg nyomatja a kódokat rendületlenül...

 

Szóval a SendKeys semmiképpen nem ajánlott olyan kényes műveletek elvégzésére, mint pl. egy jelszó beállítása. Ha valami hiba csúszik a műveletbe, megeshet, hogy ott állsz egy levédett projekttel, és nem tudod a jelszót.

 

A másik dolog, hogy úgy hírlik, egyes makrók nem is futnak le, ha a VBA projekt le van védve.

 

Sznida Creative Commons License 2011.07.19 0 0 15494

Bámulatos!!!

Köszönöm szépen!!!! Nagyon jó, nem is gondoltam volna, hogy ezt így meg lehet csinálni!

 

Van még egy kérdés, hogyan lehet ezek a file-ok VB project-jeit védeni, tehát programozni akarom a:

Look project for viewing = True

Password="teszt"

 

Ezt találtam a google-ban:

http://www.mrexcel.com/archive/VBA/29825.html

 

Lefut szépen, de nem történik meg a védelem beállítása, lehet nem is csinálja?

 

Köszönettel: Sznido

Előzmény: Jimmy the Hand (15490)
Delila10 Creative Commons License 2011.07.19 0 0 15493

Nincs mit.

 

Szia

Delila

Előzmény: wawabagus (15492)
wawabagus Creative Commons License 2011.07.19 0 0 15492

Köszi szépen a segítséget Delila10 :-)!!!

 

Előzmény: Delila10 (15491)
Delila10 Creative Commons License 2011.07.19 0 0 15491

Nem figyeltem fel a With-es sorodra,  nálam kiakadt.

 

A mindenkori 2. lapra történő hivakozás Sheets(2).

Előzmény: wawabagus (15489)
Jimmy the Hand Creative Commons License 2011.07.19 0 0 15490

Sub teszt()
    Dim FPath As String, FName As String
    Dim wb As Workbook, LineCount As Long
    Dim WBModule As VBIDE.CodeModule
    
    FPath = "D:\"
    FName = Dir(FPath & "\*.xls", vbNormal)
    While Not FName = ""
        Set wb = Workbooks.Open(FPath & "" & FName)
        Set WBModule = wb.VBProject.VBComponents("ThisWorkbook").CodeModule
        With WBModule
            LineCount = .CountOfLines + 1
            .InsertLines LineCount, "Private Sub Workbook_BeforePrint(Cancel As Boolean)"
            LineCount = LineCount + 1
            .InsertLines LineCount, "    Cancel = True"
            LineCount = LineCount + 1
            .InsertLines LineCount, "    MsgBox (""Nem nyomtatható dokumentum!"")"
            LineCount = LineCount + 1
            .InsertLines LineCount, "End Sub"
        End With
        wb.Close savechanges:=True
        FName = Dir()
    Wend  
End Sub

Pár dolog kiegészítésképpen:

1. A "kezelendő" fájlokat gyűjtsd egy mappába, és azt a mappát add meg FPath változó értékeként.

2. A Tools->References menüben kapcsold be a hivatkozást a Microsoft Visual Basic for Applications Extensibility komponensre.

3. Az Excel Eszközök->Beállítások->Biztonság->Makróvédelem->Megbízható közzétevők lapon tedd be a pipát a "Visual Basic Projekthez való hozzáférés megbízható" beállítás elé.

 

 

Előzmény: Sznida (15485)
wawabagus Creative Commons License 2011.07.19 0 0 15489

:-). értem. De működik a sima With Sheet2 is :-)...

 

Én ezt úgy értelmeztem, hogy ez abból a szempontból jó, hogy a mindenkori Sheet2-t fogja venni, még ha nem is ez a neve...

 

Ilyet kategórikusan nem szabad csinálni?

 

:-)

 

 

Előzmény: Delila10 (15488)
Delila10 Creative Commons License 2011.07.19 0 0 15488

Mert ez a helyes szintaktika, így kell hivatkozni egy lapra. :-)

A With Sheet2-nél hibát jelez. Azt hiszem, változónak értelmezi a Sheet2-t.

 

Az előző hsz-ban With Sheets2-t írtam véletlenül.

Előzmény: wawabagus (15487)
wawabagus Creative Commons License 2011.07.19 0 0 15487

Szia!

Nagyon köszönöm a segítséget. Közben már elkezdett működni a macro :-), de kijavítottam a YEAR-t Period-ra...remélem azt szabad használni.

 

Miért kell így írni?

"A With Sheets2 helyett With Sheets("Sheet2")-t írj."

 

 

Előzmény: Delila10 (15486)
Delila10 Creative Commons License 2011.07.19 0 0 15486

A Year VB-s kulcsszó, nem szabad ilyen nevet adni egy változónak. Legyen pl. Yearr - mert múlt idő :)

 

BusinessType = ThisWorkbook.Names("business").RefersTo

sor értéke "=Sheets1!$J$1" (ha ennek a cellának adtad a business nevet).

 

Az értékadásnál le kell venned a kezdő = jelet. Az értékadó sor ezután

BusinessType = Range(Right(ThisWorkbook.Names("business").RefersTo, Len(ThisWorkbook.Names("business").RefersTo) - 1))

 

A With Sheets2 helyett With Sheets("Sheet2")-t írj.

 

Etekkel a változtatásokkal működik, kipróbáltam.

Előzmény: wawabagus (15484)
Sznida Creative Commons License 2011.07.19 0 0 15485

Sziasztok,

 

Ismét van egy kérdésem:

Van nagyon sok excel file-om (kb. 500 db), ezeket kell megnyitnom, és minden egyes file VBA-ja belemásolni a következő kódot:

 

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Cancel = True
MsgBox ("Nem nyomtatható dokumentum!")
End Sub

 

Az a kérdés, hogy hogyan lehet ezt egyszerűen megcsinálni, hogy ne kelljen manuálisan egyesével megnyitni a file-t, aztán VBA felület, This workbook, ctrl+v, ... stb.

 

Ötleteiteket előre is köszönöm!

 

Üdv: Sznido

wawabagus Creative Commons License 2011.07.19 0 0 15484

Sziasztok!

A munkafüzetben definiált namerange-et szeretnék használni VBA-ban.

Pl. B2 = "year" name range

Aztán a VBA-ban erre a name rangere szeretnék hivatkozni.

Így próbálkoztam vele. Van ennek így értelme?

Köszi a segítséget :-)!!!

 

 

-------

Dim Year As Variant
Dim BusinessType As Variant
Dim Country As Variant

Year = ThisWorkbook.Names("year").RefersTo
BusinessType = ThisWorkbook.Names("business").RefersTo
Country = ThisWorkbook.Names("country").RefersTo

With Sheet2
            .AutoFilterMode = False
                With .Range("A1:G1")
                     .AutoFilter
                     .AutoFilter Field:=1, Criteria1:= Country
                     .AutoFilter Field:=6, Criteria1:= BusinessType
                     .AutoFilter Field:=7, Criteria1:= Year
                End With
    End With
    
With Sheet3
            .AutoFilterMode = False
                With .Range("A3:E3")
                     .AutoFilter
                     .AutoFilter Field:=1, Criteria1:= Country
                     .AutoFilter Field:=4, Criteria1:= BusinessType
                End With
End With
End Sub

pimre Creative Commons License 2011.07.18 0 0 15483

Kösz, most már étem. Ld: #15482.

Előzmény: Sznida (15481)
pimre Creative Commons License 2011.07.18 0 0 15482

Időközben újraolvastam, vagy inkább újraértelmeztem a könyvrészletet. Azt nem írta a könyvem (csak én képzeltem hozzá), hogy az Activesheet.protect userinterfaceonly:=True parancs kiadása után a létrejött lapvédelmet is csak program írhatja felül.

Csak arról írt, hogy bizonyos parancsokat azért a védett munkalapon is alkalmazni lehet programból.

 

A jelszavas védelem majd csak későbbi téma lesz:-)))

 

Mégegyszer kösz.

Előzmény: Jimmy the Hand (15464)
Sznida Creative Commons License 2011.07.18 0 0 15481

Szia,

 

Ha kézzel megadod a jelszót, akkor azt makróból nem tudod feloldani, csak ha beírod a kódba a jelszót is.

Ha makróval védesz minkalapot, jelszóval, akkor a kézi feloldáshoz is kell a jelszó, aki nem tudja a jelsazót nem tudja (olyan egyszerűen) feloldani.

 

Érted már?

 

Üdv: Sznido

Előzmény: pimre (15480)
pimre Creative Commons License 2011.07.18 0 0 15480

Köszönöm. Ezek szerint password nélkül nem működik?

 

Mert a tankönyvem szerint (Kovalcsik Géza: AZ Excel'97 programozása) ezt (a userinterfaceonly paramétert) csak programból állíthatjuk be, és kapcsolhatjuk ki. De jelszóról nem ír, ami nem is lenne nekem elsőre logikus, hiszen jelszóval védeni nem csak programból lehetne. A kézzel bekapcsolt lapvédelemnél is meg lehet adni jelszót.

 

Szóval még mindig nem értem. De azért kösz.

Előzmény: Jimmy the Hand (15464)
tajhamer Creative Commons License 2011.07.18 0 0 15479

Nagyon köszönöm a segítséged!

Üdv,

Tiha

Előzmény: mimi_bacsi (15477)
mimi_bacsi Creative Commons License 2011.07.18 0 0 15477

Töltök fel egy példa fájlt, azt értelmezd és használd a saját adataidra...

 

A letöltéshez katt ide

 

Előzmény: tajhamer (15476)
tajhamer Creative Commons License 2011.07.18 0 0 15476

Kedves mimi_bacsi!

Köszönöm, megpróbálom ezzel, majd jelentkezem, hogy mit tudtam összehonzi :)

Segítséged köszönöm,

Tajha

Előzmény: mimi_bacsi (15475)
mimi_bacsi Creative Commons License 2011.07.18 0 0 15475

Én így csinálnám:

 

Egy fájlban legyen (minimum) két munkalapod. Az egyikben (Munkalap1) a cégeket (B2) és a hozzá tartozó címeket (C2) írdd be, külön cellákba. Az A2-be egy azonosító (pl. 0001, 0002, 0003.....) növekvő egész számot adj, arra fogsz mindig hivatkozni a másik munkalapon.

A másik munkalapon (Munkalap2) az A2 cellába beírod az egyik azonosító számot (pl. 0001) és FKERES függvénnyel hivatkozol a Munkalap1-ben lévő címre

 

Segítségül a súgóból kimásoltam az FKERES szintaxisát is

 

FKERES szintaxis

=FKERES(keresési_feltétel; tömb; index; rendezett)

A keresési_feltétel a tömb első oszlopában keresett érték.

A tömb legalább két oszlopból álló hivatkozás.

Az index a visszakapni kívánt értéket tartalmazó oszlop száma a tömbben. Az első oszlop száma 1.

A rendezett opcionális paraméter, amely azt jelöli, hogy a tömb első oszlopa növekvő sorrendben van-e rendezve. Ha az első oszlop nincs növekvő sorrendben rendezve, akkor írja be a logikai HAMIS vagy a nulla értéket. A rendezett oszlopokban a keresés sokkal gyorsabb, illetve a függvény minden esetben visszaad egy értéket. Ez igaz még akkor is, ha a függvény a keresési értékkel nem talált pontos egyezést, feltéve, hogy az érték a rendezett lista legmagasabb és a legalacsonyabb rendezett értéke között található. Nem rendezett listák esetén a keresési értéknek pontosan egyeznie kell. Ha nem így van, a függvény a következő üzenetet adja vissza: Hiba: Érték nem érhető el.

 

Előzmény: tajhamer (15473)
Jimmy the Hand Creative Commons License 2011.07.18 0 0 15474
Előzmény: Gavriel (15470)
tajhamer Creative Commons License 2011.07.18 0 0 15473

Sziasztok,

Kis segítséget szeretnék kérni tőletek. Egy listát szeretnék létrehozni, amelyben a megfelelő cellát automatikusan kellene kitöltse megadott adatokkal az excel, vagyis:

Beírom a cégnevet, ő meg írja be a címet mellé. A cégnevekhez tartozó cím állandó :) Gondolom kell készíteni egy listát a cégnevekkel és a hozzájuk tartozó címekkel, és ezeket kell behivatkozni valahogy a készítendő listába, de sajnos ez még meghalad engem :)

 

Segítségeteket előre is köszönöm,

Tajha

Jimmy the Hand Creative Commons License 2011.07.18 0 0 15472

Debug -> Compile lefut rendesen?

 

A Private Sub UserForm_Initialize() szubrutin a Form kódlapján van?

Előzmény: Gavriel (15470)
Törölt nick Creative Commons License 2011.07.18 0 0 15471

ááááá

köszi!

régi válasz nélkül maradt kérdésem :)

megláttam, h ilyet írsz - rögtön fel is kaptam rá a fejem.

Előzmény: Jimmy the Hand (15462)
Sznida Creative Commons License 2011.07.18 0 0 15468

Szia,

 

VBA felületen: Insert, class module

Akkor mejelenik bal oldalon a fában, rákattintasz, és a propeties window-ban (F4) meg tudod adni a nevét!

 

Üdv: Sznido

Előzmény: Gavriel (15466)
Jimmy the Hand Creative Commons License 2011.07.18 0 0 15467

Uganott, ahol az összes többi objektum tulajdonságait is beállítod: a Properties Window-ban.

Alapból ezt látod:

Name = Class1

A "Class1"-et kell lecserélni.

Előzmény: Gavriel (15466)
Jimmy the Hand Creative Commons License 2011.07.18 0 0 15464

Ez így korrekt. Különben nem tudnál te sem hozzáférni ahhoz, amit egyszer már zároltál.

Ha azt akarod, hogy a felhasználónak meg kelljen dolgozni a munkalap eléréséért, akkor használd a Password paramétert is:

 

Activesheet.protect userinterfaceonly:=True, Password:="gb jsfgb fgi"

Előzmény: pimre (15461)
Jimmy the Hand Creative Commons License 2011.07.18 0 0 15463

Naná, hogy elszúrtam.

Szóval legyen a Class module neve clsGomb.

A Private Sub UserForm_Initialize makróban a ctrl változó deklarálása felesleges.

A többi elvileg oké.

 

Előzmény: Jimmy the Hand (15462)
Jimmy the Hand Creative Commons License 2011.07.18 0 0 15462

Kell egy ClassModule, legyen a neve clsCtrl. Erre:

 

Public WithEvents myGomb As CommandButton

Private Sub myGomb_Click()
    MsgBox myGomb.Name
End Sub

 

Userformra:


Dim cEgyenGombok As Collection

Private Sub UserForm_Initialize()
    Dim i As Long, ctrl As CommandButton, cls As clsGomb
    
    Set cEgyenGombok = New Collection
    For i = 1 To 10
        Set cls = New clsGomb
        Set cls.myGomb = Me.Controls("Gomb" & i)
        cEgyenGombok.Add cls
    Next
End Sub

 

(Robbantómesternek üzenem, például erre jó a ClassModule.)

Előzmény: Gavriel (15459)
pimre Creative Commons License 2011.07.18 0 0 15461

Sziasztok!

 

Én is segítséget szeretnék kérni. Most tanulom a Visual Basic nyelvet és a tankönyvben eljutottam a zárolások kérdésköréhez.

 

Itt a következő egyszerű parancsot találtam: Activesheet.protect userinterfaceonly:=True

 

Végrehajtom, minden rendben lévőnek látszik, a munkalap zárolt, az egyes cellák adatai nem elérhetők. De! A leírás szerint ez elvileg megakadályozná, hogy a felhasználó hozzáférjen a munkalaphoz. Viszont amint rákattintok az Eszközök menüben a lapvédelem feloldására, ezt szó nélkül végrehajtja, és onnantól elérhetőek az adatok.

 

Mit csinálok rosszul, vagy mit értek félre?

Amorius Creative Commons License 2011.07.17 0 0 15460

Sziasztok !

 

 Egy kis segítséget szeretnék kérni. 2007-es excel-nél lehetőség van a sorok csoportba foglalására. Melóban készítettem egy jó kis táblázatot, amibe az előbb említett alkalmazást is beleépítettem. Mivel elég sok hivatkozást és képletet tartlamaz, így szeretném levédeni a táblázat legnagyobb részét. Normál esetben ez nem okozna gonddot. Lapvédelemnél megadom, hogy zárolt cellákra még ne is lehessen kattintani. Viszont ha ezt a védelemt bekapcsolom, a bal oldalon lévő csoportba foglalást sem lehet használni. Mivel nem csak én használnám, így a védelem nélkülözhetetlen lenne. A jobb átláthatóság érdekében a csoportba foglalást sem szeretném kivenni. Van valami megoldás erre ?

Gondoltam arra is, hogy az összes hivatkozást és képletet átteszem a "munka2"-re ott elrejem az oszlopokat és simán le lehet zárolni mindent. Így ott nem is látszik semmi :) Viszont még mindig ott van a "munka1"-en a táblázat, aminek van jópáar cellája amibe nem szeretném ha kontárkodnának.

 

Segítségeteket előre is köszönöm.

Jimmy the Hand Creative Commons License 2011.07.17 0 0 15458

Egyforma típusú objektumok (pl. az összes gomb) vagy vegyesen vannak?

Előzmény: Gavriel (15457)
Jimmy the Hand Creative Commons License 2011.07.16 0 0 15455

For i=1 To 10

Me.Controls("Gomb" & i).Caption = "Caption szöveg")

Next

 

A fenti kód akkor működik, ha a form kódlapján van. Ha máshonnan hivatkozol a Form1 gombjaira, akkor:

Form1.Controls("Gomb" & i).Caption = "Caption szöveg")

Előzmény: Gavriel (15454)
mimi_bacsi Creative Commons License 2011.07.14 0 0 15453

Megtaláltam a 9732-es sorszámú felvetést. Mára ennyi, holnap bővebben kérdezek ezzel kapcsolatban, amit láttam Delila csatolt képén, szerintem ilyenre van szükségem.....:-)

 

Előzmény: mimi_bacsi (15451)
tt65 Creative Commons License 2011.07.14 0 0 15452

gyorskeresés "térkép" szóra!

Előzmény: mimi_bacsi (15451)
mimi_bacsi Creative Commons License 2011.07.14 0 0 15451

Hogy tudom gyorsan megkeresni a 9732-es hozzászólást?

A keresés és a gyorskeresés innen menüben nem sikerült ez a "nagy" feladat...:-( 

Előzmény: Delila10 (15449)
_Nyuszi Creative Commons License 2011.07.14 0 0 15450

"Ennél semlegesebb hátterű térképet kell választanod, mert ezen zavaróak a jelölések."

Vagy halványítani rajta valami szerkesztőprogival, talán az is segít, de eléggé fapados megoldás.

Előzmény: Delila10 (15449)
Delila10 Creative Commons License 2011.07.14 0 0 15449

Volt már hasonló kérdés, nézd meg a #9732-es hozzászólást, és a rá adott válaszokat.

 

Nálad köröket kell elhelyezni a helységeknél a térképen, és ezeknek a köröknek kell adnod a helység nevét úgy, ahogy az előző térképes kérdésnél a kerületek nevét kellett megadni (#9753).

 

Meg lehet változtatni a körök színét és méretét, de ahhoz tudni kell, melyik oszlopban vannak a nevek, melyikben a kapcsolat minősége (válaszol, ügyfél, nem válaszol), és hol van az adat, ami a kör méretét meghatározza.

 

 

Ennél semlegesebb hátterű térképet kell választanod, mert ezen zavaróak a jelölések.

Előzmény: mimi_bacsi (15441)
mimi_bacsi Creative Commons License 2011.07.14 0 0 15448

Köszönöm a válaszodat, sajnos azt kihagytam a levelemből első kérdéskor, hogy Mac felhasználó vagyok, és amint látom, mindkét program Win környezetet kíván! :-(

Nagyon köszönöm a válaszodat!

Előzmény: Törölt nick (15446)
tt65 Creative Commons License 2011.07.14 0 0 15447
Előzmény: mimi_bacsi (15441)
Törölt nick Creative Commons License 2011.07.14 0 0 15446

Még eszembe jutott a crystal report, ez a legjobb táblázat kezelő - integráltan van benne map funkció. Viszont aki excelhez szokott, az kezdheti elölről a tanulást :)

Előzmény: mimi_bacsi (15441)
Törölt nick Creative Commons License 2011.07.14 0 0 15445

Ms MapPoint

Erre (is) való

 

 

http://www.microsoft.com/mappoint/en-us/home.aspx

 

 

Előzmény: mimi_bacsi (15441)
Törölt nick Creative Commons License 2011.07.14 0 0 15444

hát nemtom... assemblerben is többnek kell lennie egy sornál, valahogy így

A:=A xor B;
B:=B xor A;
A:=A xor B;

 

vagy ha numerikus értékekről van szó, akkor ezt át lehet ültetni így is:

 

A = A+B
B = A-B
A = A-B

 

és akkor már nem kell a harmadik változó.

sőt, alighanem xor van vba-ban is

Előzmény: Gavriel (15442)
mimi_bacsi Creative Commons License 2011.07.14 0 0 15441

Excelben vannak adataim, amiket szeretnék megjeleníteni egy Magyarország térképen (az a célom, hogy bemutassam - településszinten - mennyi megkeresésem volt, és abból mennyien válaszoltak, mennyien nem válaszoltak, a válaszolók közül kikkel kezdtünk el dolgozni, és azért kellene térképen megjeleníteni, mert így területileg (is) látszik, hogy mely országrészen, területen voltak aktívak a megkeresett ügyfelek)

 

A kérdésem az, hogy van-e olyan megoldás, amivel az adattáblázatot egy térképpel össze lehet kötni, és a térképen az adatok megjelennek (mondjuk úgy, hogy a válaszolók zöld, a nem válaszolók piros, míg a szerződött ügyfelek akár sárga jelölést kapjanak.

 

Találtam egy példát, valami hasonlóra gondoltam, mint ez a térkép

 

 

 

Van valakinek ötlete, javaslata ezzel a témával kapcsolatban?

Törölt nick Creative Commons License 2011.07.14 0 0 15439

1. replace-vel kicserélném a törzsadatokban az egyiket a másikra.

 

rögzítő ezt dobja, lehet egyszerűsíteni:

 

Cells.Replace What:="_", Replacement:="-", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

 

2. joker karaktereket használnék az írásjelek helyett keresésnél. (? egy karakterhez, vagy *  több karakterhez)

Előzmény: Gavriel (15438)
Törölt nick Creative Commons License 2011.07.14 0 0 15437

ez csak sima érték átadás lehet, nem?

pl.:

 

a = 1
b = 2
a = b

Előzmény: Gavriel (15436)
Delila10 Creative Commons License 2011.07.13 0 0 15435

Rendezd az összegeket csökkenő sorrendbe, tegyél rá autoszűrőt, és a Helyezés-nél jelöld be az első 15-öt. A szűrt sorokat átmásolhatod más helyre.

 

Ha nem rendezheted az adatokat, akkor vegyél fel egy oszlopba melléjük egy növekvő sorrendű számsort, a fenti művelet elvégzése után ennek az oszlopnak a rendezésével visszaállíthatod az eredeti sorrendet.

Előzmény: marcoooo (15432)
tt65 Creative Commons License 2011.07.13 0 0 15434

trükk! add hozzá a sor számának tízezred részét, akkor már nem lesz egyenlő kiadás összeg.

Előzmény: marcoooo (15432)
SQLkerdes Creative Commons License 2011.07.13 0 0 15433

Pivottábla.  Azt is lehet szűkíteni az x legnagyobb tételre.

Előzmény: marcoooo (15432)
marcoooo Creative Commons License 2011.07.13 0 0 15432

Sziasztok!

A segítségeteket szeretném kérni excel témakörében.

Van egy oszlop amiben vannak kiadások összegei, pl.: 3.000 Ft, 5.000 Ft, 10.000 Ft, stb. Szám szerint 228 db van egymás alatt.
A mellette lévő oszlopban vannak a kiadásoknak a neve, pl.: villanyszámla, mobilinternet, mobiltelefon előfizetés, stb. szintén egymás alatt.
A cél az, hogy a 15 legnagyobb kiadás ki legyen gyűjtve. Az összegekkel nincs gond, a "NAGY" függvénnyel megoldottam.
A probléma ott van, hogy amikor hozzárendelem az összegekhez tartozó neveket (index és hol.van függvények egymásba ágyazásával), és van legalább 2 db egyforma összegű kiadás,
ugyanazt a nevet párosítja hozzá, azt amelyiket hamarabb megtalálja az oszlop tetejéről.

A kérdésem az, hogyan lehet megoldani azt, hogy az azonos összegű kiadásokhoz megtalálja az eltérő neveket is?

Köszönöm segítségeteket előre is.

Delila10 Creative Commons License 2011.07.12 0 0 15429

Megvan, az Application.Volatile a megoldás.

.

.

Előzmény: Delila10 (15428)
Delila10 Creative Commons License 2011.07.12 0 0 15428

Volt itt egyszer szó arról, hogyan lehet rábírni a saját függvényeket, hogy ugyanúgy frissüljenek, mint a beépítettek.

 

Most az autoszűrő ki-bekapcsolásának hatására kellene az egyiknek frissülnie. Mivel tudnám rábírni erre a lépésre?

 

 

tt65 Creative Commons License 2011.07.12 0 0 15427

Persze, van ez így. Én is vagy 10 évig használtam egy képnézegető szoftvert, mert tényleg csak nézegetésre kellett, miközben jöttek az egyre újabb verziói, amivel már mini fotosoppá kezdett válni. De arra meg ott a fotoshop.

Anno a Lotus 123-al (táblázatkezelő) ami elfért egy floppin, mindent meg lehetett csinálni, ami most is egy alapszintű excel user használ, de ehhez kap egy nagyágyú szoftvert...

Említsük meg, hogy anno a mi űrhajós Simonyink találta ki a megszokott menüszerkezetét a programoknak. Aki dolgozott DOS alatti Word-ben, vagy worpdperfektben, tudja milyen szörnyűségek voltak ...

Előzmény: Vacy (15426)
Vacy Creative Commons License 2011.07.12 0 0 15426

Köszi, szóval alapból nem lehet, mint robbantomester írja csak addonnal. És a hozzászólása haladásról szóló résszel egyet értek, de a kollégák le szeretnének maradni! ;)

Előzmény: Jimmy the Hand (15421)
Törölt nick Creative Commons License 2011.07.12 0 0 15425

A ribbon azért nem jobb, mert az ember 15 éven keresztük megszokta a régi menürendszert. Ha történetesen fordítva lenne, akkor most a régi menürendszert utálná mindenki. (Egyébként van erre több addon is, amivel a régit visszakapod)

Én eddig csak azt a hátrányát érzékeltem, hogy az aktív felületnek nagyobb részét elveszi, mint a régi. (De ez is csak beállítás kérdése)

Előnyként pedig a gyorsasgágát emelném ki: kevesebb kattintásból el lehet érni szerintem sok mindent, sokkal interaktívabb módon, mint a réginél.

 

Én meggyőzni nem akarok senkit, nem is tudok. Használni kell 2-3 hónapot és utána mindenki döntse el maga, hogy használja  2007-től az officokat az új funkcióival, vagy marad a régi megszokot, ámde butább 2007 alatti verzióknál.

 

Én azt mondom jobb haladni a korral, mert egyszer csak az ember azt veszi észre, hogy nem ért semmihez - mert az új munkahelyén már az új fejlesztéseket használják. (és itt nem csak az excelre gondolok, hanem a régi programnyelvekre is - amelyeket már egyáltalán nem használnak)

 

Előzmény: Jimmy the Hand (15423)
tt65 Creative Commons License 2011.07.12 0 0 15424

Ezen (sem) nem fogunk összeveszni! :-)

Sztem 2 nap alatt tökéletesen megszokható a szalagos menü, sőt a 2010-ben már tetszés szerint variálhatod, igényre szabhatod a menüt.

Előzmény: Jimmy the Hand (15423)
Jimmy the Hand Creative Commons License 2011.07.12 0 0 15423

Szerintem nem olyan.

Van valami plusz ebben a szalagos menüpótlóban? Szerintem csak csicsa. A menürendszer ugyanazt a funkcionalitást biztosította, nem volt szükséges, hogy lecseréljék. Csak hát haladni kell a korral, a kor pedig azt diktálja, hogy látvány, látvány, látvány. A tartalom mindegy, csak nézzen ki jól, és akkor el lehet adni.

Microsoft tehát eldöntötte, hogy mi mind haladni szeretnénk a korral. A magam részéről fölöslegesnek tartom ezt a fajta haladást, és ha egyszer átállok újabb Office verzióra, valószínűleg keresni fogom a menürendszer megtartásának lehetőségét. Kivéve, ha közben valaki meggyőz róla, hogy a ribbon sokkal jobb.

Előzmény: tt65 (15422)
tt65 Creative Commons License 2011.07.12 0 0 15422

Ez kb. olyan, mint hogy lehet e Svájcban kommunizmus?

Lehet, de minek?

Előzmény: Vacy (15417)
Jimmy the Hand Creative Commons License 2011.07.12 0 0 15421
Előzmény: Vacy (15417)
Jimmy the Hand Creative Commons License 2011.07.12 0 0 15420

Lehet makrót írni a formázásra, és ahhoz gombot társítani.

Vagy lehet formátumot másolni, erre (alapértelmezésben) van egy gomb (ecset ikonnal) a "Szokásos" nevű eszköztáron. Azzal csak 3 kattintás.

Előzmény: NeomatiK (15419)
NeomatiK Creative Commons License 2011.07.12 0 0 15419

Formázáshoz lehet gombot társítani?

 

Pl van egy cella, amiben a szöveget pirosra és vastagra és dőltre, a hátteret szürkére stb akarom álítani, akkor ne kelljen ennyi helyen külön kattingatni?

NeomatiK Creative Commons License 2011.07.12 0 0 15418

Van egy mégegyszerűbb megoldás, csak eddig nem is néztem, mert üres oldalakat töröltem.

Ha a fülön a jobbklikkel a munkalapot törölni akarom és van rajta adat, akkor jön egy felugró ablak, hogy a lapon adatok lehetnek és adatvesztés állhat be.

Előzmény: tt65 (15411)
Vacy Creative Commons License 2011.07.12 0 0 15417

Office2010-ben be lehet állítani a kinézetét (ikonok, menük) korábbi office-nak megfelelően?  

tt65 Creative Commons License 2011.07.12 0 0 15416

találtam, későbbi verziókhoz: http://excel-it.com/free_addins.htm

J & R előtt: Free download

megnéztem, műxik

Előzmény: Jimmy the Hand (15415)
Jimmy the Hand Creative Commons License 2011.07.11 0 0 15415

mscal.ocx

Verziófüggő elem.

Excel 2003-ig letölthető itt: http://www.fontstuff.com/mailbag/qvba01.htm

Előzmény: Gavriel (15414)
tt65 Creative Commons License 2011.07.11 0 0 15413

TRUE!

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

ctrl+g bill.f.-val elérhető

Előzmény: tt65 (15411)
tt65 Creative Commons License 2011.07.11 0 0 15411

Ilyesmi keresgélésre az Irányított kijelölés is jó. Őt csak a gyorselérési eszköztár lehetőségei közt találod meg, onnan kell feltenni az elérhető parancsok közé.

Előzmény: NeomatiK (15409)
Jimmy the Hand Creative Commons License 2011.07.11 0 0 15410

Egy adatérvényesítéses félmegoldás, ha A1-ben van a szűrési feltétel:

 

Megengedve: idő

Jelleg: Nem egyenlő

Idő: =HA(A1=1;0;1000)

 

Ez azért problémás, mert az Excel a dátum/idő értékeket lebegőpontos törtként kezeli, ahol minden egész szám valamelyik nap 0 óra 0 percének felel meg. A fenti módszerrel kizárható konkrétan a 0 érték, de ha a felhasználó 1-et vagy 2-t, stb. ír be, az időnek formázva ugyanúgy 0:00-nak fog látszódni, csak más dátummal.

 

Ennél jobb most nem jut eszembe, hacsaknem makróval.

 

Előzmény: eightXeight (15408)
NeomatiK Creative Commons License 2011.07.11 0 0 15409

Köszönömk a válaszokat!

 

 

Ez a keresős tűnik a legjobbnak. csináltam egy HA függvényt. A lényege az, hogy ne legyen semmi a cellában, ha a hivatkozó cella üres. Az volt a szándék, hogy ha van valami függvény, de nem látszik semmi a táblázatban, akkor is ad-e találatot. És szerencsére ez a CTRL+F  * megtalálja.

 

 

Előzmény: Törölt nick (15404)
eightXeight Creative Commons License 2011.07.11 0 0 15408

Azzal meg lehet oldani, hogy csak egyetlen esetnél nem lehet 0:00, a többi lehetőségnél pedig igen?

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

adatérvényesítés?

Előzmény: eightXeight (15406)
eightXeight Creative Commons License 2011.07.11 0 0 15406

Üdv!

Hogyan tudnám azt megoldani. hogy egy legördülő listából egy bizonyosat választva, a következő, időformátumú kitöltendő oszlopban (ebben az esetben) ne lehessen 0:00 az érték?

Köszi

Delila10 Creative Commons License 2011.07.11 0 0 15405

Kijelölöd az összes cellát pl. Ctrl+a-val, ha van kitöltött cella, a státuszsorban jobbra látszik aza statisztika.

 

Régebbi verziókban erre a helyre (a státuszsor jobb oldalára) rá kell klikkelni jobb gombbal, akkor választási lehetőséget ad arra, hogy mit mutasson: darabszám, összeg, minimum, maximum, átlag. Üres lap esetén nem mutat semmit.

Előzmény: NeomatiK (15402)
Törölt nick Creative Commons License 2011.07.10 0 0 15404

A lgegyszerűbb, ha rákeresel erre: (Ctrl + F) * (csillag)

Ha nincs találat, akkor üresek a munkalap cellái.

persze ha fotmázás és miegymás is érdekes, akkor az más...

Sok munkalap esetén ezt lehet automatizálni is (makróval)

SQLkerdes Creative Commons License 2011.07.10 0 0 15403

Ez a kérdés így ebben a formában szerintem nem megoldható.

 

Viszont ha van valamilyen elvárás vagy szabály amivel lehet dolgozni, akkor azért lehet, h. találunk valami megoldást.

 

Pld.  Ha van adat a munkalapon, akkor annak legalább egy része az első száz sor és első száz oszlop által határolt tartományba esik.

 

Mert akkor pld. a

=IF(MAX(LEN(A1:CV100))=0;"Üres :-)";"Nem üres :-(")

megoldja a problémádat.

Ha a sheet neveid "szabályosak" (pld Sheet1, Sheet2...) akkor egy munkalapon meg lehet csinálni a fenti ellenőrzést a workbook összes munkalapjára (INDIRECT és ADDRESS segítségével).

 

Előzmény: NeomatiK (15402)
NeomatiK Creative Commons License 2011.07.10 0 0 15402

Helló!

 

Hogyan tudom meg legegyszerűbben, hogy egy munkalapon van-e valami adat? makró nélküli megoldás érdekel és 97-es és újabb Excel-re.

Ugyanis törölném azokat, amin nincs adat. De kicsit sokáig tartana végiggörgetni mindet.

SQLkerdes Creative Commons License 2011.07.10 0 0 15400

Application.Quit

 

A VBA néha egyszerűbb mint gondolnánk :-)

Előzmény: Gavriel (15399)
SQLkerdes Creative Commons License 2011.07.09 0 0 15397

Törlés, pld.:

Worksheets("sheet1").ScrollArea = ""

Előzmény: Gavriel (15392)
SQLkerdes Creative Commons License 2011.07.09 0 0 15396

Akkor nem értem.  Működnie kellene...

Nekem angol xl-en műxik gond nélkül.

Előzmény: Gavriel (15395)
SQLkerdes Creative Commons License 2011.07.09 0 0 15394

Lehet nem Sheet1 a munkalapod neve, hanem mondjuk Munka1.

Előzmény: Gavriel (15391)
Delila10 Creative Commons License 2011.07.09 0 0 15390

Javítás

 

Minden egyes beírásra, ami a plusz 1 sorba, vagy +1 oszlopba került, lefut, és újabb üres sort, vagy oszlopot ad az előzőekhez. Tötlésnél a teljesen kiürült sornál, oszlopnál csökkenti a bejárható területet.

 

helyett

 

Minden egyes beírásra lefut, és ha a beírás a +1 üres sorba, vagy +1 üres oszlopba került, újabb üres sort, vagy oszlopot ad az előzőekhez. Törlésnél a teljesen kiürült sornál, oszlopnál csökkenti a bejárható területet.

Delila10 Creative Commons License 2011.07.09 0 0 15389

Gavriel

 

Rájöttem a sorok és oszlopok számának bővíthetőségére. A 15386-os makróban az usor% és uoszlop% értékadásának a végére írj +1-et, így mindig marad a bővítésre 1 sor, és 1 oszlop.

 

A laphoz rendelj egy eseménykezelő makrót, aminek ugyanaz a tartalma, mint a Workbook_Open-nek, és a beírások hatására indul.

 

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim usor%, uoszlop%
    
    usor% = Worksheets(1).UsedRange.Rows.Count + 1
    uoszlop% = Worksheets(1).UsedRange.Columns.Count + 1
    Worksheets(1).ScrollArea = "A1:" & Chr(uoszlop% + 64) & usor%
End Sub

.

Minden egyes beírásra, ami a plusz 1 sorba, vagy +1 oszlopba került, lefut, és újabb üres sort, vagy oszlopot ad az előzőekhez. Tötlésnél a teljesen kiürült sornál, oszlopnál csökkenti a bejárható területet.

Delila10 Creative Commons License 2011.07.09 0 0 15386

Szúrj be egy új lapot a füzetedbe, ne írj bele semmit, adj új mentést, és nézd meg a méret változását.

 

Klassz a ScrollArea.

 

Gavriel

SQL videója szerint a változó sor-, és oszlop szerinti letiltás így nézhet ki:

 

Private Sub Workbook_Open()
    Dim usor%, uoszlop%
    
    usor% = Worksheets(1).UsedRange.Rows.Count
    uoszlop% = Worksheets(1).UsedRange.Columns.Count
    Worksheets(1).ScrollArea = "A1:" & Chr(uoszlop% + 64) & usor%
End Sub
.

De itt a nagy kérdés, hogyan tud nőni a sorok, oszlopok száma, ha az elrejtés, vagy a letiltás nem engedi, csak a csökkentést?

 

Előzmény: SQLkerdes (15385)
SQLkerdes Creative Commons License 2011.07.09 0 0 15385

Az excel nem tárolja el minden cella tartalmát, csak a UsedRange-ben lévőket. 

Az excel fejlődése meg lépéstz tart a számítástechnikában tapasztalható számitásikapacitás-bővüléssel (vess össze egy 2003-as csúcsgépet meg egy mostanit).

Előzmény: Delila10 (15374)
SQLkerdes Creative Commons License 2011.07.09 0 0 15384

És itt is van:

 

Előzmény: SQLkerdes (15383)
SQLkerdes Creative Commons License 2011.07.09 0 0 15383

Viszont az ultimate megoldás egyszerűbb mint gondolnánk.

A VBA editorban elő kell hozni az adott sheet property-jeit (View menü, klikk az Sheet1-re), ott van egy Scrollable Area property, ami alapból üres.  Ha ide beviszel egy tartományt, akkor a user nem tud kijönni abból a tartományból.

 

Azért jó, mert nem tud okoskodni, hogy visszacsinálja a sorok elrejtését, csak akkor tudja feloldani ha pontosan tudja mit és hol kell átállítani.  Erre meg kevés az esély.

Előzmény: Gavriel (15380)
Delila10 Creative Commons License 2011.07.09 0 0 15381

Bocs, most jöttem elő. Mi a megoldásod? Az enyém 2007-es verzióra:

 

Sub Rejt()
    Dim usor%, uoszlop%
    
    usor% = ActiveSheet.UsedRange.Rows.Count + 1
    uoszlop% = ActiveSheet.UsedRange.Columns.Count + 1
    
    Rows(usor%).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.EntireRow.Hidden = True

    Columns(uoszlop%).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.EntireColumn.Hidden = True
End Sub
.

és

 

Sub Felfed()
    Dim usor%, uoszlop$
    
    usor% = ActiveSheet.UsedRange.Rows.Count
    uoszlop$ = Chr(ActiveSheet.UsedRange.Columns.Count + 64)
    
    Rows(usor% & ":1048576").Select
    Selection.EntireRow.Hidden = False
    
    Columns(uoszlop$ & ":XFD").Select
    Selection.EntireColumn.Hidden = False
End Sub

Előzmény: Gavriel (15380)
Delila10 Creative Commons License 2011.07.09 0 0 15377

Ez a "csicsa" része. :-)

Előzmény: Gavriel (15375)
Delila10 Creative Commons License 2011.07.09 0 0 15376

Kijelölöd az első elrejtendő sort, Shift+Ctrl+le nyíl. Ezzel minden sort lefelé kijelöltél. Jobb klikk, Elrejtés. Oszlopoknál ugyanez, csak Shift+Ctrl+jobbra nyíl a kijelölés.

 

Ha egyszer mégis láthatóvá akarod tenni az elrejtett sorokat, oszlopokat, legegyszerűbben úgy teheted, hogy Ctrl+a-val kijelölöd az összes cellát (all), majd jobb klikk, felfedés.

Előzmény: Gavriel (15373)
Delila10 Creative Commons License 2011.07.09 0 0 15374

Monológ

 

Segítettem valakinek egy számlázó program összehozásában, 2007-es Excelben. A füzet 18 lapot tartalmaz, több-kevesebb adattal, hivatkozásokkal, keresztül-kasul számításokkal, érvényesítésekkel, némi makróval. Egyik nap hívott az ismerősöm, hogy óriásira dagadt a fájl, nem győzi kivárni a betöltést, és valóban, 5.241 KB lett a méret.

 

Átkonvertáltam 2003-as formába, ami minden feladatot ugyanúgy elvégez, 40%-ára csökkent a méret, felgyorsult, és még az űrlap vezérlőket is csinosabbra tudtam formázni.

 

Minden lap 1024-SZER annyi cellát tartalmaz a 2007-es verzióban, mint a 2003-as. Ahhoz a rengeteg adathoz, amit az újabb verziók el tudnak tárolni, szerintem nem is Excelt kellene alkalmazni. A fő különbséget (a méreteken kívül) a feltételes formázási lehetőségek bővítésében látom, azon kívül csak csicsákat – új diagram formázási lehetőségek – adnak az újabbak. Bár van néhány jó új függvény, mint a szumhatöbb, de meg kell fontolni, miért mit adunk.

 

Mi erről a véleményetek?

Delila10 Creative Commons License 2011.07.09 0 0 15372

Ez nem jutott eszembe. Microsoftékat kellene megkérdezned.

Előzmény: SQLkerdes (15369)
Delila10 Creative Commons License 2011.07.09 0 0 15371

A 201. -től az utolsóig elrejted a sorokat. Egy (verziótól függő) szürke, vagy kék felületet kapsz, amin egy keveset görgethetsz. Az oszlopok elrejtésére is igaz.

Előzmény: Gavriel (15370)
SQLkerdes Creative Commons License 2011.07.09 0 0 15369

Ismerem a jelenséget, de nem teljesen ugyanaz az eset, sajnos.

Az idegen nyelvű verziók ugyanis - valószínűleg - egyből idegen nyelvűként vannak installálva.  Az enyém angolul van installálva, és ehhez szeretnék még egy új nyelvet.

Előzmény: Delila10 (15366)
mixtura_pectoralis Creative Commons License 2011.07.08 0 0 15368

Hála, köszönet, tökéletes.

Előzmény: Sánta Kutya (SK) (15338)
mixtura_pectoralis Creative Commons License 2011.07.08 0 0 15367

Ez igen, nagyot léptek előre.

Akkor már tudom, miből maradtam ki.;)

 

Előzmény: Sznida (15336)
Delila10 Creative Commons License 2011.07.08 0 0 15366

Igen, megváltoztatja. Angol, német, és olasz nyelvterületre küldött Excel fájljaim ott a "helyi nyelvet" – a gépükön beállítottat – beszélik.

Előzmény: SQLkerdes (15365)
SQLkerdes Creative Commons License 2011.07.08 0 0 15365

Már jön is az új kérdés, igaz nem a szokásos témakör, de excel.

 

Azt meg tudná nekem mondani valaki, hogy ha az angol excel-emhez (Office-omhoz) veszek egy magyar Language Pack-ot, akkor a magyarra váltással a függvényeim is magyarok lesznek (DARABTELI, OFFSZET és társai)?

Félreértés ne essék, ezt szeretném elérni.  Nagy szívás lenne, ha vennék egy Language Pack-et és csak azt érem el vele, hogy tud magyar helyesírási hibákat találni.

A microsoft weblapja azt monda, hogy a LP megváltoztatja a User Interface-t, de fotók csak a menükről (Tabokról) vannak és a függvényeket sehol sem említik egy szóval sem.

mimi_bacsi Creative Commons License 2011.07.08 0 0 15364

A megérdemelt elismeréseket be kell "zsebelni"! :-)

A kérdések pedig ezek után is várhatóan érkeznek továbbra is...:-))

Előzmény: Delila10 (15363)
Delila10 Creative Commons License 2011.07.08 0 0 15363

Eszembe sem jutott a régebbi ninckeket számolni. A bambaságom (és/vagy a fórummotor furcsaságának) következménye, hogy e-mail cím változáskor nem tudtam érvényesíteni a régi nevemet... Az feltétlen az én hibám, hogy nem tartok egy szolgáltatótól független címet. :(

 

Jöhetne már egy szakmai kérdés, elegem van belőlem...

Előzmény: Jimmy the Hand (15361)
_Nyuszi Creative Commons License 2011.07.08 0 0 15362

Általad (is) kopnak (értsd: sötétre satírozódnak) a fehér tudásfoltjaim. :-) Csak ennyi.

Előzmény: Delila10 (15360)
Jimmy the Hand Creative Commons License 2011.07.08 0 0 15361

Hát úgy, hogy összeadtam pár korábbi nicked alatti hozzászólások számát. Legalábbis gyanítom, hogy ha van az Excel fórumban Delila_1, Delila669 és Delila10 nevű olvtárs, akik mindig megoldást szállítanak és sosem kérdeznek, ráadásul párhuzamosan nem nagyon szólalnak meg, akkor az nem véletlen egybeesés, hanem a három név egy embert takar.

Előzmény: Delila10 (15360)
Delila10 Creative Commons License 2011.07.08 0 0 15360

Ezt hogy számoltad ki? A jelenlegi hozzászólás a 15360-adik, amiből az enyém ezzel együtt 153, és ráadásul ez (sem) érdemi, hanem fecsegés.

 

Nyuszi, nem értem a satírozást, de nem is érdemes több szót vesztegetni rá.

Előzmény: Jimmy the Hand (15357)
Törölt nick Creative Commons License 2011.07.08 0 0 15359

Köszönöm. (...Pedig az msdn-t rendszeresen olvasom transact sql-hez is...)

Előzmény: Jimmy the Hand (15358)
Jimmy the Hand Creative Commons License 2011.07.07 0 0 15358
Előzmény: Törölt nick (15355)
Jimmy the Hand Creative Commons License 2011.07.07 0 0 15357

Minden tizenötödik hozzászólás a Tiéd.Sőt, amióta itt vagy, minden kilencedik. Ez azért csak jelent valamit.

Előzmény: Delila10 (15353)
_Nyuszi Creative Commons License 2011.07.07 0 0 15356

Ha nagyon akarom, sokmindent meg tudok oldani, de rengeteg fehér foltom van, és jó olvasgatni a hozzászólásaidat, hogy satírozhassam őket. :-)

Elegáns megoldás, meg kell hagyni. :)

Előzmény: Delila10 (15353)
Törölt nick Creative Commons License 2011.07.07 0 0 15355

köszi, megkeressük.

Előzmény: tt65 (15354)
tt65 Creative Commons License 2011.07.07 0 0 15354

Szerintem ez elég jó!

 

Előzmény: Törölt nick (15349)
Delila10 Creative Commons License 2011.07.07 0 0 15353

Nagyon "kisfiú" vagyok én itt, erős a túlzás.

Előzmény: mimi_bacsi (15352)
mimi_bacsi Creative Commons License 2011.07.07 0 0 15352

Bár én nem használom most fel, amit írtál (ActiveSheet.Protect Password:="jaj_de_milyen_titkos_jelszó", UserInterfaceOnly:=True) de egy biztos: NAGYON SOKAT SEGÍTESZ MINDANNYIUNKNAK. Ezúton is köszönöm én is! :-)

Előzmény: Delila10 (15351)
Delila10 Creative Commons License 2011.07.07 0 0 15351

Örülök, hogy ekkora sikert aratott ez az egy sor. Mindenkinek szívesen.

 

Robbantómester

Már nem emléxem, hol szedtem fel, de így is meg lehet adni jelszóval védett lapra:

ActiveSheet.Protect Password:="jaj_de_milyen_titkos_jelszó", UserInterfaceOnly:=True

Jimmy the Hand Creative Commons License 2011.07.07 0 0 15350

Csatlakozom a dicsőítő kórushoz, ezt a kunsztot én sem ismertem ;) 

Előzmény: