-
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
-
Delila_1
Topikgazda
válasz Fferi50 #42198 üzenetére
"A beágyazott képeknek elvileg benne kellene lenniük a fájlban", de valóban nincsenek benne.
A feltöltött fájlt elküldtem valakinek, akinél nem jelentek meg a képek. Nem tudom az okát.
A fájl mérete is gyanúsan kicsi, 4 képpel 17 KB.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
-
Fferi50
őstag
válasz bucihost #42199 üzenetére
Szia!
Sajnos MS úgy intézte, hogy a felvett makró ne legyen az igazi. Ma már másként kell a képeket beilleszteni...
Ezt ókumuláltuk ki Delilával:Sub PlacePics()
Dim Path As String, Pics As Range, Pic As Range, pc As Object
On Error Resume Next
Path = "C:\Users\branyiczkif\Desktop\AjanlatKepek\kepek\"
Set Pics = ActiveSheet.Range("B2:B20")
For Each Pic In Pics
Pic.Offset(0, -1).Select
ActiveSheet.Shapes.AddPicture Filename:=Path & Pic.Value & ".png", linktofile:=msoFalse, saveWithdocument:=msoTrue, Left:=Pic.Offset(0, -1).Left, Top:=Pic.Top, Width:=50, Height:=60
If Pic.Value = "" Or Err <> 0 Then
Pic.Offset(0, -1).Value = "X"
Pic.Offset(0, -1).Font.ColorIndex = 3
Else
Pic.RowHeight = 60
End If
Next
Cells(1).Select
End Sub
Üdv.
-
Delila_1
Topikgazda
válasz Fferi50 #42205 üzenetére
Egy keveset módosítottam, mert X-et tett oda is, ahova nem kellett volna, no meg a kérdezőnek .png képei vannak.
For Each Pic In Pics
Pic.Offset(0, -1).Select
On Error Resume Next
ActiveSheet.Shapes.AddPicture Filename:=Path & Pic.Value & ".png", linktofile:=msoFalse, saveWithdocument:=msoTrue, Left:=Pic.Offset(0, -1).Left + 5, Top:=Pic.Top, Width:=50, Height:=60
If Pic.Value = "" Or Err <> 0 Then
Pic.Offset(0, -1).Value = "X"
Pic.Offset(0, -1).Font.ColorIndex = 3
On Error GoTo 0
Else
Pic.RowHeight = 60
End If
Next
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
huan
őstag
Sziasztok!
Segítséget szeretnék kérni az alábbi feladat megoldásában.
Vannak oszlopok cikkszámmal, névvel, ezek termékek lennének. Az a1 és a2 egy termékhez tartozna, a b1 és b2 egy másikhoz...stb.
A termékeknek vannak azonos darabjai, de vannak külömbözőek. A példában a b1,b2-jelölésű termék 5 darabbal több alkatrésze van, míg a c1,c2-jelölésűnek további 3 darabbal, összesen 8-cal több alkatrésze az a1,a2-höz képest.
Az oszlopok nincsenek sorba rendezve, alapból csak a oszlopok hosszából látni, hogy több alkatrészből állnak.
Amit szeretnék megoldani:
Az oszlopok azonos elemei egymás mellé kerüljenek (nem szükséges sorbarendezve nővekvően pl.), így a külömbözőek legalulra kerülnek és pontosan látni miben külömböznek az oszlopok.
Köszönöm!
(B-G az eredmény amit szeretnék; K-P a rendezetlen példa)
>minta<[ Szerkesztve ]
-
Zsolt_16
tag
Szaisztok,
Adott egy win 10 1909
Office pro plus 2016 (16.0.4849.1)
Excelben olyat tapasztalunk, hogy egy ~5000 soros táblában szeretnénk szűrni egy olyan oszlopban ahol lényegében m1 milyen érték van (szöveg, dátum szám) a szűrő opciónál az értékek elkezd villogni.(melléklet zöldel karikázott rész) Az a furcsa, hogy nem folyamatosan csinálja csak mikor gondol egyet.
Valaki találkozott ilyennel? Eddig ilyen hibát nem tapasztaltunk.
Köszönöm előre is![ Szerkesztve ]
-
őstag
Sziasztok,
azt hogy oldom meg, ha van egy táblám amire autofiltert tettem és a filter nem hoz vissza adatot akkor lépjen tovább?!
Forrastabla.Worksheets("Munka1").ListObjects("adatforras").Range.AutoFilter Field:=6, Criteria1:="kritérium1"
VisibleCellsCount = Forrastabla.Worksheets("Munka1").ListObjects("adatforras").Range.Cells.SpecialCells(xlCellTypeVisible).Count
If VisibleCellsCount > 1 Then........
és ekkor végezné el amit akarok.
Ha kisebb mint 1 akkor pedig menjen tovább.
Jelen esetben a teljes databodyrange-et átmásolja, ha a filter nem listáz semmit a táblázatba.
Hol nézem be? A headerben is számol? DataBodyRange nem működik a Range helyett, mert akkor leáll overflow-al a program.
Előre is köszönöm
[ Szerkesztve ]
-
Delila_1
Topikgazda
válasz Richard #42211 üzenetére
if range("F" & rows.count).end(xlup).row>1 then
van szűrt adat
else
nincs
endif
Látod, próba nélkül küldtem. Ha a címsor nem az első, akkor az 1 helyett
azt tedd a feltételbe.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
Szia!
Pár lépés feltételes formázással és szín szerinti rendezéssel elérhető szerintem a kívánt eredmény.
1. lépés:
Kijelölöd a teljes táblázatot - kezdőlap - feltételes formázás - cellakijelölési szabályok - ismétlődő értékek - válaszd az egyedit, mindegy milyen színű lesz. OK.
2. lépés a két utolsó oszlopot, ahol a színek vannak, kijelölöd. Adatok - rendezés - E oszlop szín szerint - nincs cellaszín felül OK.
3.Kijelölöd az A-D oszlopot. Utána feltételes formázás mint az 1. lépésben
4.Kijelölöd a C-D oszlopot. Rendezés mint a 2. lépésben.
Ekkor már tkp. látod, hogy mi az egyedi.
5.Kijelölöd az E-F oszlop "fehér celláit", a színeseket nem!. Feltételes formázás - új szabály - a formázandó cellák kijelölése képlettel: A képlet:=DARABTELI($A$1:$D$20;$F1)>=2
Kijelölsz hozzá egy formátumot. OK
6.A kijelölt területet (E-F oszlop) rendezed szín szerint, de most a színes legyen felül.
Eredmény:
Ezután megszünteted a feltételes formázást, hisz már nincs rá szükség.
A "kilógó" tételeket úgy színezed, ahogyan akarod.
Remélem érthető.
Üdv. -
ace05
senior tag
Van egy csomó ilyen dátumom Pl: 11 18 2019 Ezt hogy tudnám átalakítani 11/18/2019 formátumra ? Ez azért kellene, hogy fel lehessen importálni Google Calendarba. A cella formázás/szám/egyéni beírtam, hogy így szeretném hh/nn/éééé de nem csinál semmit. Mit rontottam el?
-
Fferi50
őstag
-
ny.janos
tag
Szia!
Az valós, hogy egy cikkszám több terméket is takarhat, illetve hogy egy-egy termékhez ugyanaz a termék többször is fel van sorolva?
Az oszlopokban páronként (a1-a2, b1-b2, c1-c2) ugyanúgy háromszor szerepel a 1292092-00 banán, kétszer a 2075637-00 avokádó, a répa cikkszáma pedig azonos a banánéval (1292092-00).
-
őstag
válasz Fferi50 #42212 üzenetére
Ha szűrt táblában a ListColumns(1).DataBodyRange.Copy parancsot kiadom akkor minden esetben csak a szűrt eredményt másolja?
Mert, ha a szűrés nem hoz eredményt (azaz csak fejléc van),és akkor adom ki DataBodyRange.Delete parancsot és a szűrés által rejtett részt is kitörli, azaz mindent. (rá kell szűrnöm bizonyos értékekre, amik nem kellenek a táblázatba és így törlöm ki, de nem mindig szerepel a táblában.)
Nem teljesen értem miért van ez.
Ha pedig meg akarom adni a látható cellákat akkor nem működik a databodyrange-es hivatkozás, csak a range ?!
[ Szerkesztve ]
-
ny.janos
tag
Mivel nem tudom, hogy a valós feladatban hány terméked van, aminek az alkatrészeinek az "átfedését" látni szeretnéd, próbáltam olyan megoldásban gondolkodni, ami több 10 (vagy még több) termék esetén is működhet, de a feladatnak csak egy részére sikerült viszonylag könnyen használható megoldást találnom.
A gondolatom az volt, hogy első lépésben az összes előforduló cikkszámot és hozzá tartozó nevet egymás alá teszem 2 oszlopba, majd eltávolítom az ismétléseket. (Ennek az időigénye mondjuk 100 termék esetén már igen jelentős lenne kézzel, makróhoz viszont nem értek. Képlettel pedig nem tudtam megoldani.)
Második lépésben azt kerestem meg, hogy az adott alkatrész szerepel-e az adott termék alkatrészlistájában. Ezt követően a sorbarendezés már tetszőleges.C2 cella képlete:
=HA(DARABTELI(K$2:K$23;$A2)>0;$A2;"")
D2 cella képlete:
=HAHIBA(FKERES(C2;$A$2:$B$20;2;0);"")
-
Fferi50
őstag
válasz Richard #42223 üzenetére
Szia!
Ha van a szűrésnek eredménye, akkor csak a szűrt értékeket másolja a DataBodyRange.Copy.
A DataBodyRange az a fejléc és összesítősor nélküli tartományt jelenti. Ha nincs a szűrésnek eredménye, akkor ennek nincs látható része, tehát a SpecialCells(xlCelltypeVisible) hibával tér vissza és ezt a hibaüzenetet az Application.DisplayAlert paranccsal sem tudod elnyomni, csak a megelőző On Error Resume Next utasítással ellenőrizheted, hogy hiba keletkezett-e .
On Error Resume Next
ListObjects(1).DataBodyRange.SpecialCells(xlCellTypeVisible).Copy
If Err<>0 Then Msgbox "Nincs mit másolni"
On Error Goto 0
Viszont így a teljes tartomány egyben marad, ezért a sima DataBodyRange.Copy másolja az egészet. (Lehet, hogy ez bug, mert ilyenkor hibát kellene logikusan adni, ezt igazából Redmond tudhatja, miért nem így van.)
A szűrés eredményét a táblázat teljes tartományának vizsgálatával is tudod ellenőrizni.
pl. így, ekkor nem kell hibakezelés bele:ListObjects(1).Range.SpecialCells(xlCellTypeVisible).Rows.Count
Üdv. -
pentium4
senior tag
Sziasztok,
A következőt szeretném megoldani:
Adott egy cella, amiben van egy egész szám, ennek a számnak ha az utolsó számjegye pl 5-s akkor azt meg szeretném szorozni pl 2 vel, ha 4 es akkor 1,5 el, ha 3-as akkor 1,2 vel.
Ezt hogy tudnám megoldani?
KöszönömP4
-
PeLa87
aktív tag
Sziasztok!
Van egy táblázatom abban egy fő lapom és van 12 lap a hónapok neveivel. Mindegyik hónapban vannak nevek, születési dátummal és, hogy hány éves.
Az lenne e kérdésem, hogy a főlapom, meg lehetne valahogy jeleníteni, hogy azon a napon van-e valakinek születésnapja? Ha lehetséges akkor makró használata nélkül? Ha túl bonyolult akkor nem kell, nem szeretnék fárasztani senkit vele.Megbízható és olcsó tárhely: https://cweb.hu/ugyfeladmin/aff.php?aff=99
-
Pakliman
tag
Szia!
(Egyféle) megoldás kis kiegészítéssel és makróval:
(Ez a kép már a makró általi lista, a színezés az eredeti)
Minden csoport ki lett egészítve egy új oszloppal, ami azért kell, mert egy tétel többször is szerepelhet és valahogy muszáj megkülönböztetni
P oszlopban:=DARABTELI($O$2:O2;O2)
S oszlopban:=DARABTELI($R$2:R2;R2)
V oszlopban:=DARABTELI($U$2:U2;U2)
FONTOS!!!! Figyelj a dollárjelre!!!!
(Beírod pl. a P2 cellába és "lehúzod" P16-ig)A kód:
Public Sub Rendez()
Dim o As Long
Dim s0 As Long
Dim s As Long
Dim us As Long
Dim us2 As Long
Dim bVan As Boolean
For o = 14 To 20 Step 3
us = Columns(o).Rows(Rows.Count).End(xlUp).Row
For s = 2 To us
If o = 14 Then
'1. oszlopcsoport, csak másolunk...
Cells(s, o - 12) = Cells(s, o)
Cells(s, o - 11) = Cells(s, o + 1)
Cells(s, o - 10) = Cells(s, o + 2)
Else
us2 = Columns(o - 15).Rows(Rows.Count).End(xlUp).Row
For s0 = 2 To us2
bVan = (Cells(s0, o - 15) = Cells(s, o)) And (Cells(s0, o - 14) = Cells(s, o + 1)) And (Cells(s0, o - 13) = Cells(s, o + 2))
If bVan Then Exit For
Next s0
If bVan Then
us2 = s0
Else
us2 = Application.Max(Columns(o - 12).Rows(Rows.Count).End(xlUp).Row, Columns(o - 15).Rows(Rows.Count).End(xlUp).Row) + 1
End If
Cells(us2, o - 12) = Cells(s, o)
Cells(us2, o - 11) = Cells(s, o + 1)
Cells(us2, o - 10) = Cells(s, o + 2)
End If
Next s
Next o
End Sub -
Fferi50
őstag
válasz PeLa87 #42228 üzenetére
Szia!
Makró nélkül is megy, ha minden hónapba beteszel egy segédoszlopot. A képlet attól függ még, hogy a hónapok neve milyen módon szerepel.
Feltételeztem, hogy a hónapok teljes neve a lapok neve is. Ha nem így van, azt hiszem át tudod nevezni. A rövidített nevekkel ennél bonyolultabb a képlet.
Továbbá azt feltételeztem, hogy a nevek az A, a születési dátumok a B, az életkor a C oszlopban van. A segédoszlopot az E oszlopba tettem minden munkalapon.
A fő lapon az első sor lehet fejléc.
Akkor az A2 cella képlete (az első születésnapos neve):=INDEX(INDIREKT(SZÖVEG(MA();"hhhh") &"!A1:C100");HOL.VAN(NAP(MA());INDIREKT(SZÖVEG(MA();"hhhh") & "!E1:E100");0);1)
A B2 cella képlete (az életkora):=INDEX(INDIREKT(SZÖVEG(MA();"hhhh") &"!A1:C100");HOL.VAN(NAP(MA());INDIREKT(SZÖVEG(MA();"hhhh") & "!E1:E100");0);1)
Az A3 cella képlete (a következő születésnapos neve):=INDEX(INDIREKT(SZÖVEG(MA();"hhhh") &"!A1:C100");HOL.VAN(A2;INDIREKT(SZÖVEG(MA();"hhhh") & "!A1:A100");0)+1;1)
A B3 cella képlete (a következő születésnapos életkora):
=INDEX(INDIREKT(SZÖVEG(MA();"hhhh") &"!A1:C100");HOL.VAN(A2;INDIREKT(SZÖVEG(MA();"hhhh") & "!A1:A100");0)+1;3)
Ez a két képlet húzható lefelé. Amennyiben már nincs több születésnapos, akkor Hibaértéket fogsz kapni. Ennek elkerülésére az egészet beágyazhatod egy HAHIBA függvénybe.
Akkor is hibát kapsz az első sorba, ha nincs születésnapos, szintén HAHIBA függvénnyel kezelhető, hogy pl. azt írja ki, hogy nincs születésnapos ma.
A hibakezeléseket rád bízom.
A MA() függvények "köszönhetően" minden nap aktuális lesz az érték.Üdv.
-
pentium4
senior tag
válasz Delila_1 #42229 üzenetére
A jobb függvénnyel az a baj hogy nem az utolsó számot jeleníti meg, mivel Ft a formátuma a cellának, így a T betű lesz az eredmény amivel nem lehet számolni.
De ahogy írtam nekem az még jobb lenne ha összeadnánk pl az összes 3 as végződésű számot és azzal már tudok szorozni amennyivel akarok.
KösziP4
-
Fferi50
őstag
-
Sprite75
tag
Sziasztok.
Van egy ilyen maróm egy táblázatban ami kimenti a munkapalot PDF-be.Sub PDFkeziment()
'
' PDFment Makró kézzel
lapnev = ActiveSheet.Name
Sheets("Rendeles").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="\\KHAZASERV\Megosztott\Rendeles Bolt\Rendeles." & Format(Now(), "yyyy.mm.dd. hh-mm") & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Sheets(lapnev).Select
End SubMeg lehet azt oldani valahogy, hogy a munkalap egyik cellájába beírt szám is belekerüljön a file nevébe?
Tulajdonképpen ez egy rendelésfelvevő táblázat és jó lenne, ha az aktuális rendelés száma is bekerürne a file nevébe, a könnyebb azonosítás miatt. Most ez a file neve ami elkészül: Rendeles.2019.11.20. 07-44.pdf De jó lenne ha így nézne ki pl : 12. Rendeles.2019.11.20. 07-44.pdfHátha
-
-
Fferi50
őstag
válasz Petium001 #42242 üzenetére
Szia!
A hivatkozott hozzászólásban mutatott képlet pont ezt csinálja. Csak a 125-öt írd át 1250-re a táblázatban.
A súly a B oszlopban, az érték a C oszlopban van. A táblázatban az I oszlop a súly, a J oszlop a fizetendő érték.
A képlet: =Fkeres(B1;$I$1:$J$5;2;1)+Ha(B1<=8;C1*0,3;0)
A képlet első része keresi meg a súlyhoz tartozó értéket, a második része pedig 8 kg-ig hozzáadja az összeg 30 %-át. 8 kg felett nem ad hozzá semmit.Üdv.
-
Pakliman
tag
válasz Sprite75 #42240 üzenetére
Szia!
Akkor alakítsd át:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="\\KHAZASERV\Megosztott\Rendeles Bolt\" & worksheets("valami").cells(vmelyiksor,vmelyikoszlop) & " Rendeles." & Format(Now(), "yyyy.mm.dd. hh-mm") & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=FalseValamiért már megint nem működnek nálam a BB kódok (félkövér, aláhúzott stb.)
[ Szerkesztve ]
-
bara17
tag
Sziasztok!
Az alábbi problémám lenne és hirtelen nem jut eszembe megoldás:
Van két oszlopom az egyikben dátumok vannak, a másikban meg 0 és 1. A feladat, hogy egy adott dátumot kikeresni a dátumos oszlopban, majd azt a következő dátumot visszaadni, ahol a második oszlopban 1-es szerepel.
Kép alapján szerintem egyértűbb a kérdés, itt a 2019.11.01-et feltétel alapján szeretném megkapni a 2019.11.04-et
Köszi a segítséget!
[ Szerkesztve ]
-
ny.janos
tag
válasz bara17 #42246 üzenetére
Szia!
Egy lehetséges megoldás, hogy felveszel egy segédoszlopot, ahol a második oszlopban szereplő 1-eseket és 0-kat összesíted. Attól függően, hogy a segédoszlopodat hova szúrod be vagy az FKERES és INDEX - HOL.VAN párossal meg tudod találni a kívánt eredményt. Előbb megkeresed az adott dátumhoz tartozó értéket a segédoszlopodban, majd a segédoszlopban ettől eggyel magasabb értékhez keresed vissza a hozzá tartozó dátumot.
D1 cella képlete:
=SZUM($C$1:C1)
H4 cella képlete:
=INDEX(B1:B20;HOL.VAN(INDEX(D1:D20;HOL.VAN(H3;B1:B20;0))+1;D1:D20;0))
-
ny.janos
tag
válasz Petium001 #42248 üzenetére
Szia!
A korábbi hozzászólásod alapján a második oszlopodban szereplő értékek valószínűleg nem egyéni formátumú számok, hanem szövegek, ahol a szám után a "kg" mint szöveg is be van gépelve a cellákba. Ha valóban így van, akkor javítsd ezen oszlop adatait úgy, hogy abban csak számok szerepeljenek, a kg-ot pedig formátumként add meg.
-
Fferi50
őstag
válasz Petium001 #42248 üzenetére
Szia!
Úgy tűnik, hogy a B oszlopban nem számok vannak... Ha nem akarsz egyéni formázást - ami megőrzi a számokat a számoláshoz - az előző hsz. javaslata szerint, akkor a képlet:=FKERES(ÉRTÉK(HELYETTE(B5;"kg";""));$I$1:$J$5;2;1)+HA(B5<=8;C5*0,3;0)
Az FKERES függvénynek 4 paramétere van. A harmadik azt az oszlopot jelöli, ahonnan az adatot kell venni. A negyedik pedig azt határozza meg, hogy pontos legyen az egyezés vagy hozzávetőleges.
Üdv.
Ps. A súgó legyen a legjobb barátod.[ Szerkesztve ]
Új hozzászólás Aktív témák
- Amlogic S905, S912 processzoros készülékek
- Milyen billentyűzetet vegyek?
- Adatmentés - HDD - SSD - Flash
- Milyen NAS-t vegyek?
- A Watch7-tel debütálhat a Samsung vércukormérője
- Kerékpárosok, bringások ide!
- Magga: PLEX: multimédia az egész lakásban
- Házimozi belépő szinten
- PlayStation 5
- LG 34GS95QE-B: OLED paneles, ívelt gamer monitor
- További aktív témák...
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! LEGOLCSÓBB! Automatikus 0-24
- Windows 10/11 Home/Pro , Office OEM/Retail kulcsok
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Eredeti Windows, telepítéssel! Digital Doctor Számítógép Szerviz
- Microsoft licencek a KIVÉTELES ÁRAK - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office