- Luck Dragon: Asszociációs játék. :)
- Doky586: Helyreállítási partíció létrehozása (javítása)
- sziku69: Fűzzük össze a szavakat :)
- Gurulunk, WAZE?!
- Geri Bátyó: B550 szűk keresztmetszet, de mi és miért?
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- bitpork: Augusztus 2- szombat jelen állás szerint.
- sh4d0w: Csak a profit - emberélet nem számít
- Kempingezés és sátrazás
- sziku69: Szólánc.
-
LOGOUT
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
pirit28
csendes tag
Sziasztok !
Hozzáértő segítségét kérném az alábbi feladat elkészítésében.
Ezt a függvénysorozatot kellene lefordítani vba-ba.=IF(C11="";"";
IF(OR(
COUNTIF(C11;"*hattorf*")=1;
COUNTIF(C11;"*Győr*")=1;
COUNTIF(C11;"*Ford*")=1;
COUNTIF(C11;"*Pors*")=1;
COUNTIF(C11;"*BMW*")=1;
COUNTIF(C11;"*AUDI*")=1;
COUNTIF(C11;"*hmmc*")=1;
COUNTIF(C11;"*kms*")=1;
COUNTIF(C11;"*Sassenburg*")=1;
COUNTIF(C11;"*Figueruelas*")=1;
COUNTIF(C11;"*Grossmehring*")=1;
COUNTIF(C11;"*Sindelfingen*")=1;
COUNTIF(C11;"*Bremen*")=1;
COUNTIF(C11;"*Koeln*")=1;
COUNTIF(C11;"*Voelklingen*")=1;
COUNTIF(C11;"*Seat*")=1;
COUNTIF(C11;"*emden*")=1;
COUNTIF(C11;"*Genk*")=1;
COUNTIF(C11;"*Daventry*")=1;
COUNTIF(C11;"*VW*")=1;
COUNTIF(C11;"*BENZ*")=1;
COUNTIF(C11;"*Swarzedz*")=1;
COUNTIF(C11;"*Hannover*")=1);"OE";
IF(COUNTIF(C11;"*(OE)*")=1;"OE";
IF(OR(COUNTIF(C11;"*WH*")=1;
COUNTIF(C11;"*W/H*")=1);
"W/H";"DFC"))))A fáradozást előre is köszönöm.
-
qwertly
addikt
Sziasztok!
Exel guru segítségét szeretném kérnivan egy táblázat és csak megjelölni szeretnék neveket amelyek másik listán nincsenek rajta egy pipával vagy ponttal,Mintha sima kockás füzetbe be jelölném meg a meglevő tételeket
Könnyebb legyen átlátni na ezt szeretném exelbe is az már csak hab lenne a tortán,hogy el is tudjam ideiglenesen rejteni amiket kijelöltem
-
sedyke
tag
Sziasztok!
Van egy kisse komplikalt tablazatom. Korabban kaptam mar hozza segitseget, de az nem oldotta meg teljesen a problemat.
Az 1. munkafuzetben talalhato tablazatban szeretnem osszesiteni az adatokat, a 2. es 3. munkafuzetbol, meg pedig ugy, hogy ha az F1-es cellaba beirom az adott honap szamat, akkor a tablazat egyik feleben a vonatkozo honap adatait keresi ki, mig a masik feleben osszesiti az evben az adott honapig az ertekeket.
A gond azzal van, hogy az adatokat tartalmazo munkafuzeten sajnos vannak ismetlodesek. Egyes cegek ketszer is szerepelhetnek, igy a kepletnek nem csak egy sor adatait kellene osszegeznie, hanem ahol meg talalat van az adott cegre.Lennetek olyan szivesek, hogy raneztek, hatha ti tudtok valami megoldast, amire nekem meg nem sikerult rajonnom?
Feltoltottem az alabbi helyre:
https://docs.google.com/spreadsheets/d/1mgfRBzULb6xjnmUKUJSx8j8uAC-PNQvqIc6pROxWamw/edit?usp=sharingElore is nagyon szepen koszonom!!!
-
Fferi50
Topikgazda
válasz
nemlehet #29295 üzenetére
Szia!
A helyettesítő karaktert nem használhatod, ha egyenlőséget vizsgálsz a ha függvénnyel, mert az "centire" azt nézi, amit beírtál - tehát nem helyettesítő karaktert "lát", hanem csillagot/kérőjelet.
A hasonlító, kereső függvények viszont működnek a helyettesítő karakterrel.Üdv.
-
nemlehet
őstag
válasz
m.zmrzlina #29294 üzenetére
Köszi, így működik! Már csak kíváncsiságból érdekelne, hogy miért nem volt jó a helyettesítő karakterrel.
-
nemlehet
őstag
Hali!
Nekem egy érdekes problémám van miszerint "nem működik" a helyettesítő karakter. Egymásba ágyazott ha függvényekkel szeretném megoldani, hogy ha adott oszlopban lévő karakter sor P-vel kezdődik és egy másik oszlopban W van akkor szorozza meg annyival ha Z akkor ennyivel, ha L-el kezdődik akkor ugyan így csak más értékekkel. Csináltam próbatáblázatot, a függvény működik is, de csak akkor ha sima P vagy L van. A "P*" helyettesítés valamiért nem jó, pedig máskor már használtam (bár nem pont így). Nekem egy olyan megoldás is jó, hogy valahogy kiolvasom egy segédtáblázatba , hogy P-vel vagy L-el kezdődik-e a karaktersor de ezt se tudtam megoldani, minden "P*" vagy "P????" helyettesítésre hamis értéket ad. Ez az általam írt HA fg.: =HA(L12="p*";HA(C12="w"; "270"; HA(C12="z"; "150";""));HA(C12="w"; "255"; HA(C12="z"; "145";"")))
[táblázat azon része amiből ki kell olvasni az adatokat] -
#75376384
törölt tag
válasz
Fferi50 #29287 üzenetére
ez sajnos nem jó, mert a pirossal jelölt cellák, amik változhatnak és változniuk is kell.
amit linkeltem fájlt az csak a házi számolási részének egy "szakasza". az ide kitalált műveletet még meg kell ismételni párszor (jó esetben csak kétszer), csak más számokkal.
egy pár részlet, hátha akkor érthetőbb lesz:
a "b" és "h" egy trapéz szelvény km.-i adatai míg az "i" a hosszirányú esése egy szakaszon, ilyenből van még másik kettő, ahogy arra fentebb is utaltam, de azok nem relevánsak most. a "v" a patakban folyó víz sebessége lesz.a feltételek ugye az a három amit ott látható, ebből a legfontosabb, hogy a Q10/Q= 0,98 és 1,02 közé, a v pedig minél közelebb a vmax-hoz jöjjön ki. a Q10/Q értéke lesz a solverben 1, ahogy azt szintén leírtam fentebb, így azzal nem kell külön foglalkozni.
egy kis plusz információ, hogy a Q/Q értéke inkább függ a "b" és "h" míg a "v" az "i" értékétől (bár ez így nem teljesen igaz, ebben az esetben azonban mégis így fogalmaznék, mert amilyen mértékben változtathatjuk a fenti három számot, úgy ez lesz a jellemző tendencia).
remélem most már tényleg érthetően írtam le.
-
Fferi50
Topikgazda
válasz
lenkei83 #29286 üzenetére
Szia!
Nem tudom, nekem nem szedte szét az egyesített cellákat az
union(range("E3"),range("F8"),range("E7")).formatconditions.delete sor.
Az E3:F6 cellák egyesítve voltak és együtt lett rá feltételes formázás kiadva.Mivel törlöd a feltételes formázást?
Más: Redmondnál nemigen lehet logikát találni, mért pont a hibakezelés lenne az.
Üdv.
-
Fferi50
Topikgazda
válasz
#75376384 #29284 üzenetére
Szia!
Nem egészen értem a problémát, de amit csináltam:
g34 cellába beírtam a képletet =B34-E34
Ezután a célérték keresésben ennek a cellának a célértékét 0 értékre állítottam és változó cellának a b18 cellát jelöltem meg.
Kijött hogy 53 % mellett a g34 értéke 0 és minden feltételnek megfelel minden szám.Üdv.
(Persze lehet, hogy ez véletlen...) -
lenkei83
tag
válasz
Fferi50 #29285 üzenetére
Szia!
Megoldottam kivétellel és hibakezeléssel, csak nem értem. Ha hiba akkor legyen már hiba és kezelje rendesen.
Ami viszont szembejött:
Adott munkalapon beraktam egy range-be a színezett cellákat, hogy ne egyesével csinálja a feltételes formázást:Set rnSelect = Union(rnSelect, cella)
Viszont ha ugyanilyen módon törölni akarom a formázást, akkor az egyesített cellákat szétszedi. Lehet ezt valahogy kezelni?Üdv.:
P. -
Fferi50
Topikgazda
válasz
lenkei83 #29283 üzenetére
Szia!
Sajnos a SpecialCells metódusnak ez a sajátossága - nem fűlik a foga a hibakezeléshez (Redmond logikájába nem fér bele úgy látszik). Még egy range változóba sem teszi bele a Nothing értéket...
De miért keresel cellát a csak diagramot tartalmazó sheeten, hiszen a tipusát meg tudod állapítani és akkor át tudod lépni a keresést.
Ezen túlmenően szerintem a mutatott iserror kifejezés nem túl szerencsés, hiszen nemlétező cellának a címét sem lehet megállapítani.
Ebben a szituációban úgy gondolom, az on error hibakezelést kell alkalmazni.
Üdv.
-
-
lenkei83
tag
Sziasztok!
Ha olyan worksheetet vizsgálok amin nincs cella (diagram sheet), akkor ez miért száll el nincs ilyen cella hibával?
If IsError(rnSelect.SpecialCells(xlCellTypeAllFormatConditions).Address) = FalseNem az lenne a normális, hogy ha már egyszer iserrorba rakom és hibára fut, akkor lekezeli rendesen? Lehet ez valami VBA hiányosság, vagy valamit nem jól csinálok?
üdv.:
P. -
#75376384
törölt tag
válasz
Fferi50 #29280 üzenetére
amennyiben jól értelek, kipróbáltam már azt a verziót. ugye az egyik v értéke adott, míg a másikat a fenti három adatból közvetve kapom meg. úgy írtam be, hogy az adott v - kapott v értéke egy nullához nagyon közeli szám legyen, de a <= lehetőség miatt valami bődületes rossz eredményt dobott.
már azon is gondolkodtam, hogy makróval próbálkozzak, de azt túl régen tanultam ahhoz és nincs időm átismételni, mivel a házit le kell adni és millió más dolgom is van, a tanár pedig a lehető legpontosabban kéri, mert miért is ne.
-
#75376384
törölt tag
sziasztok!
megpróbálom minél érthetőbben leírni a bajom.
van egy "számításom", amiben 3 adatot változtathatok (b,h,i). ezeknek bizonyos feltételek mellett a legoptimálisabb arányt kellene hogy adják a művelet végén.
az egyik ilyen egy b/h < 1,25 a másik hogy a fenti három adattal számolva és úgy kapott Q értékek aránya 0,98 és 1,02 közé essen (ezt megadom egy sima, legyen egyenlő 1-el és oké). a harmadik feltételnél viszont tanácstalan vagyok. a fenti három adatból tudok egy v-t is számolni, ami viszont nem léphet túl egy adott értéket. ez még nem is lenne gond, de a számításom akkor a legoptimálisabb, ha azt a bizonyos adott értéket a lehető legjobban megközelíti. őszintén szólva ötletem sincs mit kellene beírni korlátozásnak.
egyedüli megoldásnak az iterálás ugrik be és az, hogy a solvert többször futtassam le egymás után én viszont szeretném ennél egyszerűbben megoldani, amennyiben lehetséges.előre is köszönöm a segítséget, ha nagyon értelmetlenül írtam kérlek jelezzétek.
-
Reinhardt
őstag
válasz
m.zmrzlina #29276 üzenetére
Koszi, tokeletesen mukodik.
-
m.zmrzlina
senior tag
válasz
Reinhardt #29275 üzenetére
Részlet a topik Téma összefoglalójából:
– Modulba írás: Alt+F11-re bejön a makró szerkesztő. Bal oldalon ki kell választani a füzetet, majd az Insert | Module menüpontokkal új modult kapunk, ami a bal oldalon látszik, és ki van jelölve. A jobb oldali nagy üres mezőbe kell bemásolni a fórumon kapott makrót. Visszalépve a füzetbe az Alt+F8 előhoz egy párbeszéd ablakot, itt tudjuk kiválasztani és indítani a makrót.
Az angol nyelv itt most nem számít.
-
-
m.zmrzlina
senior tag
válasz
Reinhardt #29271 üzenetére
Ez is valami hasonló, csak ez nem nyomtat, hanem létrehozza a munkalapot amit neked kell kinyomtatni.
Sub letrehoz()
k = 1
For i = 1 To 50
Sheets("Munka1").Copy after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = i
For j = 4 To 22 Step 2
Sheets(Sheets.Count).Range("G" & j).Value = k
k = k + 1
Next
Next
End Sub -
Delila_1
veterán
válasz
Reinhardt #29271 üzenetére
Állítsd be a nyomtatási képen a fekvő lapot, és a margókat. Indíthatod a nyomtatást.
Sub Nyomtat()
Dim lap As Long, sor As Integer, valtozo As Integer
valtozo = 1
For lap = 1 To 50
For sor = 4 To 22 Step 2
Cells(sor, "G") = valtozo
valtozo = valtozo + 1
Next
Range("A1:K23").Select
Selection.PrintOut Copies:=1
Next
End Sub -
-
Reinhardt
őstag
válasz
m.zmrzlina #29270 üzenetére
Nyomtatok belole 50 oldalt, az elson a "REF:" oszlopban 1-10-ig lesznek szamok, a masodikon 11-20-ig, es igy tovabb.
Szoval a kerdes az, hogy van e vmi fuggveny (vagy mittudomenmi) amit ha beteszek G4:G23-ba, akkor az a nyomtatott darbszam szerint valtozik? Vagy barmilyen mas modszer erdekelne amivel hasonlo eredmenyt kapok. -
Delila_1
veterán
válasz
coldfirexx #29267 üzenetére
Az első lap H oszlopában lévő tengerikígyó képlet értéke mikor legyen IGEN, és mikor NEM?
-
Reinhardt
őstag
Hello,
Van egy ilyen tablazatom, amit ki szeretnek nyomtatni es egy konyvve osszefuzni. A referencia szamok 1-tol 500-ig mennek, oldalankent 10. Gondolom megoldhato valahogy, hogy ne kelljen copy-paste-tel csinalnom 50 oldalt. Meg tudna vki mondani, hogyan?
Koszi -
Delila_1
veterán
válasz
coldfirexx #29265 üzenetére
Tedd ki a füzetet egy elérhető helyre, ahonnan letölthető.
Lehetnek benne hamis adatok az igaziak helyett. Elég pár sor (lásd a Téma összefoglalót). -
-
Delila_1
veterán
válasz
coldfirexx #29262 üzenetére
Átírtad a lapok nevét a makróban szereplő egyes és kettes névről a sajátodra?
If CV = "IGEN" Then Cells(CV.Row, "F").Copy Sheets("kettes").Cells(ide, "A")
A fenti sor kiemelt része végzi a beillesztést.
-
mindanee
tag
Sziasztok!
Tudnátok abban segíteni, hogy hogyan tudnék egy munkalapon található több táblázatot egy kimutatásban egyesíteni?
A táblázatok szerkezetileg azonosak. (Gyakorlatilag egy olyan megoldásra lenne szükségem ami az egyes táblázatok kimutatásait szummázná egy kimutatásba - de gondolom ezt egy kimutatással meg lehet csinálni, ahol megadom az összes figyelendő táblázatot.)
(Ha volt már, akkor sorry, gyors keresés alapján nem találtam választ a topikban.)
Köszi előre is!
-
-
Delila_1
veterán
válasz
irodakukac #29236 üzenetére
Ny.janos javaslatára megírtam az új makrót.
Az Összes... lapodon jelöld ki a tartományodat. Beszúrás | Táblázat. A neve legyen Összes. A másik lapon a W1-be másold be az első lap H oszlopának a címét, a W2-be írd be: készpénz.
A makró (modulban) ennyi
Sub Spec_Szures()
Sheets("házipénztár").Select
Sheets("Összes könyvelési adat").Range("Összes[#All]").AdvancedFilter Action _
:=xlFilterCopy, CriteriaRange:=Range("W1:W2"), CopyToRange:=Range("A1:T1"), _
Unique:=False
End SubAhányszor indítod ezt a makrót, a házipénztár lapodon mindig a friss, kp-s sorok jelennek meg.
Ha az Összes... lapodra teszel indítógombot, azt is mindig átmásolja, ezért nem érdemes oda tenni. Tedd inkább a másik lapra. -
Delila_1
veterán
válasz
coldfirexx #29251 üzenetére
Itt a makró:
Sub Nevek()
Dim usor As Long, ter As Range, ide As Long, CV As Range
usor = Range("H" & Rows.Count).End(xlUp).Row
Set ter = Sheets("egyes").Range("H3:H" & usor).CurrentRegion
For Each CV In ter
ide = Sheets("kettes").Range("A" & Rows.Count).End(xlUp).Row + 1
If CV = "IGEN" Then Cells(CV.Row, "F").Copy Sheets("kettes").Cells(ide, "A")
Next
End SubModulba kell tenned, ahogy a Téma összefoglalóban le van írva.
Szerk.: a válasz elküldése után jutottam az olvasásban oda, hogy kaptál egyszerű, nem makrós megoldást.
-
Roxy27
tag
válasz
m.zmrzlina #29255 üzenetére
Istenkirály!
Működik, sokat segítettél!
KÖSZÖNÖM -
m.zmrzlina
senior tag
válasz
coldfirexx #29251 üzenetére
Én közismerten hajlamos vagyok verébre is makróval lőni de szerintem itt ne ragaszkodj a makrós megoldáshoz. Egyszerűen szűrd le a tartományt a H oszlop IGEN értékeire azután az F oszlop értékeit másold a kívánt helyre. Szerintem ettől egyszerűbb megoldást nem találsz.
-
Roxy27
tag
Sziasztok,
kellene kis segítség... van egy jó hosszú tábla.. 6200 sor
az oszlopban 10 jegyű számok, de csak az első 4 karakter érdekes. Ki kellene vállogattatni, hogy csak a különbözőekből legyen egy lista.
39173200
39173210
39191000
39191000
39191000
39191000
39199000
39199000
39199000
39199000
49019900
49019900
49111090
49111090
49111090És ez legyen:
3917
3919
4901
4911Erre kellene valami képlet
Köszi -
ny.janos
tag
válasz
Delila_1 #29235 üzenetére
Sziasztok!
Bár a makró programozáshoz nem értek semmit, felmerült egy ötletem a probléma egy másik megközelítési módjára, ami talán egyszerűbb, mint az általatok írt, csak ahhoz is kell egy makró, amit viszont én nem tudok ez előzőek miatt elkészíteni.
Viszont az alapötlet talán használható: az "Összes könyvelési adatok" munkalap adattartalmát haladó szűréssel másoljátok a házipénztár munkalapra. Ha az "Összes könyvelési adatok" munkalap tartományát táblázattá alakítjátok, és szűrésben ez a táblázat lesz a listatartomány, akkor már csak a szűrés futtatásához kell egy makrót írni. Ha bármely adatot változtatjátok utólag (pl. korábbi téves kitöltés miatt) az "Összes könyvelési adatok" munkalapon, akkor a makró futtatásával minden adat frissül a "Házipénztár" munkalapon.
Ha bármikor további szűrőfeltétel megadása válna szükségessé a fizetési módon kívül az egy pillanat alatt megadható a szűrőtartományban.
-
lenkei83
tag
válasz
Fferi50 #29247 üzenetére
Hello!
Közben összeraktam egy kis puskázással... Nem teljesen értem a logikát, de működik.
És amiért nem értem: nem elég ennyi simán zárolni az összes cellát?
For Each ws In ThisWorkbook.Worksheets
ws.UsedRange.Cells.Locked = True
For Each cella In ws.UsedRange.Cells
If cella.Interior.Color = RGB(204, 236, 255) Then
cella.Interior.Color = RGB(255, 255, 0)
cella.MergeArea.Locked = False
Next cella
Next wsTesztelgettem pár dolgot és úgy látom, hogy a cella.MergeArea.Locked = False lekezeli az egyesített és a nem egyesített cellát egyaránt, interior colortól függően. Jól látom, hogy nem kell bele külön kezelés normál és egyesített cellákra, valamint a FindFormat sincs így szükség?
Vagy valamit benézek?üdv
P. -
válasz
Delila_1 #29235 üzenetére
Sziasztok!
Hoztam egy szép kis fejtörőt.A következőre kellene egy makró:
Van 2 lapfülem: egyes és kettes
Az egyes lapfülön az F oszlopban a 3 sortól nevek vannak a H3-as cellától pedig az IGEN/NEM található.1, Keresse meg a H oszlopban az első IGEN-t
2,Az IGEN melletti F oszlopból a nevet másolja ki.
3, A kettes lapfülre lépjen át, az A oszlopra.
4, Az A oszlopban keresse meg az első üres sort és oda másolja be.
5, És az IGEN keresését csinálja addig míg az egyes lapfülön üres sort talál.Remélem érthetően írtam le.
Köszönöm, Ha valakinek van rá ötlete.
István -
Wyll
őstag
válasz
Fferi50 #29245 üzenetére
Igen, közben átgondolva rájöttem én is. Fordítási időben a függvény még kvázi nem is létezik, nem tud olyankor kód futni..
Az a baj, hogy ez egy elég speciális karakter.
A Segoe UI Symbol betűtípus (amit jó szívvel ajánlok mindenkinek, ha jeleket keres, mert gyakorlatilag szinte minden megtalálható benne) négy távoli unicode mezőjéről van szó (9632, 9633, 9640, 9660), amik pont kellenek a táblázatomba. (üres négyzet, teli négyzet, sraffozott négyzet, és háromszög) Viszont ezeket a speckó karaktereket sem a VBA szerkesztő, sem az immediate ablak nem tudja megjeleníteniEzért ilyen kerülőúton tudom csak beleírni őket a VBA kódba.
Végül úgy csináltam ahogy te is írtad, hogy nem constant, hanem sima string variable lettek.
Lehetett volna mindenhova ChrW(9640)-et írni, de akkor mindenhol lefutna a függvény, lassul a kód. Úgyhogy inkább az elején egyszer beleteszem őket változóba, így inkább +memóriát áldozok erre.
Nem mintha ebben az esetben sokat számítana, de fő a tudatosság -
boboy79
csendes újonc
Sziasztok tudna nekem segíteni valaki? (#29159)
-
bozsozso
őstag
válasz
Fferi50 #29247 üzenetére
Sziasztok,
Vonal diagram készítésnél nem találok olyat, hogy egy adott sávot kijelöljek benne, hogy ezek a jó értékek. Próbálkoztam volna téglalap beszúrással arra a sávra, de akkor kitakarja a vonaldiagramot és nem lehet háttérbe rakni. Van erre valami megoldás vagy tényleg nincs azért nem találom?
-
Fferi50
Topikgazda
válasz
lenkei83 #29246 üzenetére
Szia!
Az elég kevés információ, hogy kiakad. Milyen hibával áll le?
Miért is mész végig egyesével a cellákon, amikor a területen lehet keresni. Amikor egy-egy nem színes cellához érsz, akkor Nothing lesz értéke a szinescellának, ezt pedig nem lehet zárolni, sem felszabadítani.
Itt ugyanazt a ciklust kell lejátszani, mintha értéket keresnél a területen. Első cellát megkeresed és utána addig keresed, amíg vissza nem jutsz hozzá.
(set szinescella=ws.usedrange.find(what:="",searchformat:=true)Ha pedig ezt a ciklust csinálod, akkor egyszerűen meg kell nézni a cella háttérszínét és ha sárga, akkor levenni a zárolást.
Üdv.
-
lenkei83
tag
Sziasztok!
Rá tudna nézni valaki, hogy miért akad ki a szinescella.Locked = False sornál?
Köszi
P.Sub zarolas_()
Dim ws As Worksheet
Dim cella As Range
Dim psw As Variant
Dim szinescella As Range
Application.FindFormat.Clear
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
Application.FindFormat.Interior.Color = RGB(255, 255, 0)
Application.ReplaceFormat.Interior.Color = RGB(255, 255, 0)
psw = ""
For Each ws In ThisWorkbook.Worksheets
ws.UsedRange.Cells.Locked = True
For Each cella In ws.UsedRange.Cells
Set szinescella = cella.Find(what:="", searchformat:=True)
szinescella.Locked = False
Next cella
Next ws
ws.Protect Password:=psw, userinterfaceonly:=True
MsgBox "Munkalapok zárolva"
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub -
Fferi50
Topikgazda
Szia!
A konstans definiálásakor nem lehet semmilyen függvényt megadni (sajnos).
Kerülő út: Az immediate lapon megnézed a CHRW függvényed értékét, kimásolod és azt teszed be a VBA -ba. (Bár ez nem biztos, hogy megy.)
Ha nem megy, akkor ne konstansnak definiáld, hanem szövegváltozónak, akkor biztosan "megeszi".
Nálam ez egy kérdőjel, nem tudom, Te milyen karaktert szerettél volna.Üdv.
-
KMT
addikt
Van arra valami megoldas, hogy (csak) excel-ben az egergorgore ne tobb sort, hanem csak egyet, vagy meg inkabb egy fix magassagnyit gorgessen?
(Anelkul, hogy windows-ban a sorok szamat nagyon lecsokkentenem.)
Mivel szoveges doksik eseteben ott a tobb soros beallitas a jo, de ha sok szoveg van egy excel cellaban, akkor van, hogy keptelenseg kozepre gorgetni az adott sort... -
Wyll
őstag
Hali!
Van egy ilyen VBA sorom (Excel 2010):
Const ures As String = ChrW(9633)
Azt kapom rá, hogy Compile error: constant expression required.
A ChrW(9633) nem konstans kifejezés? -
poffsoft
veterán
válasz
PETEE78 #29240 üzenetére
majdnem jó
Dim FSO As Object
Dim FromPath As String
Dim ToPath As String
Dim i As Integer
i = 1
Do While i < 31
FromPath = "C:\TS AKTUÁLIS\2015.10." & right("0" & i ,2)
ToPath = "C:\TS AKTUÁLIS\OKTÓBER"
If Right(FromPath, 1) = "\" Then
FromPath = Left(FromPath, Len(FromPath) - 1)
End If
If Right(ToPath, 1) = "\" Then
ToPath = Left(ToPath, Len(ToPath) - 1)
End If
Set FSO = CreateObject("scripting.filesystemobject")
If FSO.FolderExists(FromPath) = True Then
FSO.CopyFolder Source:=FromPath, Destination:=ToPath
End If
i = i + 1
Loop
MsgBox "You can find the files and subfolders from " & FromPath & " in " & ToPath
End Sub -
PETEE78
senior tag
Sziasztok!
Könyvtárból alkönyvtárak tartalmát szeretném átmásolni egyik helyről másikra. Erre találtam a neten egy majdnem jó megoldást, amit próbáltam kiegészíteni a saját okoskodásommal.
Az i változót én próbálnám belecsempészni úgy, hogy 01-31-ig változzon.
Az egyik problémám, hogy amint nem talál mondjuk 2015.10.03 végezetű könyvtárat hibára fut és ki is írja a megírtak szerint. Én ezt úgy szeretném, hogy ilyenkor ne hibaüzenetet dobjon, hanem továbblépjen a következő i értékre.
A másik problémám, hogy nem tudom hogy jelöljem a FromPath könyvtárnál a 01-31 részt i változóval.
Segítségeteket köszönöm!Dim FSO As Object
Dim FromPath As String
Dim ToPath As String
Dim i As Integer
i = 1
Do While i < 31
FromPath = "C:\TS AKTUÁLIS\2015.10.0" & (i)
ToPath = "C:\TS AKTUÁLIS\OKTÓBER"If Right(FromPath, 1) = "\" Then
FromPath = Left(FromPath, Len(FromPath) - 1)
End IfIf Right(ToPath, 1) = "\" Then
ToPath = Left(ToPath, Len(ToPath) - 1)
End IfSet FSO = CreateObject("scripting.filesystemobject")
If FSO.FolderExists(FromPath) = False Then
MsgBox FromPath & " doesn't exist"
Exit Sub
End If
FSO.CopyFolder Source:=FromPath, Destination:=ToPath
i = i + 1
Loop
MsgBox "You can find the files and subfolders from " & FromPath & " in " & ToPath
End Sub -
Zola007
veterán
Hogyan tudnám a default nagyítást megváltoztatni?
szeretném, ha 150% lenne az excel alapbeállítása, de nem találok semmilyen templátot, mint pl. a normal.dot a wordben
megoldható? -
Delila_1
veterán
válasz
irodakukac #29236 üzenetére
Szívesen. Nehogy hamar megöregedj!
-
Delila_1
veterán
válasz
irodakukac #29233 üzenetére
A modulba írtat kiegészítettem azzal, hogy a házipénztár lap előző adatait törölje az új másolás előtt.
Sub Hó_Eleji_KpMásolás()
Dim usor As Long, ter As Range
usor = Range("A" & Rows.Count).End(xlUp).Row
'Előző adatok törlése a házipénztár lapon
Set ter = Sheets("házipénztár").Range("A1").CurrentRegion
ter.Offset(1, 0).Resize(ter.Rows.Count - 1, ter.Columns.Count - 1).ClearContents
'Szűrés készpénzre
ActiveSheet.Range("$A$1:$T$" & usor).AutoFilter Field:=8, Criteria1:="készpénz"
'Szűrt sorok másolása
Range("A2:T" & usor).SpecialCells(xlCellTypeVisible).Copy Sheets("házipénztár").Range("A2")
'Szűrés megszüntetése
ActiveSheet.Range("$A$1:$T$" & usor).AutoFilter Field:=8
End Sub -
Delila_1
veterán
válasz
irodakukac #29233 üzenetére
Szia!
Írtam egy másik makrót, ami megoldja a hóeleji másolást. Ezt a makrót modulba tedd (a Téma összefoglaló szerint). Most írtam bele néhány megjegyzést, hogy tudd, melyik sor mire való.
Sub Hó_Eleji_KpMásolás()
Dim usor As Long, usorHP
usor = Range("A" & Rows.Count).End(xlUp).Row
usorHP = Sheets("házipénztár").Range("A" & Rows.Count).End(xlUp).Row + 1
'Szűrés készpénzre
ActiveSheet.Range("$A$1:$T$" & usor).AutoFilter Field:=3, Criteria1:="készpénz"
'Szűrt sorok másolása
Range("A2:T" & usor).SpecialCells(xlCellTypeVisible).Copy Sheets("házipénztár").Range("A" & usorHP)
'Szűrés megszüntetése
ActiveSheet.Range("$A$1:$T$" & usor).AutoFilter Field:=3
End SubÉrdemes kitenni egy gombot. Lehet ez egy csinos alakzat a felső sorban. Jobb klikk rajta, Makró-hozzárendelés, majd kiválasztod – ha van választék
– a Hó_Eleji_KpMásolás-t. Ez a kényelmesebb módszer, de gomb nélkül is indíthatod pl. az Alt+F8-as megoldással.
Szerk.: A laphoz rendelt makróban lesz egy apró változás, hogy ne fusson hibára, mikor hó elején a sok adatot egyszerre bemásolod. A csillagos sor új.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ide As Long, sor As Long
If Target.Count > 1 Then Exit Sub '**********
If Target.Column = 20 Then
sor = Target.Row
If Range("H" & sor) = "készpénz" Then
ide = Application.WorksheetFunction.CountA(Sheets("házipénztár").Columns(1)) + 1
Range("A" & sor & ":T" & sor).Copy Sheets("házipénztár").Range("A" & ide)
End If
End If
End Sub -
irodakukac
csendes tag
válasz
Delila_1 #29205 üzenetére
Ez egy fontos információ volt!! Köszi!
Azon gondolkodom, hogy hogyan tudna dinamikusan működni. Minden hónapban kapunk egy havi (január, később február.....) könyvelési analitikát. Ebben van átutalás, készpénz is. Ez az összesen munkafüzetben van.
Innen másolja a program a készpénzeket a házipénztárba. Azokat a sorokat, amik a programírás után kerülnek be a táblába.
Hogyan tudom elérni, hogy a kapott havi új táblának a megfelelő sorai bekerüljenek a házipénztárba?Megoldás lehet, ha először kiürítem az összesen munkalapot? Jut eszembe, akkor a házipénztár munkalap tartalmát is törölni kell. Talán ezzel kerülöm el a hiba lehetőségét.
Gondolkodom, hogyan tudnám a legkevesebb hibával megfelelő helyen tudni a megfelelő havi adatokat.
Szerinted?
-
FozzieBear
csendes tag
válasz
#05304832 #29230 üzenetére
"Például egy alakzat is lehet az?"
Nem, az normál esetben nem az (bár lehet az is)"Olyat csinál hogy megnyitom a makróval ellátott munkafüzetet, majd megnyitok egy csv fájlt és abból nyeri ki az adatokat,"
Na ezzel a résszel viszont lehetnek gondok, de ez attól függ, hogy van megírva az a makró.
"Akkor úgy látszik mégiscsak két rendszert kell futtatnom a gépen és szükség lesz még egy SSD.re.
"
Parallels is megteszi. Bár a plusz SSD sose árt
-
FozzieBear
csendes tag
válasz
#05304832 #29228 üzenetére
Attól függ, mit használ a makró.
Ha windows komponenseket is használ, akkor nem fog OSX-en futni. Vagy például ha a filerendszerhez próbál hozzáférne, az sem fog menni,
Meg van még pár dolog, ami OSXalatt nem elérhető. A legegyszerűbb, ha kipróbálod, és megnézed, hogy hol akad el. Az OSX által értelmezhetetlen kódrészeket (ha van ilyen, komplexebb makrók esetében, 99%, hogy lesz ilyen) ezután kicseréled.
De a fejlesztést szerintem mindenképpen Windows alatt csináld, és csak a debuggolást OSX alatt.
Ha kipróbálod az OSX-es Office VB editorját, rögtön megérted, miért mondom ezt -
Delila_1
veterán
válasz
FozzieBear #29223 üzenetére
Nosza, ne fogd vissza magad. Szerintem jobb lenne az Excel 2016+ cím, ami jelzi, hogy a 2016-os verziótól kezdődik.
-
Delila_1
veterán
Szerintem meghülyíted a folytonos rákérdezéssel a felhasználót. Inkább vegyél fel egy új oszlopot, ahova újra be kell vinni az adatot, majd feltételes formázással színezd ki a két cellát, ha nem egyformák (kép jobb oldalán).
A másik kérdésre: a D1 cella tartalmazza a normát, az F1 a max. eltérést. Ha a bevitt érték a megadott tűrés alatt-, ill. fölött van, a háttérszín jelez (kép bal oldalán).
Egy ábrára tettem a két kérdésnek feltételes formázással való megoldását, a képletek a megjegyzésekben láthatóak.
-
szatocs1981
aktív tag
Az elsö problémára (ezt az adott fülhöz kell bemásolni):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 Then 'H szlopot ha módosítod
ertek = InputBox("Tuti ennyit akarsz?", "A nagy kérdés")
If ertek <> CStr(Cells(Target.Row, 8).Value) Then
MsgBox ("Elcseszted!")
End If
End If
End Sub -
FozzieBear
csendes tag
Szia Mindenki,
Egy technikai kérdésem lenne: nyissunk egy új topicot az Excel 2016-ban natív módon, de Excel 2010-2013-ban csak Power Query és/vagy PowerPivot - tal való megoldásokra? Nevezzük csak el Excel Next-nek, vagy nevezzük, aminek akarjátok?
Csak azért kérdem, mert úgy tűnik, itt a dög egyszerű, pár egérklikkes feladatokhoz is mindenki makróhoz nyúl, és nem tudom, hogy ennek az az oka, hogy terjesszük a halálra ítélt VBA tudományt az újonnan érkezőknek, vagy az, hogy qrva okosnak tűnjünk egy ilyen idejétmúlt, kőkorszaki feladat esetében is?
-
FozzieBear
csendes tag
válasz
irodakukac #29188 üzenetére
Szia, bár azt nem írtad, milyen verzió az excel, de ha Excel 2016, akkor ez kb két egérkattintással, mindenféle makró nélkül megoldható. Ha korábbi (excel 2010 vagy 2013) , akkor is, de akkor fenn kell lennie a Power Query bővítménynek. Ha érdekel a makró nélküli megoldás, írj
-
Fferi50
Topikgazda
válasz
bozsozso #29220 üzenetére
Szia!
Ha minden igaz, a következő segíthet:
Ráállsz a diagramra, kiválasztod azt az adatsort, aminek a sorrendjét módosítani szeretnéd egy egérkattintással - figyelj, hogy az egész ki legyen jelölve.
A szerkesztőlécen megjelenik az adatsor képlete, pl. így:
=ADATSOR(Munka1!$X$61;(Munka1!$T$1;Munka1!$AB$1:$GX$1);Munka1!$AA$61:$GX$61;4)
A végén levő zárójel előtti szám jelzi az adatsor sorrendjét a diagramon - és a jelmagyarázatban. Ezt a számot írd át - természetesen csak akkora számot írhatsz, ahány adatsor van a diagramon. Ezután enter.
Ezzel automatikusan megváltozik a diagramon a többi adatsor elhelyezkedése is.
Kicsit kísérletezel vele és kialakul a neked tetsző sorrend.
Remélem táblázatból készítettnél is működik a módszer.Üdv.
-
bozsozso
őstag
Sziasztok,
Kis segítség kellene. Táblázatomban szereplő adatokból halmozott oszlop diagramot készítettem. Szeretném ha az adatok ugyanolyan sorrendben lennének mint ahogy a táblázatban vannak.
Pl. a táblázatban így van:
reggeli
tízórai
ebéd
uzsonna
vacsora
utóvacsoraEzzel szemben így jelenik meg a jelmagyarázatban és az adatok között is:
vacsora
uzsonna
ebéd
tízórai
reggeli
utóvacsoraVégülis annyi is elég lenne ha az utóvacsora a vacsora elé kerülne. Mi szerint rendezi ezeket sorba?
-
poffsoft
veterán
válasz
germinator66 #29215 üzenetére
akkor a tartomány és a képlet nincsen összhangban...
Delila képlete a 2-100. sorra működik, a H oszlopot figyeli minden sorban... -
Delila_1
veterán
válasz
germinator66 #29217 üzenetére
-
germinator66
aktív tag
válasz
germinator66 #29215 üzenetére
A sorok csúsztak el, mostmár rendben van! Köszi mégegyszer!
-
Delila_1
veterán
válasz
germinator66 #29215 üzenetére
Örülök, hogy sikerült.
-
Delila_1
veterán
válasz
germinator66 #29213 üzenetére
Kijelölöd a tartományt, ami pl. A2-től Z100-ig tart. Ebben a tartományban akarod azt a sort színezni, ahol pl. a H oszlopban van bármilyen karakter. A képlet
=$H2>"" (két db idézőjel)
-
germinator66
aktív tag
Sziasztok!
Felételes formázás esetén azt szeretném, hogy a sort színezze be, ha egy adott oszlop cellája tartalmaz bármilyen karaktert. A kérdésem, mit kell megadni feltételként?
-
Traxx
őstag
Sziasztok!
Az előző hozzászólásomhoz kapcsolódóan szeretnék még egy kis iránymutatást kérni tőletek
szatocs1981 kolléga adott segítséget, de nem nagyon sikerül működésre bírnom, illetve kaptam új infókat is. Emiatt, és a jobb szemléltethetőség miatt feltenném újra a kérdésemet
Van egy " gyártási nyilvántartó" táblázatom, amely így néz ki:
Itt a Legyártott darab oszlopa lenne az érdekes, ami úgy működne, hogy minden nap beírnánk azt, hol tart a gyártás. Itt azt szeretném elkerülni, hogy "hülyeséget" írjunk be véletlenül, megborítva ezzel mindent. Tehát két dolgot szeretnék elérni (vagy-vagy alapon, de lehet mindkettőnek egyszerre is lenne értelme, ha azzal ki tudok minden véletlen elírást küszöbölni, persze ha ez a program lehetőségeiben benne van
) :
- Az egyik az, hogy amikor beviszem az adatokat a H oszlop celláiba, akkor az excel kérdezzen rá, hogy tuti jó-e, és még egyszer be kelljen írni (ez lenne a jobb módszer). Ha pedig a két beírt szám nem egyezik, akkor pampogjon, hogy elcseszted
Ha pedig igen, csak akkor kerüljön véglegesen rögzítésre a cellában.
- A másik (ez vetődött fel ma), hogy minden terméknek van normája, és ha pl. plusz-mínusz x%-kal többet írok be, mint az addigi gyártás+norma, akkor szóljon, hogy biztos-e. Ezt megpróbáltam az Adatok - Érvényesítés menüpont alatt megoldani, de nem igazán ment. Létrehoztam 3 segédoszlopot, a J-ben a H-ban megjelenő értékeket jelenítettem meg, csak simán =$H$3 formában, a következő két oszlopba pedig betettem a norma plusz-mínusz x%-os mértékét. Az érvényesítés menüpontban pedig ezekkel játszottam: a minimum és a maximum értékekhez ezeket tettem be, plusz az aktuális értéket, a Hibajelzés fül alá pedig egy üzenetet, hogy biztos így akarom-e? De így nem ment a dolog - gondolom azért, mert ha a H oszlopos cellákba beírtam az új értéket, akkor J-ben is megváltozott
Olyan megoldást pedig nem találtam, hogy ezt kivédjem...
Mind a két megoldás jó és elegáns lenne szerintem, ha működne, de nagyon nem jutok zöld ágra. Még annyit szeretnék elmondani, hogy ennek 2 munkalapon kellene működnie, de ezek felépítése teljesen megegyezik, pár sorral van csak több az egyikben, de a képletek, stb. ugyanazok.
Tudnátok segíteni?
Köszönöm szépen!
-
MCGaiwer
addikt
válasz
FozzieBear #29209 üzenetére
az utóbbi, igen.
-
MCGaiwer
addikt
válasz
FozzieBear #29207 üzenetére
úgy akarom, hogy az eredeti sheet is megmaradjon. és ha ebből csinálok sima inserttel, akkor szétbarmolja...
-
MCGaiwer
addikt
mivel erre a műveletre senki sem válalkozott, ezért kis tippet szeretnék kérni, hol találok olyan "how to"-t, ahol leírja, hogy kész excel sheetből (formulák, dropdownok, feltételes formázások stb) hogy csinálok olyan table verziót, amiből pedig már egyszerűen lehet pivot-ot csinálni?
-
Delila_1
veterán
válasz
irodakukac #29204 üzenetére
Nagyon szívesen.
A T oszlopot a
If Target.Column = 20 Then
sor figyeli, a 20 helyett annak az oszlopnak a számát írd be, amelyikre reagálnia kell az eseményvezérelt makrónak. A=1, B=2, .... T=20.
-
Delila_1
veterán
válasz
irodakukac #29201 üzenetére
A házipénztárban megmarad a rongyos régi (azt manuálisan kell törölnöd), a módosított bekerül az első üres sorba. Persze csak akkor, mikor a sorban a T oszlop adatát leenterezed a szerkesztőlécen.
Mindig csak az a sor kerül át a másik lapra, ahol a T oszlopba viszel be adatot.
-
irodakukac
csendes tag
válasz
Delila_1 #29200 üzenetére
Szuper!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
MŰKÖDIK!!! köszönöm szépen!!!!!Ezzel a programmal valószínű egy másik rég óta fenn álló problémámat is megoldottad!!!!
Mindjárt azt is kipróbálom.Kérdésem, hogy ha egy sor adata változik (pl. költséghely nem mindig megfelelő, és később jövünk rá és javíttatjuk), akkor ezek a korábbi sorok is változnak/ autómatikusan?
Vagy ha több dolog változik visszamenőleg, akkor inkább töröljem ki a házipénztár tartalmát?
Törlés esetén újra bekerülnek a sorok?
Új hozzászólás Aktív témák
Hirdetés
- Trollok komolyan
- Tőzsde és gazdaság
- Futás, futópályák
- Házimozi belépő szinten
- iPhone topik
- Spórolós topik
- Apple iPhone 16 Pro - rutinvizsga
- OFF TOPIC 44 - Te mondd, hogy offtopic, a te hangod mélyebb!
- Honor Magic6 Pro - kör közepén számok
- Hitelkártyák használata, hitelkártya visszatérítés
- További aktív témák...
- BESZÁMÍTÁS! MSI B450M R5 5500 16GB DDR4 512GB SSD RX 5700XT 8GB Rampage SHIVA Chieftec 600W
- BESZÁMÍTÁS! ASROCK H310CM i5 8400 16GB DDR4 240GB SSD 1TB HDD GTX 980 4GB Aio Corp Croma CM 600W
- Bomba ár! Lenovo ThinkPad T460 - i5-6GEN I 8GB I 256SSD I 14" FHD I Cam I W10 I Garancia!
- Országosan a legjobb BANKMENTES részletfizetési konstrukció! Lenovo ThinkPad X13 Gen 5
- BESZÁMÍTÁS! Samsung Galaxy A34 5G 128GB mobiltelefon garanciával hibátlan működéssel
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged