Keresés

Részletes keresés

Delila10 Creative Commons License 2013.10.27 0 0 22818

"a stringek abc-be rendezése nem oldható meg a munkafüzet használata nélkül"

Ezt nem mondtam. Attól, hogy én nem ismerem, más még megoldhatja. :)

Előzmény: tbando (22816)
tbando Creative Commons License 2013.10.27 0 0 22817

:))))))

 

Ennél azért lehetne valamivel egyszerübben is: az első 8 karakter ascii kódjaival....

 

Maradok a munkalapos megoldásnál.

Előzmény: Törölt nick (22812)
tbando Creative Commons License 2013.10.27 0 0 22816

Kösz a választ! Amiből számomra igazolódott, hogy sajnos a stringek abc-be rendezése nem oldható meg a munkafüzet használata nélkül. Pedig reméltem, hogy lesz valamiféle munkafüzet nélküli  megoldás a Novekvo és a Csokkeno tömbök létrehozására,  hasonlatosan a numerikus adatokhoz, amelyeknél ez elérhető a large és small parancsokkal.  

Előzmény: Delila10 (22815)
Delila10 Creative Commons License 2013.10.27 0 0 22815

Lehet, hogy nem erre a megoldásra számítasz. A makrót régebben Micu írta a Prog.hu-n.

 

 

Az A1:A10 tartományt beviszi az eredeti tömbbe. Rendezéssel előállít egy novekvo, és egy csokkeno tömböt, amiknek az egyes tagjait le lehet kérdezni, ki lehet íratni. A tartományba az eredeti tömböt írja vissza.

 

Sub tömb_rendez()
    eredeti = Application.Transpose(Range("A1:A10"))
    
    Range("A1:A10").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    novekvo = Application.Transpose(Range("A1:A10"))
    Range("M1:M10") = Application.Transpose(novekvo)
    
    'Összefőzés kiíráshoz
    For i = 1 To 10
        kiiras = Join(novekvo, vbCrLf)
    Next
    MsgBox kiiras
    MsgBox "A 'novekvo' tömb 6. értéke: " & novekvo(6)
    
    Range("A1:A10").Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    csokkeno = Application.Transpose(Range("A1:A10"))

    Range("A1:A10") = Application.Transpose(eredeti)
    Range("N1:N10") = Application.Transpose(csokkeno)
End Sub

Előzmény: tbando (22808)
hunterzsolt Creative Commons License 2013.10.27 0 0 22814

Na most olvasgatok a kapott linkről és pár oldalt a makrók használatáról! Úgyhogy egy kicsit lépek! Köszönöm a segítséget, adtál sok kiindulópontot, hogy miket is keressek, hogyan is álljon össze a dolog! Ha megakadnék, jelentkezni fogok! Sokat kell még tanulnom asszem :D Köszi mégegyszer!

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

[quote]Valahogyan át lehet másolni a dátumos oszlopot a makróiddal együtt az én munkafüzetembe, hogy működjön is?[/quote]

 

Mentsd el más néven.

 

[quote]Nálam engedi a választást és az írást is, míg nálad csak választani lehet![/quote]

 

Nem tudom miért lehet ez. Esetleg amiatt, hogy az adatérvényesítésnél a hibejelzés fülön kikszelted, hogy hibaüzenet jelenjen meg?

Előzmény: hunterzsolt (22811)
Törölt nick Creative Commons License 2013.10.27 0 0 22812

http://www.cpearson.com/excel/SortingArrays.aspx

 

Elég nagy falat lehetett egy ilyen makrót megírni...

Előzmény: tbando (22808)
hunterzsolt Creative Commons License 2013.10.27 0 0 22811

Megcsináltam egy új munkafüzeten, de ugyanaz a probléma! Valahogy levédted? Mert ugyan azt megpróbáltam, amit Te. Nálam engedi a választást és az írást is, míg nálad csak választani lehet! Valahogyan át lehet másolni a dátumos oszlopot a makróiddal együtt az én munkafüzetembe, hogy működjön is?

 

Előzmény: Törölt nick (22807)
Törölt nick Creative Commons License 2013.10.27 0 0 22810

Alt + F11-gyel meg tudod nézni, hogy milyen kód (makrók) van mögötte. (Ez megnyitja a kódszerkesztő ablakot.)

 

Hogy érted, hogy "nincs táblázatnak formázva"?

 

Elméletileg a B oszlopba csak azt írhatod, ami a Munka2 munkalapon az A1:A3 részen található.

 

Apró hiba: csak ha egyszer rámentesz a fájlra, akkor gátolja meg az első oszlop meg az első sor szerkesztését.

Előzmény: hunterzsolt (22809)
hunterzsolt Creative Commons License 2013.10.27 0 0 22809

Júj ez nagyon BABAr :) Köszi, de lenne egy gondom ezzel! Nem tudom megnézni ebből, hogy hogyan hoztad össze!

Látom, hogy nincs táblázatnak formázva , úgyhogy lehet, hogy emiatt enged mást is beírni, mert én formázztam!

Megpróbálom nem megformázni az oszlopokat és hátha úgy csak a lista elemeit használhatom, de a dátumot, ahogy megcsináltad, úgy szeretném én is!

Előzmény: Törölt nick (22807)
tbando Creative Commons License 2013.10.27 0 0 22808

Sziasztok!

 

Az lenne a kérdésem, hogy lehet-e egy egydimenziós vba-tömbben levő stringeket abc sorrendbe rendezni?  Ha igen, hogyan? Nekem az is jó lenne, ha a sorbarendezés egy másik tömbbe történne.

Törölt nick Creative Commons License 2013.10.27 0 0 22807

Ehun van. Makrókkal tudtam csak megoldani (excel 2007 btw), können lehet hogy a másik táblázat más módszerrel készült.

 

http://data.hu/get/7072147/Zsoltinak_gmod1.xlsm

 

Azt még mindig nem értem, hogy listából való adatérvényesítésnél neked miért enged más értékeket is beírni.

Előzmény: hunterzsolt (22805)
_matteo_ Creative Commons License 2013.10.27 0 0 22806

Köszönöm!

Előzmény: Törölt nick (22804)
hunterzsolt Creative Commons License 2013.10.27 0 0 22805

Köszönöm a választ!

Az első sikerült.
Sajnos a 2.-nál listából tudok választani, de ha akarok, akár beírni is tudok bármit!
A 3. : Igen, azt a dátumot akarom, amikor a sort szerkesztették és utána már, ha mentve van, ne lehessen szerkeszteni!

Találkoztam hasonló táblázattal, ami korlátozta a felhasználók jogait! PL: én csak egy adott listából tudtam választani, ki is töltöttem a sorokat, majd el is mentettem! Miután újra beléptem az általam kitöltött sort már nem tudtam szerkeszteni, de az, aki csinálta a táblázatot, tudta! Szóval az én hozzáférésem korlátozva volt! Szeretném valami ilyesformán megcsinálni és ki is próbálni! 

Előzmény: Törölt nick (22803)
Törölt nick Creative Commons License 2013.10.27 0 0 22804
Előzmény: _matteo_ (22802)
Törölt nick Creative Commons License 2013.10.27 0 0 22803

1. Teljes oszlopok kijelölésével el tudod rejteni őket. Ha mondjuk csak 10 oszlopot akarsz hagyni, akkor:

i) jelöld ki a 11. oszlopot (katt a fejlécre)

ii) ctrl+shift+jobbra (ezzel kijelöli az oszlopokat egészen az utolsóig)

iii) jobbklikk --> elrejtés

 

2. Ha a listából való adatérvényesítést megcisnáltad, akkor elméletileg nem lehet mást beírni. (legalábbis 2003-as excelnél biztos)

 

3. Makróval meg lehet csinálni. Azt a dátumot akarod, amikor utoljára írtak valamit az adott sorba?

 

(Ahhoz egyébként, hogy egy cellát ne lehessen változtatni, le kell védeni jelszóval a munkalapot és a cellának zároltnak (locked) kell lennie.)

 

Előzmény: hunterzsolt (22801)
_matteo_ Creative Commons License 2013.10.27 0 0 22802

Helló,

 

Két függvény által közbezárt terület szertnék kiszinezni. Erre milyen megoldások vannak? 2013as verzió. Előre is köszönöm.

hunterzsolt Creative Commons License 2013.10.27 0 0 22801

Sziasztok!

Ismét kérdésekkel bombázlak titeket!

1: Hogyan tudom azt megcsinálni, hogy csak egy adott mennyiségű oszlop legyen látható?
2: Tegnap sikerült RHCPgergo segítségével listázni az adatérvényesítéssel, de szeretném azt is megcsinálni, hogy csakis a listából lehessen választani, mást beírni ne lehessen! Próbáltam ilyen-olyan védelemmel ellátni az adott oszlopokat, de nem sikerült!
3: Az egyik oszlopot dátum mutatására szeretném használni! Szóval azt ne lehessen módosítani, szeretném, hogy a sor kitöltésével automatikusan kitöltse az adott dátummal! Szóval, ha a sort elkezdem kitölteni, a dátum oszlop azonos sorában megjelenjen a dátum! Bár ezt nem hiszem hogy meg lehet csinálni, de hátha! 

Remélem jól leírtam a kérdéseket, amúgy 2007-es verzsönt használok, ha számít!

Előre is köszönöm a válaszokat!

 

Törölt nick Creative Commons License 2013.10.27 0 0 22800

Áttöltés után kézzel dolgozik az illető ezért kell a tábla végére menni vagy kézzel, vagy automatikusan. Ez csak egy kényelmi ok és nem funkcionális azaz a program működését nme érinti. A megirt programjaimnál mindig ügyelek arra, hogy minél kevesebbet kelljen klikkelni, keresgélni azaz a program kínálja magát. Manapság ezt kicsit bombasztikusan felhasználói élménynek nevezik. Mindig abból indulok ki, hogy a számítógépet nem ismerőknek is tudnia kell kezelni.

Előzmény: Fferi50 (22786)
roley Creative Commons License 2013.10.26 0 0 22799

Köszönöm!

 

Köszönöm!!!!

Előzmény: Fferi50 (22797)
Törölt nick Creative Commons License 2013.10.26 0 0 22798

Szerkeszteni akarok. :(

Előzmény: Törölt nick (22796)
Fferi50 Creative Commons License 2013.10.26 0 0 22797

Szia!

 

Íme a makro:

 

Sub torlo()
Dim c As Range
With Columns(1)
    Set c = .Find(what:="xy", LookIn:=xlValues, lookat:=xlWhole/xlPart)
    If Not c Is Nothing Then
        Do
            c.EntireRow.Delete
            Set c = .FindNext
        Loop While Not c Is Nothing
    End If
End With
End Sub

 

Egy kis magyarázat hozzá:  lookat paraméter azt mondja meg, hogy teljesen egyeznie kell a cellában a szövegnek, vagy csak részben. Ha csak részben, akkor xlPart. Ekkor minden olyan sort kitöröl, ahol xy előfordul a cellában valahol.

 

Üdv.

Előzmény: roley (22795)
Törölt nick Creative Commons License 2013.10.26 0 0 22796

Fontos, hogy makró legyen? Egszerű szűréssel is egjelenítheted azokat a sorokat, ahol egy oszlop cellái bizonyos szöveget tartalmaznak, majd az egészet kijelölve törölheted.

 

1. autofilter bekapcsolása
2. az A oszlopnál custom szűrés (contains "xy")
3. sorok kijelölése, egész sor törlése

 

Makrót se lenne olyan nehéz írni, de így egyszerűbb, ha csak egyszer kell megcsinálánod.

Előzmény: roley (22795)
roley Creative Commons License 2013.10.26 0 0 22795

Sziasztok!

 

Egy olyan makróra lenne szükségem, ami megkeresne egy adott szöveget "xy" az első oszlopban, és miután megtalálta annak a sorát kitörölné, majd tovább keresne az A oszlopban ugyanarra a kifejezésre, addig amig az összes sort ki nem törölte azzal a szöveggel.

 

Tudtok ere vmilyen megoldást?

 

 

Köszönöm a segitségeteket!

 

üdv, Roley

Törölt nick Creative Commons License 2013.10.26 0 0 22794

Köszönöm mindenkinek a segítségét.

hunterzsolt Creative Commons License 2013.10.26 0 0 22793

Köszönöm a választ! Összejött és így is akartam! Legördülő menüsen, úgyhogy ez sikerült is! Hálás vagyok, köszi mégegyszer!

 

Előzmény: Törölt nick (22790)
tbando Creative Commons License 2013.10.26 0 0 22792

Kösz a választ.  Meg a linkeket hozzá. 

Előzmény: Törölt nick (22787)
tbando Creative Commons License 2013.10.26 0 0 22791

Kösz! Múködik. De lenne 2 kérdésem: Miért kell a transpose? Ugyanis ha kiiktatom az Option Explicitet ami szükséges a makródhoz, akkor beolvassa a ranget anélkül is.  Másrészt meg itt mit transzponál? 

Előzmény: Delila10 (22782)
Törölt nick Creative Commons License 2013.10.26 0 0 22790

Üdv! :)

Ami neked kell az a "Data Validation" avagy adatérvényesítés. Ha ezt használod, be lehet állítani, hogy egy adott cella (vagy tartomány) csak egy lista értékeit vehesse fel. Nem ablakban ugrik fel, hanem lenyíló listából lehet választani.

 

1. jelöld ki azt a cellát/tartományt, ahol be akarod kapcsolni az adatérvényesítést

2. data / data validation (valami ilyesmi, csak angol 2003-as excelben tudom)

3. válaszd ki, hogy listából akarod, itt meg lehet adni, hogy az a lista hol van

4. OK

 

Kb. ennyi, itt van egy részletesebb magyar leírás:

http://office.microsoft.com/hu-hu/excel-help/legordulo-lista-letrehozasa-cellatartomanybol-HP010072599.aspx?CTT=5&origin=HP010072600

 

Ha ablakban akarod felugrasztani, azt szerintem csak VBA-ban lehet megoldani. (Az excel mögötti programnyelv.)

Előzmény: hunterzsolt (22788)
Fferi50 Creative Commons License 2013.10.26 0 0 22789

Szia!

 

A beírás korlátozását az Adatok->Érvényesítés menüpontban tudod elvégezni. Itt beállítod, hogy megengedve lista. Forrásnak csak azonos munkafüzetben levő adatokra hivatkozhatsz, de az adatok lehetnek másik munkalapon. A listát elnevezed, pl gyümölcsök.

Akkor a forrásban hivatkozhatsz így: =gyümölcsök.

Akár az egész oszlopot is kijelölheted érvényesítésre, akkor minden egyes cellára igaz lesz az, hogy csak a megadott értékek közül lehet választani.

 

Üdv.

Előzmény: hunterzsolt (22788)

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