- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- bitpork: Augusztus 2- szombat jelen állás szerint.
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- eBay-es kütyük kis pénzért
- Geri Bátyó: B550 szűk keresztmetszet, de mi és miért?
- Yutani: Yutani Retró Hangkártyái: AdMOS AdWave 32
- user2: Kia Ceed Gold 160 1.5 T-GDI MY2024
-
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
-
wednesday
őstag
Sziasztok!
Arra van valami lehetőség, ha képleteket(egy táblázatot) szeretnék új Excel lapra másolni, akkor ne hivatkozással együtt másolja be őket?
Importálok adatokat Excelbe. Elhelyezi őket a füleken, amikből majd keresni kell. Ezek az importált munkafüzetek mindig megegyeznek, így mindig ugyanazokat a képleteket lehet rájuk használni. Ezért lenne elég csupán egy képlet másolás és beillesztés (lap beszúrás az elejére és oda betenni a képleteket) De akármilyen trükköt vettettem be, mindig az előző Excel munkafüzetre hivatkozik és azokkal dolgozik.
Remélem érthetően mondtam.
-
Delila_1
veterán
2016-os verziónál van egy ilyen lehetőség:
Beírod a kérdéses oszlop melletti első cellába a szöveget a SZÁM NÉLKÜL, majd ezen a cellán állva
Kezdőlap | Szerkesztés csoport | Kitöltés | VillámkitöltésNézd meg ezt a nagyszerű videót, amit Kovalcsik Géza állított össze a villámkitöltéssel kapcsolatban.
-
Songo
senior tag
Sziasztok
Egy gyors kérdésem lenne
Hogy lehet egy számot és szöveget is tartalmazó cellából kinyerni csak a számot?
köszönöm szépen
-
Pakliman
tag
válasz
fricc_ #36592 üzenetére
D oszlop elrejtve, a
Debug.Print n
4-et ad visszaDim ws As Worksheet
Dim n As Integer
Dim cl As Range
For Each ws In ThisWorkbook.Worksheets
n = 0
For Each cl In .Rows(5).Columns
If cl.Hidden Then
n = cl.Column
Exit For
End If
Next cl
Debug.Print ws.Name & "->n=" & n
Next wsErre gondoltál?
-
Pakliman
tag
válasz
lenkei83 #36587 üzenetére
Akkor viszont:
Dim ws As Worksheet
Dim rCella As Range
Set ws = ActiveSheet
With ws
For Each rCella In .Range("I2:I" & .Range("A1").SpecialCells(xlCellTypeLastCell).Row)
rCella = "=sumifs('" & .Cells(rCella.Row, "F") & "'!$C:$C," & "'" & .Cells(rCella.Row, "F") & "'!$B:$B,$D2," & "'" & .Cells(rCella.Row, "F") & "'!$P:$P,$B2)"
Next rCella
End WithAzt ugye tudod, hogy a SpecialCells tud ám rafinált hibákat okozni?
Csak látszat, hogy az utolsó "használt" cella lesz az alapja a visszaadott koordinátának.
Ha az utolsó mentés (és/vagy újranyitás) előtt mondjuk a "XFD1048576" cellába (O2010-nél az utolsó cella) valaki írt valamit aztán TÖRÖLTE, akkor a SpecialCells(xlCellTypeLastCell) az a cella lesz!!Én ezeket használom az utolsó sor/oszlop meghatározására (a "hol" lehet egy munkalap, vagy akár egy terület is):
Public Function UtolsóSora(hol, Optional lColumn As Long = 1) As Long
Dim rng
Set rng = hol.Cells(hol.Cells.Rows.Count, lColumn)
If Not IsEmpty(rng) Then
UtolsóSora = rng.Row
Else
UtolsóSora = rng.End(xlUp).Row
End If
Set rng = Nothing
End Function
Public Function UtolsóOszlopa(hol, Optional lRow As Long = 1) As Long
Dim rng
Set rng = hol.Cells(lRow, hol.Cells.Columns.Count)
If Not IsEmpty(rng) Then
UtolsóOszlopa = rng.Row
Else
UtolsóOszlopa = rng.End(xlToLeft).Column
End If
Set rng = Nothing
End Function -
fricc_
tag
válasz
Fferi50 #36567 üzenetére
Köszönöm, az első megoldást értem és működik is.
A fix n=2 csak a debug miatt volt bent :-)
Viszont mivel nyitott vagyok minden újra, főleg amit nem ismerek, kipróbáltam a másik két megoldást is, de a programba beillesztve nem tudtam működésre bírni.
Talán az alábbi két megoldást ki kéne még egészíteni valamivel?
A te 2. javaslatod:
Dim cl As Range
For Each cl in Rows(5).Cells :if cl.EntireColumn.Hidden Then
n=cl.Column :Exit Forill. Pakliman megoldása:
For Each cl in Rows(5).Columns: If cl.Hidden Then
-
Heavyrain
őstag
Sziasztok, gyors segítségre lenne szükségem.
Milyen függvénnyel lehet 5-re kerekíteni, de mindig felfelé?
KEREKÍTÉS(szám/5;0)*5-el tudok 5-re kerekíteni, de a lényeg az, hogy 176-ot 180-re kerekítsen és ne 175-re valamint 51-et 55-re kerekítsen és ne 50-re.
Köszönöm! -
Pakliman
tag
válasz
lenkei83 #36585 üzenetére
Jelenlegi ismereteim szerint (remélem, lesz aki mutat valami jobbat) az INDIREKT nélkül csak úgy lehet megoldani, hogy a munkalap neve(ket)t fixen építed be a függvénybe. Így viszont "nincs értelme" az F oszlopnak, mivel nem is fogja onnan venni az értéket
Az INDIREKT valóban lassítja a dolgot, mivel volatile függvény, vagyis minden esetben újraszámol. -
Pakliman
tag
-
lenkei83
tag
Sziasztok!
Set Ioszlop = ws.Range("I2:I" & ws.Range("A1").SpecialCells(xlCellTypeLastCell).Row)
Ioszlop = "=sumifs('" & Range("F2") & "'!$C:$C," & "'" & Range("F2") & "'!$B:$B,$D2," & "'" & Range("F2") & "'!$P:$P,$B2)"Képlet szeretnék berakni a fent látható "Ioszlop" range-be. A szumhatöbbnél a Range("F2") ugye a szummázandó munkalap neve ami soronként meg van határozva az F oszlopban, na ezzel akadtam meg. Itt úgy kellene hivatkoznom, hogy az F2 változzon az adott sornak megfelelően, vagyis a harmadik sornál már F3-ból vegye az értéket, a negyediknél F4-ből stb... huuh kicsit bonyolult így leírni, de remélem érthető.
Mi erre a megoldás?
Üdv.:
P. -
Delila_1
veterán
válasz
hallgat #36579 üzenetére
Az Immediate ablakba (Ctrl+g-re bújik elő a VB szerkesztőben) írd be:
?activecell.interior.colorindex
Nekem van egy kis makróm a personalban (lásd a téma összefoglalót), amihez a gyorselérési eszköztárra kitettem egy ikont. Ez egy üzenetben megadja a háttér és a font színkódját, RGB-ben is.
Sub Szin_lekerdezes()
Dim Rh As Integer, Gh As Integer, Bh As Integer
Dim Rk As Integer, Gk As Integer, Bk As Integer
Dim hatter, karakter
hatter = Selection.Interior.Color
karakter = Selection.Font.Color
Rh = hatter Mod 256
Gh = (Int(hatter / 256)) Mod 256
Bh = Int(hatter / 256 ^ 2)
Rk = karakter Mod 256
Gk = (Int(karakter / 256)) Mod 256
Bk = Int(karakter / 256 ^ 2)
MsgBox "Háttér RGB: " & Rh & ", " & Gh & ", " & Bh & vbLf & _
"Karakter RGB: " & Rk & ", " & Gk & ", " & Bk & vbLf & vbLf & _
"Háttér színkód: " & Selection.Interior.ColorIndex & vbLf & _
"Karakter színkód: " & Selection.Font.ColorIndex
End Sub -
Delila_1
veterán
válasz
hallgat #36572 üzenetére
Jelöld ki a tartományt, majd futtasd az alábbi, modulba másolt makrót:
Sub NoPiros()
For Each CV In Selection
If CV.Interior.ColorIndex = 3 Then
Range(CV.Address).Delete shift:=xlToLeft
End If
Next
End SubAhol egymás mellett több piros hátterű cella is van, a második megmarad, újbóli futtatás rendbe teszi.
-
csferke
senior tag
Sziasztok!
Nem tudok rájönni, hogy hogyan könnyíthetném meg a képlet beírását.
Elkezdem beírni a képletet, lefelé nyil és kiválasztom a parancsszót amit szeretnék.
Most mit kell megnyomnom, hogy eljussak ide (ne kelljen végig bepötyögni a parancsszót) és folytatni lehessen a paraméterek megadását??köszi
-
Kobe
veterán
válasz
Fferi50 #36555 üzenetére
megoldottam közben, most már fut rendesen
Viszont olyan problémába ütköztem, hogy az egész makrót egy xlam add-inba mentettem VBA projektként. A makró csinál egy custom ribbot tabot ahova bevágja a parancsgombokat, és autoamtikusan ez indulna el, ha az addint elindítom
Azt hogy betöltse a custom ribbont, a ThisWorkbook on belül hviatkoztam meg
Private Sub Workbook_Open()
Call LoadCustRibbon
End SubPrivate Sub Workbook_BeforeClose(Cancel As Boolean)
Call ClearCustRibbon
End Subviszont az xlam-ban induláskor ugye nincs workbook, emiatt nem tölti be.Hogyan, vagy hol kellene másképp emghivatkozni, hogy mégis a ribbonra kerüljenek ?
-
hallgat
csendes tag
Sziasztok!
Makró segítségre lenne szükségem.
Van egy munkalap, amin random cellák piros háttérszínnel vannak ellátva.
(a szín a stílusok menüszalagban a "rossz" alapérték piros)Azt szeretném elérni, hogy a makró a munkalapon található összes piros háttérszínnel ellátott cellát törölje.
Tegye mindezt úgy, hogy a tötölt cellánál a mellette lévő cellákat balra tolja.
Excel 2010-ről beszélünk.
Előre is köszönöm a segítséget!!! -
Fferi50
Topikgazda
válasz
foregister #36570 üzenetére
Szia!
Darabteli, Index, Hol.van függvények használatával megoldható. A Hol.van függvénnyel kikeresed az oszlopokat amelyekben számolni kell a jellem kombinációk alapján.
Most nem vagyok gép közelben a pár napig. Ha nem sikerül megoldani, hét közepén visszatérhetünk rá.
Üdv. -
foregister
tag
válasz
Fferi50 #36550 üzenetére
Mindennapos szociológiai logikát ne keress mögötte, tekints a jellemre úgy, hogy megjeleníteni kívánt információ egy felületen, de ettől függetlenül, szeretnénk ebben a táblázatban azt is nyilvántartani, hogy hány féle vagy hány darab jellemet tudunk egy-egy adott tulajdonsággal rendelkező személynek megjeleníteni.
Induljunk ki a forrás első jellem sorából ("Jellem 1"):
- ez a jellem igaz lesz akkor is, ha 30-40 éves párkapcsolatban élő gyerekes férfiről (2. tábla 15. sora) beszélünk, akkor is ha 41-55 éves családos gyermektelen nőről (2. tábla 20. sora), de
- akkor már nem igaz a feltétel, ha 30-40 egyedülálló gyerekes férfiről van szó (2. tábla 11. sora) (hiszen az egyedülálló nincs jelölve).Ezt szeretném a második táblán kiszámolni, hogy hány darab, az 1. tábla első oszlopbán lévő jellem (vagy adat) tartozik hozzá.
Így sikerült picit tisztáznom?
-
Delila_1
veterán
válasz
Ghoosty #36545 üzenetére
NE képlettel, hanem makróval fűzd össze a cellákat, akkor már lehet formázni cellán belül is a karaktereket. A fájlnak is jót tesz, ha a sok képlet helyett értékek szerepelnek.
Sub Felkover()
Range("C1") = Range("A1") & " " & Range("B1")
Range("C1").Characters(Len(Range("A1")) + 2, Len(Range("B1"))).Font.Bold = True
End SubA 2. sor végzi a formázást. Az első paraméter – Len(Range("A1")) + 2 – adja meg, hányadik karaktertől legyen a C1 tartalma fékövér, a második – Len(Range("B1")) – pedig azt, hogy milyen hosszan.
Ciklusban is elvégezheted az összefűzést, és a formázást.
-
Fferi50
Topikgazda
válasz
fricc_ #36565 üzenetére
Szia!
"i= 1
n = 0
For i = 1 To 10
If Range("i5").EntireColumn.Hidden Then
n = i"A kiemelt sorral az a baj, hogy a Range("i5") az i oszlop 5. celláját nézi meg !!!.
Ha ciklussal mész akkor a Cells tulajdonságot kell használni:If Cells(5,i).EntireColumn.Hidden Then
Vagy:
Dim cl As Range
For Each cl in Rows(5).Cells :if cl.EntireColumn.Hidden Then
n=cl.Column :Exit For
Next
A kódod következő része pedig a D oszlopot rejtettnek találva az n értékét 2 -re állítja, legyen az bármennyi is az előző rész alapján.Üdv.
Ps. Légy szives, használd a Programkód gombot, ha makrót másolsz be.
-
fricc_
tag
válasz
Fferi50 #36542 üzenetére
Köszönöm, viszont kellene még egy kis segítség.
Amit írtál működik, viszont én úgy képzeltem el, hogy a példánál maradva végig kell vizsgálni a teljes 5-ös sort nincs-e elrejtve egy oszlop..
Ha elrejtem a D-s oszlopot akkor ez a makro i=10 n=2 vel fut le.
Azt gondoltam i=4-nél teljesül a feltétel, és n felveszi i értékét de mégsem.
Mit írtam rosszul?Dim i, n As Integer
i = 1
n = 0
For i = 1 To 10
If Range("i5").EntireColumn.Hidden Then
n = i
Exit For
End If
NextIf Range("D5").EntireColumn.Hidden Then
n = 2
End If
End Sub -
Pakliman
tag
válasz
Angerfis #36561 üzenetére
Én annak idején úgy oldottam meg a problémát, hogy a "...a(z) Ne09: kimeneten" szöveg alapján egy ciklussal szépen végigmentem a számokon. Megnéztem, hogy létezik-e az a nyomtató, ha nem, akkor Next.
Valami ilyesmi volt (vagyis pont ez):
Public Const Pr_Beo As String = "\\primon\SZK901"
Public Const Pr_S_Munkaügy As String = "\\primon\SUV204"
Public Const Pr_S_Diszp As String = "\\F90001295\HPLJ4200"
Public Const Pr_F_Diszp As String = "\\primon\FKA204"
Public Const Pr_H_Diszp As String = "\\primon\HCN205"
Public Function Nyomtató_Váltás(Optional mire As String = Pr_Beo) As Boolean
Dim sorszám As Long
Dim Hiba As Boolean
Err.Clear
Hiba = True
On Error Resume Next
For sorszám = 0 To 99
Application.ActivePrinter = mire & " a(z) Ne" & Format(sorszám, "00") & ": kimeneten"
If Err.Number = 0 Then
Hiba = False
Exit For
End If
Next sorszám
Nyomtató_Váltás = Hiba
Err.Clear
End Function -
Fferi50
Topikgazda
válasz
Angerfis #36561 üzenetére
Szia!
Szerintem annyi elég, ha beépíted konstansként a programodba a nyomtatót.
Pl:Const Anyomt="\\............\.............RICOH-Aficio-MPC4502-PCL-6 a(z) Ne09: kimeneten"
Const Bnyomt="\\............\.............RICOH-Aficio-MPC4502-PCL-6 a(z) Ne10: kimeneten"Ezt akár publikus konstansként is deklarálhatod, így másik modulból, másik makróból is elérhető, csak arra kell figyelned, hogy a hivatkozás: Modulnév.változónév.
A makróban pedig megnézed, hogy az aktív printer melyik. Lekérdezed az Application.ActivePrinter tulajdonságot, ha valamelyik a kettő közül, akkor nyomtatsz rá. Ha nem, akkor beállítod.
Üdv.
-
Fferi50
Topikgazda
válasz
szatocs1981 #36559 üzenetére
Szia!
A többszáz keresés paramétereit hol tárolod, hogyan jutsz hozzá?
Felveszed makrórögzítővel a Speciális keresést, aztán hozzáigazítod a követelményeidhez. Csak a keresési paramétert és a célterületet kell változtatni.
Szerintem ez elég jól automatizálható.Üdv.
-
Angerfis
csendes tag
válasz
Fferi50 #36543 üzenetére
Szia
Köszönöm a válaszod.Ha jól értem akkor ebben az esetben az alapértelmezett nyomtatót használná?
De a baj a következő hogy több nyomtató is van és minden képen ez a nyomtató kellene mert csak ez tud két oldalasan nyomtatni.Esetleg lenne valami ötleted hogy lehetne megírni a makrót?
Előre is köszönöm a válaszod. -
Fferi50
Topikgazda
válasz
szatocs1981 #36557 üzenetére
Szia!
Esetleg megnézheted az Adatok - Speciális menüpontot. Így több szempont alapján is szűrhetsz, lehet helyben is és másoltatni is az eredményt. Ha már van egy ilyen Excel eszköz, szerintem használni kellene.
Üdv.
-
Fferi50
Topikgazda
válasz
szatocs1981 #36553 üzenetére
Szia!
Hány oszlopban vannak az adataid? Csak ez a három oszlop van?
Mert ettől is függ a megoldási lehetőség.
Üdv.
-
Fferi50
Topikgazda
-
Pakliman
tag
válasz
szatocs1981 #36553 üzenetére
Egy lehetőség még, hogy segédoszlopban képlettel összefűzöd a cellákat (Pl.: =A2 & ":" & B2 & ":" & C2).
Ez után az FKERES-el tudsz keresgélni (Pl.: =FKERES("V2:4:P01";D:D;1;HAMIS)).
Makróval is működik.
Vagy:
Makróval "egyszerre" tudsz keresni az összes oszlopban a range.Find() és range.FindNext() metódusokkal.
Az első oszlopban keresed pl. a "V2"-t, találat esetén megnézed, hogy a 2. oszlopban 4 van-e, ha igen, akkor a 3. oszlopban "P01" van-e. Ha bármelyik kérdésre hamis a válasz, akkor FindNext...
Érdemes tanulmányozni ezeket (nem csak a Find miatt):
[www.ozgrid.com]
[Ron de Bruin oldala] -
szatocs1981
aktív tag
Sziasztok, excel táblában szeretnék egy sort megtalálni. Hogyan tudnám azt realizálni egy makróval, hogy teljes soronként keressen? Azaz azt szeretném elérni, hogy ha egy sorban az általam megadott stringek szerepelnek, akkor azt a makró megtalálja. Egy adott kombináció egy sorban csak egyszer fordulhat elő.
példa: azt a sort szereném megkeresni, amiben a V2, 4, P01 szerepel.
V1 1 P01
V1 4 P03
V2 1 P03
V2 4 P01Nem várok kész makrót, elkészitem magam. Ötleteket szeretnék, esteleg egy parancsot amit nem ismerek.
előre is köszönöm
Edit: eddig egyetlen öteletem, hogy oszloponként végigmegyek és találat esetén veszem a következő oszlopot, majd a következőt.....hátha van valami egyszerűbb megoldás...
-
Kobe
veterán
válasz
Fferi50 #36546 üzenetére
Az exit for - t kiveszem
Van egy kulon sor, a letoltes parancs utolso sora, ami el is nevezi rogton a friss munkalapot valami_a_46 ra
Csak a kovetkezo torles pont a frissen letoltott tabot torli minden mast nem, nekem pedig forditva kene - csak a friss, uj worksheet maradjon meg, minden mas kuka
-
Ghoosty
őstag
válasz
Fferi50 #36548 üzenetére
Az ötlet jó, csak a konkrét feladat nagyon megbonyolítja, mert változó karakterhosszok vannak és nem csak 3 celláról van szó. Majd megbeszélem vele, mit tud bevállalni, maradhat-e a képlet, vagy értékként átírható. Egyáltalán fontos-e ez annyira, hogy órákat töltsek a makróval.
Köszönöm.
-
Fferi50
Topikgazda
válasz
foregister #36547 üzenetére
Szia!
Egy kicsit zavaros ez a történet. Pl. Jellem1 kora 30-40 és 41-55, sőt féri is és nő is.
Nyilván 2 személyről van szó.
DE: honnan tudod, hogy melyikük 30-40, melyikük férfi, melyikük családos, melyiknek van gyereke --
ennek így szerintem abszolút nincs semmilyen értékelhető összesítési lehetősége.
Ezeket a személyeket (jellemeket) külön - külön soron kellett volna felvenni.
Ha úgy lenne, akkor Darabhatöbb függvénnyel, esetleg valamilyen tömbfüggvény kombinációval meg lehetne oldani.
Így szerintem értelme sincs az egésznek.
(De ezt természetesen tekintsd magánvéleménynek.)Üdv.
-
Fferi50
Topikgazda
válasz
Ghoosty #36545 üzenetére
Szia!
"Makrót tudok írni, hogy bizonyos cella bizonyos karaktereit átírja félkövérre, de függvényben nem működik"
Akkor azt a makrót hívd meg pl. a munkalap változás (Change) eseménykezelőjében. Miután összefűzték az értekeket, változik a cella értéke, a makró pedig félkövérré teszi a kívánt karaktereket.Üdv.
-
foregister
tag
Szeretnék segítséget kérni vlookup / countifs / index / match témakörben.
Van egy táblám, amiben jellemzőket soroltunk fel jelezve x-szel, hogy milyen emberi attitűdökre jellemző.
Van egy másik táblám, ahol az attitűdök ki vannak gyűjtve oszloponként és össze szeretnénk számolni, hogy hány jellemző jellemző az adott feltételek mellett.Itt a forrás:
Itt, hogy mit szeretnék kiszámolni pirossal karikázva:
Van ötletetek rá, mert nem tudom megoldani?
-
Fferi50
Topikgazda
Szia!
A Weeknaming = Format(Date, "ww") eredménye egy kétjegyű szám.
"ActiveSheet.Name = "Valami_A_" & Weeknaming" a neve pl. Valami_A_46 lenne,
csak azt törli ki ahol a WS neve Valami_A_Week 46 volt pl, a többit nem, mikor és hol kerül bele a munkalap nevébe a Week?
Mert nyilván azt a munkalapot aminek nem egyezik a neve a "Valami_A_" & Format(Date, "ww") eredményével (lásd fentebb), ki fogja törölni.
A másik probléma:
Egy törlés után emiatt a sor miatt:
Worksheets(i).Delete
Exit For
azonnal kilép a ciklusból.Ha azt szeretnéd, hogy végigmenjen minden munkalapon, akkor ezt a sort töröld ki.
Üdv.
-
Ghoosty
őstag
Az egyik kollégám kérte a segítségem. De ehhez kevés vagyok, vagy nem lehetséges.
A lényeg az, hogy össze kéne fűzni cellákat,( szöveg tartalmúakat,) úgy, hogy az egyik összefűzendő cella félkövér legyen, de a többi maradjon normál formátumú. A cellák tartalma abc, bcd, efg. A végeredmény meg így nézzen ki: abc bcd efg.
Erre az volt az ötletem, hogy írok egy függvényt, ami annyit csinál, hogy megváltoztatja a formátumot. Hát ez nem jött össze. Makrót tudok írni, hogy bizonyos cella bizonyos karaktereit átírja félkövérre, de függvényben nem működik.
-
Kobe
veterán
szaisztok
VBA kóddal lenne egy kis gondom.
Van egy sharepoint eltöltős makróm, és azt szeretném, ha az Excel fileban - tartalomtól, worksheetek számától stb függetlenül, a legvégén mindig cska az a 2 worksheet (2 riport) maradna, amit én töltök leEz egy heti riport, a worksheetek elnevezése a makró által a ehtek számával egyenlő
Weeknaming = Format(Date, "ww")
a letöltés előtt megvizsgálom, hogy a fileban van e már ilyen elnevezésű worksheet, ha igen, kitörlöm és az új letöltés újra létrheozza friss adatokkal:
For i = 1 To Worksheets.Count
If Worksheets(i).Name = "Valami_A_" & Weeknaming Then
worksheetexists = True
Application.DisplayAlerts = False
'Worksheets.Add
Worksheets("Valami_A_Week_" & Weeknaming).Delete
Exit For
End If
Next ijön a letöltés, ez utolsó lépésként létrehoz egy új worksheetet és a végén elnevezi a fenti logika szerint:
ActiveSheet.Name = "Valami_A_" & Weeknaming
+ a program legvégén még ráeresztek egy biztonsági ellenőrzést, végignézi az összes worksheetet a neve alapján és ahol a név nem a megadott dátumfomátum szerint megy, azt törölje ki:
For i = 1 To Worksheets.Count
If Worksheets(i).Name <> "Valami_A_" & Format(Date, "ww") Then
worksheetexists = True
Application.DisplayAlerts = False
Worksheets(i).Delete
Exit For
End If
Next iViszont a legutolsó része nem működik, valamiért ilyen Sheet1, Sheet10, stb nevű worksheeteket simán benne hagy. Illetve pont fordítva működik, csak azt törli ki ahol a WS neve Valami_A_Week 46 volt pl, a többit nem
Mit írtam el hozzá ?
-
Angerfis
csendes tag
Sziasztok
Az alábbi gonddal küzdök és nem tudok rá megoldást!Van egy hálózati nyomtató amit több helyről használnak. De a gond a következő hogy a kimenet változhat tehát nem biztos hogy mindig Ne09 lesz a kimenet hanem lehet Ne10 is. Azt hogy lehet neki megadni hogy az éppen aktuális kimenetet használja, hogy ne keljen mindig a macrot átírogatni?
Segítségeteket előre is köszönöm.
TisztelettelSub Nyomtatas()
Application.ActivePrinter = _
"\\............\.............RICOH-Aficio-MPC4502-PCL-6 a(z) Ne09: kimeneten"
ExecuteExcel4Macro _
"PRINT(1,,,1,,,,,,,,2,""\\\\............\.............RICOH-Aficio-MPC4502-PCL-6 a(z) Ne09: kimeneten"",,TRUE,,FALSE)"End Sub
-
fricc_
tag
Sziasztok!
Segítséget szeretnék kérni.
Egy ciklussal több munkalapot tartalmazó táblázat azonos sorában végzek cella műveleteket.
Az adott munkalapon lévő adatok különböző hosszúságú adatokkal vannak feltöltve, az adatsor végét az jelzi, hogy az utána következő pár oszlop el van rejtve ,majd jönnek egyéb adatok, de azok már nekem nem kellenek.A probléma amibe beletört a bicskám, hogy a ciklus addig fusson amíg a vizsgált cella nem rejtett.
Hogyan lehet ezt lekérdezni, illetve megvalósítani? (office 2003) -
Ghoosty
őstag
válasz
Pakliman #36537 üzenetére
Az is jó megoldás, hogy ha simán hivatkozod a
c2
-ben ab3
cellát. Kijelölöd aC2:C3
tartományt. Kimásolod, kijelölöd a megfelelő tartományt, majd beilleszted. Mivel ugyanúgy páros lesz a kijelölés, ezért mindenhova beilleszti a megfelelő képletet. Utána ha ki akarod törölni, csak rászűrsz az üres sorokra és kész is.Amúgy köszönöm, az CÍM függvényt nem ismertem, de most már igen. Meg az indirktbe beágyazása is tetszik.
-
Delila_1
veterán
válasz
ben800 #36530 üzenetére
Gyors kérdésre gyors válasz: nem. A szumhatöbb kritériumai ÉS kapcsolatban vannak egymással.
Felvehetsz egy új oszlopot, ahova VAGY-gyal beteszed a két feltételt, és értéket (0; 1) rendelsz hozzá, majd a szumhatöbb függvénnyel erre az oszlopra hivatkozol.
=ha(vagy(a1=1;a1=2);1;0)
-
ben800
aktív tag
Sziasztok !
Egy olyan gyors kérdésem volna hogy SZUMHATÖBB függvényben meg lehet-e adni valahogy hogy egyszerre 2 kritériumot is elfogadjon egy helyre ??Tehát valami olyasmire gondoltam hogy akkor adja össze a számokat ha VAGY jellemző 1 vagy jellemző 2 érvényes rá.
Vagy függvénnyel próbáltam és sajnos hibát írt ki rá.
-
user112
senior tag
Sziasztok!
Lenne valami automatizmus a szövegek ábra szerinti átmozgatására?
Köszönöm
-
Delila_1
veterán
válasz
glocker #36527 üzenetére
Sajnos az Excel alkotói túlságosan segítőkészek, ami sok galibát okoz. Például egy felsoroláshoz beírsz 1.1-et, mire azonnal átalakítja kérdés nélkül 01.jan-ra, mert arra tippel, hogy dátumot szerettél volna megadni.
Azért javasoltam a 0000#-os formátumot, mert bár megadod, hogy bizonyos cellák adatait szövegként értelmezze, ha az a fehérnemű van rajta, mégis számértékként rögzíti.
-
glocker
tag
válasz
Delila_1 #36525 üzenetére
Igen, azt szeretném, ha a kérdéses cellák FORMÁTUMA szöveg lenne...
(most megoldottam azzal, hogy txt-be kiexportáltam amit kellett, onnan pedig egy irányított beolvasást végeztem szövegből... amelynek során konkrétan megadtam, hogy a beolvasandó oszlopok "értelmezése" Automatikus helyett legyen TEXT)
de azt szeretném, ha az EXCEL soha nem értelmezné (formázná) magától a szövegnek látszó text-eket számként... majd én megmondom, hogy mi a szám... ha arra kerül sor... nálam sokkal gyakoribb, hogy ez a "segítség" csak zavar...
-
glocker
tag
Sziasztok!
előre bocs, ha már volt ilyen kérdés...
Szeretném ha az excel nem kezelné számokként azokat a szövegeket amelyek számnak látszanak (számként is értelmezhetők)
Pl.
szeretném ha ez '00123' ez is maradna, és nem változtatná át 123-nak...hol kell ezt kikapcsolni / beállítani?
előre is kösz!
-
Peetey91
senior tag
Sziasztok!
Az alábbi problémával kapcsolatban lenne szükségem segítségre, berakok egy képet, talán könnyebb elmagyaráznom:
Van két táblázat, az első kitöltött, a második nem. Soronként összetartoznak, tehát A=igaz, C=hamis, stb. A második táblázatban lenne szükségem az értékeikre, viszont az ABCD azonosító sorrendje különböző. Tehát valami olyasmi kéne, hogy kikeresse a "D" oszlop tartalmát, ezt megkeresse az "A" oszlopban, majd a rá vonatkozó "B" oszlop adatát az "E" oszlopban kiírja. (Arra is van esély, hogy a 2. táblázatban van egy pl. G betű, aminek nincs párja az 1. táblázatban, de ez már csak hab a tortán)
Remélem nagyjából érthető, elég nagy listával kéne dolgoznom, nagyon kéne rá egy függvény, mert kb sosem végeznék.
Köszönöm előre is! -
Fferi50
Topikgazda
Szia!
Egyrészt a deklarációkat szerintem tedd a függvény elejére. Jobban áttekinthető.
Másrészt írd be az Option Explicit kapcsolót a modul elejére. Ebben az esetben a következő hibát nem tudod elkövetni:
" Dim Z As String
ZNr = Munka2.Cells(Cllr.Row, 2).Text
If Z <> "" Then"Azért jönnek a hibák, mert egy érték nélküli változót használsz később.
Üdv.
-
bsh
addikt
válasz
Fferi50 #36510 üzenetére
helló,
sajnos még mindig csak részben működik ez a függvény. így néz most ki:Public Function KKERES() As Double
KKERES = 0
If TypeOf Application.Caller Is Range Then
Dim Cllr As Range
Set Cllr = Application.Caller
Dim Z As String
ZNr = Munka2.Cells(Cllr.Row, 2).Text
If Z <> "" Then
Dim X As Variant, Y As Variant
X = Application.Match(Z, Munka3.Range("B:B"), 0)
If IsError(X) Then
Y = Application.Match(Z, Munka4.Range("B:B"), 0)
If IsError(Y) Then Y = Application.Match(Z, Munka4.Range("C:C"), 0)
If IsError(Y) Then
KKERES = 0
Exit Function
Else
If Cllr.Column = 5 Then
KKERES = Munka4.Cells(Y, 5).Value
Exit Function
End If
If Cllr.Column = 6 Then
KKERES = Munka4.Cells(Y, 6).Value
Exit Function
End If
End If
Else
If Cllr.Column = 5 Then
KKERES = Munka3.Cells(X, 5).Value
Exit Function
End If
If Cllr.Column = 6 Then
KKERES = Munka3.Cells(X, 6).Value
Exit Function
End If
End If
End If
End If
End Function
az én gépemen (office 2013) látszólag működik, de teszteltem egy office2016-os gépen, és ott sok cellára #ÉRTÉK-et ad vissza meg hibát dob a VB. megnéztem egy office2010-es gépen is, ott is jól működik.
lehet valami O2016-nál ami máshogyan működik mint a korábbi verzióknál?(sajnos most nincs szabad o2016 gép debuggolni.)
-
Fferi50
Topikgazda
válasz
Slowman #36502 üzenetére
Szia!
Egy javaslatot feltettem IDE, szerintem használható.
Sajnos csak úgy lehet megoldani, hogy egy másik diagramra bevisszük a célértékeket, majd a 2 diagramot egymásra tesszük.A célokat tartalmazó diagram típusa dobozos ábra (nem tudom, milyen verziód van, lehet nincs benne ilyen lehetőség, akkor sajnos nem fog menni).
Az összes területet átlátszóvá kell tenni és ezt tesszük felülre.
Az illesztést úgy tudod megoldani könnyen, ha az eredeti diagramot lemásolod és a másolatban módosítod az adatokat és a diagramtípust. Az egyes sorozatok színbeállítását is módosítani kell ().
Üdv.
-
-
Fferi50
Topikgazda
Szia!
Egyrészt talán nem szerencsés, hogy egy VBA névvel (Caller) jelölöd a saját változódat. Ez okozhat problémákat. Bár valószínűleg itt nem ez az elsődleges probléma.
Ahogyan már az előttem szóló is írta, a
Caller.Application.Worksheetfunction.Match helyett írj csak
Application.Match kifejezést.
Ennek az előnye az, hogy nem kell külön hibakezelési eljárást írni a makróba, mert nem idéz elő hibát.
Viszont a változót Variant-nak kell deklarálni és mindig meg kell vizsgálni, hogy a művelet eredményeként nem hiba lett-e a változó értéke.Ezt próbáld meg:
Public Function KKERES() As Double
Dim X As Variant, Y As Variant
KKERES = 0
If TypeOf Application.Caller Is Range Then
Dim Caller As Range
Set Caller = Application.Caller
Dim Z As String
Z = Munka2.Cells(Caller.Row, 2).Text
If Z <> "" Then
X = Application.Match(Z, Munka3.Range("B:B"), 0)
If IsError(X) Then
Y = Application.Match(Z, Munka4.Range("B:B"), 0)
If IsError(Y) Then Y = Application.Match(Z, Munka4.Range("C:C"), 0)
If IsError(Y) Then
KKERES = 0
Exit Function
Else
If Caller.Column = 5 Then
KKERES = Munka4.Cells(Y, 5).Value
Exit Function
End If
If Caller.Column = 6 Then
KKERES = Munka4.Cells(Y, 6).Value
Exit Function
End If
End If
Else
If Caller.Column = 5 Then
KKERES = Munka3.Cells(X, 5).Value
Exit Function
End If
If Caller.Column = 6 Then
KKERES = Munka3.Cells(X, 6).Value
Exit Function
End If
End If
End If
End If
End FunctionÜdv.
-
Pakliman
tag
Hali!
Bár életemben nem használtam még az
Application.Caller
cuccot, de szinte biztosan hibás azX = Caller.Application.WorksheetFunction.Match
.
Szerintem próbáld így:Application.WorksheetFunction.Match(...)
, vagyApplication.Match(...)
. Én az utóbbit használom.A kettő csak a "találatmentesség" esetén tér el.
Az előbbi azOn Error ...
"hibakezelővel", az utóbbi azIsError(...)
függvénnyel kezelhető. -
bsh
addikt
Üdv.
Próbálnék egy olyat megoldani, hogy egy bazihosszú képlet helyett egy rövidebb saját függvényt használni, ami ugyanazt csinálná. Így még pár extra egyszerűsítést is bele tudnék mókolni.
Application.Caller-rel megpróbálnám kiolvasni, hogy hányadik sorból hívódik a képlet (így nem kéne megadni paraméternek semmit)
De random módon olyan hibákat csinál, hogy pl. azt mondja, hogy "Application.WorksheetFunction osztály Match tulajdonsága nem érhető el" (miközben watch szerint elérhető) meg ilyenek...
Ez az Application.Caller-t nem ismerem, gondolom ezzel kell valamit trükközni? Mert magában a funkcióm az működik.Public Function KKERES() As Double
KKERES = 0
If TypeOf Application.Caller Is Range Then
Dim Caller As Range
Set Caller = Application.Caller
Dim Z As String
Z = Munka2.Cells(Caller.Row, 2).Text
If Z <> "" Then
On Error GoTo notfound
X = Caller.Application.WorksheetFunction.Match(Z, Munka3.Range("B:B"), 0)
If IsError(X) Then
Y = Caller.Application.WorksheetFunction.Match(Z, Munka4.Range("B:B"), 0)
If IsError(Y) Then Y = Caller.Application.WorksheetFunction.Match(Z, Munka4.Range("C:C"), 0)
If IsError(Y) Then
On Error GoTo 0
KKERES = 0
Exit Function
Else
On Error GoTo 0
If Caller.Column = 5 Then
KKERES = Munka4.Cells(Y, 5).Value
Exit Function
End If
If Caller.Column = 6 Then
KKERES = Munka4.Cells(Y, 6).Value
Exit Function
End If
End If
Else
On Error GoTo 0
If Caller.Column = 5 Then
KKERES = Munka3.Cells(X, 5).Value
Exit Function
End If
If Caller.Column = 6 Then
KKERES = Munka3.Cells(X, 6).Value
Exit Function
End If
End If
End If
End If
notfound:
End Function -
Fferi50
Topikgazda
válasz
ztibor #36503 üzenetére
Szia!
A feltételes formázási szabályt kiterjesztheted a további sorokra, nem kell hozzá új szabályokat írni:
Kijelölöd az A3:G3 cellákat - másolás -kijelölöd az A4:G1500 cellákat - irányított beillesztés - formázás és máris kész.
Vagy:
Kezdőlap - feltételes formázás - szabályok kezelése - ez a munkalap - az A3:G3-ra vonatkozó szabály érvényesség mezőjébe beírod: $A3:$G1500 - ok.Üdv.
-
EmberXY
veterán
Sziasztok!
Egy összetett problémát szeretnék megoldani, ehhez kérnék segítséget. Excel 2016-ban dolgozom, egy táblázat egyik oszlopának celláihoz hivatkozásként 1-1 pdf fájl van rendelve. A problémám első fele az, hogy miként tudnám valahogy hordozhatóvá tenni a hivatkozások működését (ugyebár egy mappában vannak a hivatkozott fájlok, de ha a mappa helye változik, már nem működnek), hogy akár tömörítve küldeni tudjam a táblázatot a hozzá tartozó fájlokkal, és az másutt is működjön?A problémám második része, hogy ezekben a pdf fájlokban szerepelnek olyan adatok, amelyek a táblázatban nem, viszont szükség lenne rájuk, a pdf fájlok felépítése ugyanolyan, kategorizálva vannak bennük az adatok, valahogy el lehet azt érni, hogy egy bizonyos kategória adatait kiemeljem? Például egy bizonyos megnevezés melletti számadatot vennék ki egy a hivatkozás melletti cellába, ezt meg lehet valahogyan oldani? A cél az lenne, hogy ne kelljen feltétlenül megnyitni a pdf-et, ha az adott adat szerint akarok rangsorolni.
Köszönöm előre is, ha van valakinek ötlete. -
ztibor
senior tag
Sziasztok!
Kis segítség kellene.
Azt szeretném elérni hogy ha mondjuk a H3-as cellába mondjuk 1-et írok, akkor az előtte lévő cellák (a3:g3) sárgák legyenek. Ezt sikerült is megvalósítanom a feltételes formázással (=H3="1" képlettel a sort kijelölve).
A problémám itt kezdődik.
Ezt kb 100 sorral szeretném megtenni, azaz ha a H oszlop adott sorába írok egy 1-est, akkor az előtte lévő sor sárga legyen.
Ezt már nem tudtam sehogy megvalósítani csak ha soronkénti kijelöléssel megcsinálnám a feltételes formázást.
Lehetséges, vagy egyenként kéne megformáznom a sorokat?Remélem érthetően írtam le
Előre is köszi a segítséget. -
Slowman
aktív tag
Sziasztok,
korábban már kérdeztem ezzel a problémával kapcsolatban (#36371), de azóta sem tudtam megoldani (nem nagyon értettem a tippet
). Újramelegítette a főnök a témát.
A feladat az, hogy különböző részlegek fogyasztását kimutassuk egy diagramba, viszont minden részleg más célt kapott. A célokat kombinálva vonal és oszlopdiagrammal kell megjeleníteni. Eddig számomra csak az a verzió ismert (jobb klikk → más diagramtípus → vonal stb.) viszont ebben az esetben egy folytonos vonaldiagram jelenik meg nekem meg úgy kéne ahogy a képen van de ezt ugye beszúrt vonalalakzatokkal oldottam meg manuálisan. Feltettem Drive-ra az excel egy részét (több diagramm van de ha egynél valaki megoldja esetleg abból már jobban látom mi történt) De ha egyszerűen leírható és ezt megteszi valaki az is jóElőre is köszönöm!
Új hozzászólás Aktív témák
Hirdetés
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Eladó steam/ubisoft/EA/stb. kulcsok Bank/Revolut/Wise (EUR, USD, crypto OK)
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Eladó Steam kulcsok kedvező áron!
- Vírusirtó, Antivirus, VPN kulcsok
- BESZÁMÍTÁS! ASUS ROG STRIX Z390-E GAMING alaplap garanciával hibátlan működéssel
- iKing.Hu - Xiaomi 14 Ultra - Ultra White - Használt, karcmentes
- LG 55G3 - 55" OLED evo - 4K 120Hz 0.1ms - MLA - 2000 Nits - NVIDIA G-Sync - AMD FreeSync - HDMI 2.1
- BESZÁMÍTÁS! ASUS ROG Zephyrus GA403UV Gamer notebook - R9 8945HS 16GB RAM 1TB SSD RTX 4060 8GB WIN11
- Lenovo ThinkPad X13 G2 multitouch
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest