-
Fototrend
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
-
sztanozs
veterán
CTRL+lefele gombbal tudsz a kitöltött oszlop utolsó elemére lépni, ha folytonos a kitöltés.
Ha nem folytonos, akkor az üres mező előtti utolsó adatot tartalmazó mezőre lép (illetve utána a következő első adatot tartalmazóra és így tovább).
Valamint meg tudod tenni, hogy elrejted az összes nem használt sort és akkor nem görget tovább.JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
pero19910606
csendes tag
Sziasztok!
Szeretnék egy kis segítséget kérni körlevélhez hasonló dologban. Próbáltam így macro-s megoldást tálalni de nem sikerült.
Van egy adattáblám az alábbi adatokkal:
Cégnév
Azonosító
Értékelési szempontok:
-Szerződés hossza
- Készletszint.... stb...Van egy sablon amit kereső függvények segítségével feltoltok adatokkal az azonosító alapján.
Ha ez megtörtént le kellene mentem pdf-be és excelbe is -file név--> cégnév_azonosító
Egy "for" ciklussal lehetne ezt megoldani valahogy, nem ?
Beírja az azonosítót-> függvények behozzak a szükséges adatokat->mentés-> kezdődhet ellőről addig amíg egymás alatt felsorolt azonosítók el nem fogynak.
Van esetleg valakinek ötlete erre? Egy ideje foglalkozom már macro írással is, de ciklust sajnos még nem tudok írni.
Köszönöm előre is ha tudtok segíteni!
Üdv!
Pero -
Pakliman
tag
válasz pero19910606 #42157 üzenetére
Public Sub Kitölt()
Dim us As Long
Dim i As Long
Dim sNév As String
'Feltételezzük, hogy az adatok az "Adatok" munkalapon vannak...
With Worksheets("Adatok")
'Megkeressük az utolsó beírandó adat sorát
us = .Cells(.Rows.Count, "A").End(xlUp).Row
'feltételezzük, hogy az adatok a 2. sorban kezdődnek (1. a fejléc)
For i = 2 To us
If True Then 'Ha van valamilyen feltétele a kitöltésnek (pl.: csak a Lekvárzsibbasztó Gépgyár érdekel), akkor a True helyére azt írd be
'kitöltjük a "KÖRLEVELET" a megfelelő adatokkal... pl.:
Worksheets("KÖRLEVÉL").Cells(3, 5) = .Cells(i, 1)
'...stb
'...mentés...(cégnév_azonosító -> megfelelő helyekről összeállítva...)
sNév = "D:\cégnév_azonosító."
'PDF-ként...
Worksheets("KÖRLEVÉL").ExportAsFixedFormat Type:=xlTypePDF, Filename:=sNév & "pdf", OpenAfterPublish:=False
'...majd xlsm-ként...
Worksheets("KÖRLEVÉL").Copy
ActiveWorkbook.SaveAs Filename:=sNév & "xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
ActiveWorkbook.Close
End If
Next i
End With
End Sub -
Jarod1
addikt
Próbálok egy pár oszlopot rögzíteni, de valamiért nem a kijelölt oszlopok rögzülneK. Van valakinek ötlete miért?
-
Pakliman
tag
válasz Jarod1 #42159 üzenetére
1. Biztos, hogy az a cella az aktív, amelytől balra lévő oszlopokat és amely fölött lévő sorokat rögzíteni akarod?
2. Én VBA-ban találkoztam vele.
Ott is KIZÁRÓLAG egy bizonyos, programból létrehozott és kitöltött munkalappal csinálja (Office2016, a létrehozott munkafüzet 4 munkalapot tartalmaz kódból létrehozva!).
A kódot lépésenként végrehajtatva jó értékek vannak a "fagyasztásnál", mégis a P2 cella helyett az I15-öt zárolja.
Ez nem működik:.Cells(2, 16).Select
ActiveWindow.FreezePanes = TrueHelyette ezt használom:
With ActiveWindow
If .FreezePanes Then .FreezePanes = False
.SplitColumn = már_nem_mozgó_oszlop
.SplitRow = már_nem_mozgó_sor
.FreezePanes = True
End With -
bucihost
senior tag
Sziasztok!
Adott egy táblázat. B oszlopban cikkszámok, valamint adott egy mappa tele képekkel. "cikkszám.png" -k.
Megoldható valahogy, hogy az A oszlopba bekerüljenek a B oszlopban szereplő cikkszámok képei?
-
Delila_1
Topikgazda
válasz bucihost #42162 üzenetére
Ha a png fájlok neve megegyezik a cikkszámokéval, a
=HIPERHIVATKOZÁS("C:\Users\xy\Desktop\" & B1 & ".png";B1 )
képletet írd be egy üres oszlopba. Ezt másolhatod lefelé. Természetesen a saját útvonalad szerepeljen az idézőjelek között.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Lokids
addikt
Sziasztok!
Képletezési segítség kell.
Adott 6 mező dátumokkal.
mondjuk a1:a6A7-be szeretnék egy igaz, vagy hamis végeredményt.
A feltétel:
Tudni akarom, hogy van-e lejáró feladat. A mezők a feladat határideje, a módosított határidők.
Ha A6 <= mai nap+30 és nem üres, különben A5, ha az üres akkor A4 stb..
Hogy néz ki ez helyesen?If you chase two rabbits you will lose them both.
-
Aladaar
tag
Szia,
persze ha a már megoldott sorok üresek:
=+HA(MIN(A1:A6)-30<+MA();"igaz";"hamis")
ha nem töröljük a megoldottakat, és csak az utolsót kell nézni:
+HA(INDEX(A1:A6;DARAB(A1:A6);1)-30<+MA();"igaz";"hamis")[ Szerkesztve ]
-
bucihost
senior tag
válasz bucihost #42167 üzenetére
Találtam egy macrot, ami jó lenne. Viszont ha nem talál képet, akkor "lehal" a macro.
Mit kellene hozzá írni, hogy ha nem talál képet akkor tovább lépjen vagy egy általam definiált képet rakjon oda? (egy nagy piros X)Sub PlacePics()
Dim Path As String, Pics As Range, Pic As Range
Path = "C:\Users\branyiczkif\Desktop\AjanlatKepek\kepek\"
Set Pics = ActiveSheet.Range("B2:B20")
For Each Pic In Pics
Pic.Offset(0, -1).Select
ActiveSheet.Pictures.Insert(Path & Pic.Value & ".png").Select
Next Pic
End Sub -
Delila_1
Topikgazda
válasz bucihost #42170 üzenetére
Másik megoldás, hogy a "nagy piros x kép" ne növelje a fájl méretét.
A két, csillagokkal jelölt sor a kép méretét határozza meg. A 0.4-et írd át kedved szerint. Ki is hagyható ez a két sor.Sub PlacePics()
Dim Path As String, Pics As Range, Pic As Range
Path = "C:\Users\branyiczkif\Desktop\AjanlatKepek\kepek\"
Set Pics = ActiveSheet.Range("B2:B20")
For Each Pic In Pics
Pic.Offset(0, -1).Select
On Error Resume Next
ActiveSheet.Pictures.Insert(Path & Pic.Value & ".png").Select
Selection.ShapeRange.ScaleWidth 0.4, msoFalse, msoScaleFromTopLeft '***
Selection.ShapeRange.ScaleHeight 0.4, msoFalse, msoScaleFromTopLeft '***
If VarType(Selection.ShapeRange) = vbError Then
Pic.Offset(0, -1).Value = "X"
Pic.Offset(0, -1).Font.ColorIndex = 3
On Error GoTo 0
End If
Next Pic
End Sub
[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
ny.janos
tag
Szia!
Ha jól rémlik, akkor egyrészt SZUMHA függvénybe nem tudsz egyszerre két feltételt megadni ÉS függvénnyel. Erre a SZUMHATÖBB függvény való. Másrészt a feltételnél a relációjeleket időzőjelbe kell tenned, és nem kell szerepeljen benne a cellahivatkozás (D5).
=SZUMHATÖBB($K$5:$K$24;$D$5:$D$24;">="&DÁTUM(2019;5;1);$D$5:$D$24;"<="&DÁTUM(2019;5;31))
-
csiben1
tag
Sziasztok!
Adott lenne egy Excel munkafüzet amiben van több munkalap. Ugye ha módosítom a tartalmát és bezárom, a következő megnyitáskor azt a munkalapot jeleníti meg elsőnek, ahol a mentés történt.
Kérdésem az volna, hogy be lehet-e állítani, hogy függetlenül attól, hogy melyik munkalapon mentettem el, mindig az első lapot nyissa meg vagy egy adott nevűt.Előre is köszönöm a segítséget!
You can walk straight through hell with a smile
-
sztanozs
veterán
válasz csiben1 #42175 üzenetére
makróval beállítod megnyitáskor:
Private Sub Workbook_Open()
Sheet1.Activate
End SubJOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
őstag
Sziasztok.
Sajnos ismét elakadtam.
Szeretném kiíratni A oszlopba az adott excel fileban levő munkalapok nevét, a mellette levőbe pedig a munkalapon levő táblázatok neveit.
Eleve nem csinálja amit szeretnék, mert csak a munkalapok neveit teszi be A oszlopba, de felvetődik a kérdés mi van akkor, ha több tábla is van egy munkalapon?
Kérem aki tudja hol lövök mellé segítsen:
Sub proba_1()
Dim ws As Worksheet
Dim tbl As ListObject
Dim i As Single, x As Single
i = 1
x = 1
For Each ws In ThisWorkbook.Worksheets
Range("A1").Cells(x, 1) = ws.Name
x = x + 1
For Each tbl In ws.ListObjects
Range("A1").Cells(i, x + 1).Value = tbl.Name
i = i + 1
Next tbl
Next ws
End Sub
Köszönöm
[ Szerkesztve ]
-
Fferi50
őstag
válasz Richard #42179 üzenetére
Szia!
1. Az i és x változód ne Single legyen, hanem Integer vagy Long (ha sok munkalapod van).
2. A Range("A1").Cells(x,1) helyett használd nyugodtan a Cells(x,1) formát, ez a helyes.
3. A Cells(i,x+1) cella az i-edik sor x+1-edik oszlopban, tehát biztosan nem az x-edik sorban.
4. A For Each tbl ciklus pontosan a lehetséges több tábla miatt van.
5. Ha a táblák nevét az A oszlopba betett munkalapnév mellé a B,C stb oszlopban szeretnéd látni, akkor a Cells(x,i) cellába kell íratnod és i értéke 2-től induljon, továbbá minden táblás ciklus előtt 2-re kell állítanod az értékét, hogy ne írja felül az A oszlopban levő értéket.
Remélem, ez alapján már menni fog.
Üdv.[ Szerkesztve ]
-
őstag
válasz Fferi50 #42180 üzenetére
Így már értem és működik is, köszönöm!
Már csak azt kellene megoldani, hogy a munkalapok neve mellé azokat a táblákat tegye, amik az adott munkalapon vannak.
Erre nem jövök rá, mert a táblákból bármit ki bírok íratni a táblanév mellé, de a munkalap mellé az azt tartalmazó táblákat nem
-
Delila_1
Topikgazda
válasz Richard #42179 üzenetére
Sub Lap_Tabla()
Dim sor As Integer, CV, lap As Integer, oszlop As Integer
sor = 1
For lap = 1 To Worksheets.Count
With Sheets(1)
oszlop = 1
.Cells(sor, oszlop) = Sheets(lap).Name
For Each CV In Sheets(lap).ListObjects
oszlop = oszlop + 1
.Cells(sor, oszlop) = CV.Name
Next
End With
sor = sor + 1
Next
End Sub
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
őstag
válasz Delila_1 #42183 üzenetére
Köszönöm!
Így már látom mit hagytam ki
Addig jutottam, hogy kiírta a munkalapok mellé a táblát, de csak a B oszlopba 1-et. Ha több tábla volt azt nem folytatta C,D,E... oszlopokban.
(#42182) Fferi50 : El volt csúszva a táblanevek oszlop lefelé 1 cellával, mert a tábláknál nem volt x-1. Közben este erre rájöttem, köszi!
[ Szerkesztve ]
-
őstag
Olyan megoldás létezik erre
With Worksheets("munka1").ListObjects("tabla1").ListColumns(1).Range.Resize(, 82).Copy
End With
, hogy az oszlopok száma és annak kiterjesztése helyett meg lehessen adni a tábla fejlécében levő szöveget? Tehát, hogy ne az első 82 oszlopot jelölje ki a táblából, hanem mondjuk a megadott oszlopnévtől adott oszlopnévig bezárólag csinálja?
Vagy ide valami .Find megoldás dukál?
-
Fferi50
őstag
válasz Richard #42185 üzenetére
Szia!
Az oszlopoknál használhatod a neveket (ha ismered őket) az index szám helyett. Ha több oszlopot is szeretnél kijelölni, akkor az Union függvényt használhatod:With Worksheets("munka1").ListObjects("tabla1")
Union(.ListColumns(nev1).Range, .Listcolumns(nev2).Range, . Listcolumns(nev3).Range).Copy 'ahány oszlopot szeretnél kijelölni, annyit kell a függvényhez beírni.
End With
Üdv. -
őstag
válasz Fferi50 #42186 üzenetére
Köszönöm, ezt ismerem ( Te mutattad nemrég ). A probléma csak az, hogy nem szeretném 82 oszlop nevét beírni, főleg hogy max 30 érték lehet az Union-ban.
Ezért keresek olyan megoldást, hogy megnevezek két oszlopot és az elsőtől az utolsóig jelölje ki.
Már, ha egyáltalán ez megoldható?!
-
Fferi50
őstag
válasz Richard #42187 üzenetére
Szia!
A táblázatokban az a szép, hogy lehet velük szuperül dolgozni.
Pl.Range("Táblázat3[[#All],[Hozam]:[Hozam2]]").Copy
A Hozam és a Hozam2 közötti oszlopokat másolja egy lépésben.
A kettőspont jelenti azt, hogy ami közte van.
Érdemes megnézned a Táblázatok-hoz kapcsolódó Súgót. Ott vannak a műveleti lehetőségek.
(Nomeg néha a makrórögzítés is segít -- mint nekem most )
Ha a fejléceket nem szeretnéd másolni, akkor a #All helyett írd #Data.Üdv.
[ Szerkesztve ]
-
Petium001
csendes tag
Sziasztok!
Szeretném megkérdezni, megoldható e a következő feladat valamilyen módon:
Van egy lista, termékek kódjával, termékek súlyával, termékek beszerzési árával, súlyfüggő szállítási költséggel, súlyfüggő haszonkulccsal.
Hogyan lehet megoldani, hogy a végösszeg a változó súly és változó szállítási költség, valamint a haszonkulcs ( egy bizonyos súlyig %, afölött pedig fix), összege?
Köszönöm
Petium
-
Fferi50
őstag
válasz Petium001 #42191 üzenetére
Szia!
Az Fkeres függvény alkalmas rá, a 4. paramétert igaznak beállítva. Csinálsz egy táblázatot, ami a súly függvényében mutatja a szállítási költséget és a haszonkulcsot, figyelembe véve a határokat.
Pl. súly 0 szállítási ktg 10, súly 10 szállítási költség 5, súly 20 szállítási ktg 0
Első oszlop súly, második oszlop ktg. Az Fkeres a határt is beleértve az alatta levő értéket adja vissza.
Ugyanígy a haszonkulcsra is.
Üdv. -
ace05
senior tag
Üdv! Kapcsolat diagramot kell csinálnom. Tudom alakzatokkal és vonal rajzolással meg lehet csinálni. De olyat tud az excel, hogy tegyük fel van 5 ábra, azt nyilakkal összekötöm ahogy kapcsolódnak. Majd mikor mozgatom, akkor a nyilak is mozognak az ábrával, majd beállnak szépen az ábra új helyén ? A smartart-ban az egyszerű csillagdiagram jó lenne, de ott az a baj, hogy egy ábrához kapcsolódik a többi és nem lehet megszüntetni kapcsolatot kettő között.
-
ny.janos
tag
Miután leírtam a javaslatot, utána gondolkodtam még rajta pár percet, hogy milyen más (általam ismert) megoldásokat lehet érdemes számításba venni.
Ha az adathalmazod több hónapnyi / esetleg évnyi adatot is tartalmaz, akkor mindenképpen fontolóra venném egy kimutatás készítését, annál egyszerűbb megoldás nem igen van.
Ha pl. nem teljes havi (heti, félhavi stb.) összesítésre lenne szükséged, akkor ahhoz készethetsz egy táblázatot egymás mellé a kezdő és végdátumokkal. Ha feltesszük, hogy a kezdő dátumok az A oszlopban, az összegezni kívánt időszak végét jelölő dátumok pedig a B oszlopban vannak, akkor a korábban javasolt képlet használható az alábbi módon:
=SZUMHATÖBB($K$5:$K$20;$D$5:$D$20;">="&A2;$D$5:$D$20;"<="&B2)
A SZUMHATÖBB függvény helyett egyébként két tömb szorzataként is megkapható az eredmény, ha kihasználjuk a relációs vizsgálat azon tulajdonságát, hogy az "igaz" értéket 1-nek, a hamis értéket 0-nak értelmezi az excel, de ehhez pl. össze kell szorozni azokat, vagy két - (mínusz) jelet kell tenni eléjük. (Ezt a működést pl. itt a fórumon tanultam, köszönhetően Mutt egy korábbi hozzászólásának). Vagyis az eredmény megkapható így is:
=SZORZATÖSSZEG($K$5:$K$20*(DÁTUM(2019;5;1)<=$D$5:$D$20)*($D$5:$D$20<=DÁTUM(2019;5;31)))
vagy így=SZORZATÖSSZEG($K$5:$K$20;--(DÁTUM(2019;5;1)<=$D$5:$D$20);--($D$5:$D$20<=DÁTUM(2019;5;31)))
Ha tömbképletet használsz, akkor a SZUM függvény is használható a SZORZATÖSSZEG helyett, de akkor a képlet rögzítését követően a cellát Ctrl + Shift + Enter-rel kell lezárnod.
=SZUM($K$5:$K$20*(DÁTUM(2019;5;1)<=$D$5:$D$20)*($D$5:$D$20<=DÁTUM(2019;5;31)))
-
Fferi50
őstag
Szia!
Kijelölöd az összes ábrádat a nyilakkal együtt, jobb egérgomb - csoportosítás. Így "egy" ábrává '"olvad össze". Szétbontás ugyanígy a jobb egérgombbal.
Egy-egy alakzatot és nyilat elvileg lehet úgy mozgatni, hogy a nyíl "vándorol" az alakzatnak megfelelően (azaz nyúlik vagy zsugorodik is).
Üdv. -
Fferi50
őstag
válasz bucihost #42194 üzenetére
Szia!
Mit csinálna a fájl a másik helyen?
Ha a makróval szeretnéd a képeket másik helyen berakni, akkor természetesen nem fogja ott megtalálni azokat.
A beágyazott képeknek elvileg benne kellene lenniük a fájlban (ezért írta Delila, hogy az X kép helyett jelet tegyél a cellába), méret növekedés megmutatja ezt.
Ahhoz, hogy a képek megjelenjenek nem kell újra betölteni azokat.
Üdv. -
bucihost
senior tag
Új hozzászólás Aktív témák
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Rövid előzetesen a S.T.A.L.K.E.R. 2: Heart of Chornobyl
- Futás, futópályák
- Késik a következő S24 Ultra kamerafrissítés?
- A fociról könnyedén, egy baráti társaságban
- A Watch7-tel debütálhat a Samsung vércukormérője
- Politika
- Trollok komolyan
- EAFC 24
- Samsung Galaxy A54 - türelemjáték
- További aktív témák...
- Adobe Creative Cloud - 2024. 04. 05 - 2025. 04. 05-ig
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Microsoft licencek a KIVÉTELES ÁRAK - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Steames kulcsok jó áron eladóak!