Hirdetés

Keresés

Új hozzászólás Aktív témák

  • bundli
    tag

    Szia,

    Tartalom törlést próbáld meg esetleg:
    Range("A1:C100").ClearContents

    Igen, pont ezzel próbáltam, de nem engedte az összevont cella miatt.

  • bundli
    tag

    Merged/Összevont cellák tartalmának törlésére valami ötlet valakitől? Azt találtam róla neten, hogy ha unmergelem őket akkor lehet törölni, de ez az opció sajna nem játszik nálam, mert utána összevonva kellenének.

    Tehát adott egy A1:C100-as tartomány, ahol kettesével össze vannak vonva a cellák, bennük tartalommal. Ezt hogyan lehet törölni?

  • bundli
    tag

    A

    sheets("Egyik lap").range("A1:D100").copy sheets("Másik lap").range("B10")

    mindent másol az Egyik lapról a Másik lapra.

    Köszi, ez azóta megoldódott! :R

    Most olyan problémám lenne, hogy van 3 darab cella, amelybne szöveg van, ezt szeretném kimenteni egy txt fájlba egy gombbal úgy, hogy gombnyomáskor el lehessen dönteni azt, hogy hova mentődjön a fájl egy popup menüben.

    Az egyszerűség kedvéért legyen A1:A3 tartomány amit egy .txt fájlba kelljen kimenteni

  • bundli
    tag

    Köszi szépen, úgy néz ki jól működik, de elég fekete mágia számomra, még tanulmányozom :)

    Egy olyan érdekes dologban kérnék segítséget, amire lehet nincs is megoldás, mert már órák óta Googleban keresek rá választ, de nem találtam.

    Hogyan lehet másolni cellákat úgy VBA segítsgével úgy, hogy minden formázás megmaradjon, tehát még az is, hogy az egyesített cellákat is átvigye és cellaszegélyeket is.

    Erre is itt egy példa excel file: katt

    Tehát az "Original" fülön található formázást kéne átmásolni a "Copy" fülre. Valamiért nem sikerül ugyanolyanra varázsolni..

    Arra rájöttem, hogy az Interior.Color-t is másolni kell. Csak azt másolni tudom, de a contentet vele már nem.

    A belső színt ezzel a paranccsal lehet másolni:
    rngPaste.Interior.Color = rngCopy.DisplayFormat.Interior.Color

    Most már csak arra kéne rájönni, hogy a tartalmat hogyan másoljam mellé. :F

  • bundli
    tag

    Összeállítottam, de nem sok értelmét látom.
    Ha pl. 3 táblázatod van kitöltve, és a G2-be 5-öt írsz, akkor csak adatok nélküli táblázatot hoz be az A2-es kiválasztásnál.

    Még azt teheted meg ezzel az új felállással, hogy nem sorban állítod ki a táblázatokat, hanem pl. a 3-as után jön a hatodik.

    Köszi szépen, úgy néz ki jól működik, de elég fekete mágia számomra, még tanulmányozom :)

    Egy olyan érdekes dologban kérnék segítséget, amire lehet nincs is megoldás, mert már órák óta Googleban keresek rá választ, de nem találtam.

    Hogyan lehet másolni cellákat úgy VBA segítsgével úgy, hogy minden formázás megmaradjon, tehát még az is, hogy az egyesített cellákat is átvigye és cellaszegélyeket is.

    Erre is itt egy példa excel file: katt

    Tehát az "Original" fülön található formázást kéne átmásolni a "Copy" fülre. Valamiért nem sikerül ugyanolyanra varázsolni..

  • bundli
    tag

    Örülök, hogy tetszik.

    A-tól G-ig nem lehet rejteni, csak teljes sorokat.
    A feltételeidnél átfedések vannak. A 2 is kisebb, mint 6.

    Jobb lett volna így a meghatározás:
    <2 (ez negatív szám, vagy 0 és 1,9999 közötti érték)
    >=2 és <3 (ez 2-től 2,9999 közötti érték)
    ... és így tovább.

    Egyébként nem kell hozzá makró, autoszűrővel szín szerinti szűrést is végre tudsz hajtani.

    Valóban, most ezt sikerült megoldanom, mondjuk kicsit trükközve egy scripttel, de működik :)

    Még anno volt ez a táblázatos kérdésem, ami csodálatosan is működik. Annyit kéne rajta módosítani, hogy egy cellába meg kéne adnom, hogy hány darab táblázat legyen összesen és akkor aszerint kéne változni az A2-es cella értéke. Továbbá se új tábla, se tábla törlés nem kéne bele.
    Esetleg ebben tudnál segíteni, hogy mit kéne változtatni azon?

    (Röviden: Beírom a G2-es cellába hogy három, akkor 3 darab táblázat közül lehessen kiválasztani és csak szerkeszteni lehessen az adott táblákat)

  • bundli
    tag

    Nézd meg ezt a füzetet. Másik gépen állítottam össze.

    Hát ez több mint tökéletes, köszönöm szépen, nagyon hálás vagyok a segítségeidért, tényleg!

    Lenne viszont megint egy problémám. Amennyiben van egy kis ideje valakinek ezen a hosszú héten ránézhet ha tud majd:

    Az lenne a feladat, hogy volt eddig sok-sok sornyi adat amelyek közül néhány feltétles formázással ki volt szürkítve. Ezt meg lehetne oldani VBA-val automatikusan hidoelja azokat a tartományokat amelyek a feltétles formázás által ki voltak eddig szürkítve?

    Feltöltöttem egy excel fájlt, amelyben meg van adva egy celle ahol a bizonyos szám található és annak az értékétől függően kellene a megadott tartományokat hideolni.

  • bundli
    tag

    Máris lenne valami, de talán nem oly nehéz:

    Arra esetleg van bármi ötleted, hogy az hogyan oldható meg szépen, hogy meg van adva egy szám, legyen ez most 3. (B1-es cella)

    Ekkor az Excelnek az adott munkalapra az alábbiakat kéne írnia egymás alá az A oszlopba:

    Teszt 1
    Teszt 2
    Teszt 3

    Ha ez a szám változik, aszerint kéne megfelelő mennyiségű Teszt X-et generálni.

  • bundli
    tag

    A sor = Application.Match(Range("A2"), .Columns(1), 0) a sor változóba beteszi azt az értéket, ahol a Match (hol.van) függvény a Rejtett lapon az első oszlopban megtalálja az A2 cella értékét .

    A Range("B2:D4" & sor).Copy .Range("B" & sor) másolja a B2:D4 tartományt a Rejtett lapnak abba a sorába, ott is a B oszlopba, amit a Match megtalált. Jó. hogy írtad, az & sor-t vedd ki. Helyesen:
    Range("B2:D4").Copy .Range("B")

    A Táblák nevet a Képletek | Névkezelő menüpontban láthatod. Ha rákattintasz, a Hivatkozás mezőben látod, melyik területre vonatkozik. Ezt a területet módosítja a Nevadas makró. A

    sor = Sheets("Rejtett").Range("B" & Rows.Count).End(xlUp).Row

    megkeresi az utolsó sort a Rejtett lapon, a sor számát eltárolja a sor változóban.

    Az ActiveWorkbook.Names("Táblák").Delete törli az előző, Táblák című nevet. A következő sor megadja az új Táblák név területét. Ez a Rejtett lap H (nyolcadik) oszlopának első sorától addig tart, mint a sor/3+1 érték.
    Például a Rejtett lapon az utolsó kitöltött sor a 18. 18/3=6. Ilyenkor a Táblák nevű terület a H1:H7 tartomány lesz. Ha 3 táblád van kitöltve, akkor a sor=9, 9/3+1=4, a területe Táblák H1:H4 lesz. A Sheets4 lap A2 cellájában lévő érvényesítés mindig az aktuális Táblák-at mutatja. Nézd meg az érvényesítésben a Forrást!

    Azt hiszem, a gombokat kicsit alacsonyra vettem, nem férnek ki a szövegek. Így kellene kinézniük:

    Jó. hogy írtad, az & sor-t vedd ki. Helyesen:

    Na igen, pont azt a részét nem értettem amit ki kellett venni :D

    Ez a Nevadas script azért nem semi, most hogy így leírtad már értem, de magamtól ilyet biztos nem írtam volna.

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

    (Holnap még lehet írok egy kérdést :B )

  • bundli
    tag

    Az egészet átírtam. :) Itt van.

    Hú, ez nagyon jól sikerült, köszönöm! Viszont lenne pár kérdésem az Apply_Changes makróval kapcsolatban:

    Else
    sor = Application.Match(Range("A2"), .Columns(1), 0)
    End If
    Range("B2:D4" & sor).Copy .Range("B" & sor)

    És a Nevadas makróval is:

    ActiveWorkbook.Names.Add Name:="Táblák", RefersToR1C1:="=Rejtett!R1C8:R" & sor / 3 + 1 & "C8"

    Ezek pontosan mit csinálnak? Nekem nem teljesen világosak sajnos. Le tudnád írni kérlek?

    :R

  • bundli
    tag

    Tedd ki elérhető helyre a füzetet, miután a nem publikus adatok helyére fals adatokat írtál.

    Abból megtudjuk, hol helyezkednek el a táblázataid. Az nem jó tipp, hogy az találja ki a helyeket, méreteket, aki segítene.

    Nos rendben, akkor itt található a fájl ahol van a .xlsm fájl, benne makrókkal.

    Valamiért bugos mikor az első táblázatot választom ki, arra nem jöttem rá, hogy miért van így.

    Ezen felül ugye azt kéne megoldani, hogy bal felső fülben lehessen létrehozni táblákat és a gombokkal meg törölni és módosítani.

  • bundli
    tag

    Nem látszanak a képeken a sor- és oszlopazonosítók, így csak találgatni lehet, mi melyik cellában van. A makrót arra az esetre írtam, ha a képeken láthatóak az A1 cellában kezdődnek.

    A két tábla képleteiben fixáld az oszlopokat $ jellel. Pl. =B3-D3 helyére =$B3-$D3 kerüljön.

    Az A8 cellába vigyél be érvényesítést, ahol a forrás =Verziószám=1;Verziószám=2

    Az eseményvezérelt makrót a lapodhoz kell rendelned.

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim terulet As Range
    If Target.Address = "$A$8" Then
    Application.EnableEvents = False
    Select Case Target
    Case "Verziószám=1"
    Set terulet = Range("B2:D4")
    Case "Verziószám=2"
    Set terulet = Range("G2:I4")
    End Select
    terulet.Copy Range("B9")
    Application.EnableEvents = True
    End If
    End Sub

    Köszönöm, ez most úgy néz ki, hogy működik, viszont egy csavar kimaradt belőle, amit lehet nem túl jól írtam le. Összesen max 6 ilyen táblázat lehet amelyeket ki lehetne választani, de alapjáraton egy sincs feltöltve, ezt a felhasználónak kéne tudnia egyesével hozzáadni, de lehet hogy csak 4-re van szüksége, ebben az esetben nem lenne szabad kiválasztani az ötödiket, mert az nem is létezik.

    Röviden úgy képzelem el, hogy van egy munkalap, ahol csak kiválasztgatja ezeket a táblázatokat és egy másik munkalapon (vagy ugyanezen a munkalapon rejtett cellákban) lennének magák a táblázatok.

    Alapértelmezetten lenne egy 0. menü ahol az új táblázatokat lehetne felvenni.

    Köszönöm mégegyszer az eddigi segítséget!

    :R

  • bundli
    tag

    Sziasztok!

    Elnézést a késői válaszért, először is köszönöm mindenkinek a segítséget Apollo17hu válasza jött be, utána láttam csak Delila_1 javított válaszát, amikor már kész voltam. :B

    Viszont most egy ennél szerintem nagyságrendekkel nehezebb kérdéssel jönnék. Gyakorlatilag ugyanez lenne a feladat mint előbb, vagyis adott egy sor vagy sorok, amelyeket duplikálni kéne. A probléma már ott kezdőik, hogy a cellákban nem egyszerű értékek vannak, hanem formulával számoltak. Tehát ha lefut a script, akkor nem cask simán át kéne másolni az értékeket, hanem adott esetben a formulákat is. Mindezt úgy, hogy akár generikus is legyen. (tehát offszetelje el a cellát megadott értékkel, amennyibe kéne)

    Amit még szeretnék, az pedig az, hogy legördülő menüvel lehessen választani a létrehozott másolatokból, tehát minden egy helyen lenne.

    A könnyebb érthetőség kedvéért hoztam is egy példát rá:

    Egy sima kép:

    És felfedve a formulákat:

  • bundli
    tag

    Sziasztok!

    Van egy 5x5-ös cellatartományom, legyen ez most A1:E5.

    Azt szeretném megcsinálni, hogy egy gombnyomásra ezt az 5x5-ös területet másolja be ezalá mégegyszer. Ha megint megnyomom a gombot, akkor a következő alá illesztené be és így tovább.

    Eddig idáig jutottam, hogy:

    ActiveCell.Range("A1:E5").Select
    Selection.Copy
    ActiveCell.Offset(6, 0).Range("A1").Select
    ActiveSheet.Paste

    Ez pont azt csinálja ami nekem kéne, de csak akkor ha "jó helyre van kattintva".
    Tehát ha máshova van kattinva induláskor, akkor már el van rontva az egész. Egy Rows("1:1").Select után tökéletes, egészen a második kattintásig, mert utána ugyanúgy mindig az 1:1 cellától fog indulni.
    Valahogy azt kéne megoldani, hogy elmentse egy változóba azt, hogy hányszor lett már másolva. Ezt akár egy segédcellába is le lehetne menteni, de nem tudom hogyan. Azért is jó lenne ezt elmenteni, mert minden egyes másolt blokk mellé oda kéne írni, hogy ez éppen hanyadik.

    Nagyon megköszönék bármi nemű segítséget! :R

Új hozzászólás Aktív témák

Hirdetés