- gban: Ingyen kellene, de tegnapra
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- sh4d0w: Netflix? Ugyan, VW előfizetés!
- bambano: Bambanő háza tája
- sziku69: Fűzzük össze a szavakat :)
- WhrlpoolMind: Búcsú a HD3870-től
- LordAthis: Ismét egy "Idióta" A.I. Projekt, hogy meglovagolja az aktuális trendeket...
- Luck Dragon: Asszociációs játék. :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
-
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
-
Fferi50
Topikgazda
válasz
slashing #24596 üzenetére
Szia!
Akkor leírom egyben:
Application.Enableevents=false
If Target.Column = 15 And IsNumeric(Target) Then
Target.NumberFormat = "h:mm;@"
Else
if target.value<>"N/A" then
application.undo
msgbox "Helytelen adat"
'Target.NumberFormat = "General"
endif
End If
Application.Enableevents=TrueArra figyelj, hogy az "N/A" szöveg nem azonos az N/A hibával! Ide most szöveget kell írni. Ha a hibát szeretnéd, akkor azt másképpen kell.
Üdv.
-
Delila_1
veterán
válasz
DrojDtroll #24597 üzenetére
Szivi.
-
slashing
senior tag
válasz
Fferi50 #24594 üzenetére
Mert ahogy idő kerül a cellába átvált a cella típusa időre és valamiért ha idő a típusa az adatérvényesítés elfogadja az n/a helyett az "akármit" is.
De ez az applictaion undo ez nagyon jó lehet kihagyom a fenébe az érvényesítést és csak makró fogja ellenőrzizni ha már úgy is kell bele makró is.
(#24595) Fferi50
pont ugyan ezt raktam még bele az előbb de még mindig nem tökéletes valami kezdek nagyon belekavarodni -
Fferi50
Topikgazda
válasz
slashing #24593 üzenetére
Szia!
Még valami: Ha már egyszer úgyis meg kell nézni, hogy jót írt-e be, azt be lehetne építeni a fenti makróba és akkor az egész validálást ki lehet iktatni:
Én beszúrnám még ezt a sort az else után az előző makrómban:
if target.value<>"N/A" then
utána jön az Undo, az üzenet és ne felejtsd el az ezt záró end if -et.Üdv.
-
Fferi50
Topikgazda
válasz
slashing #24593 üzenetére
Szia!
Ugyan nem egészen látom a logikáját annak, hogy miért formátumhoz kötöd a validálást, de az ellenőrzéshez az alábbiakat ajánlom:
If Target.Column = 15 And IsNumeric(Target) Then
Target.NumberFormat = "h:mm;@"
Else
application.undo
msgbox "Helytelen adat"
'Target.NumberFormat = "General"
End IfLehet, hogy a kikommentelt sor is kell, nézd meg lsz.
Üdv.
-
slashing
senior tag
válasz
Fferi50 #24585 üzenetére
Számítottam rá, nem igen találtam semmi érdemlegeset a témában, vagy ha valamit igen akkor az meg túlon túl bonyolult volt és nem is 100%-ig arra vonatkozott. Nem nagy gond eddig is kikersték ezután is
Más
Van egy adat érvényesítésem ami a következőt engedi: csak N/A értéket és idő formátumot. A képletben a D9 az nem cella hanem a forma idő típusára utal: ó:pp.
=VAGY($O4="N/A";CELLA("forma";$O4)="D9")
egy gondom van vele ha jó időértéket írok bele akkor a cella típusa átvált általánosról időre és ezután bármilyen szöveget elfogad már az a cella ha időértéken marad a formátuma
Addig eljutottam hogy worksheet change-be raktam egy ilyet:
If Target.Column = 15 And IsNumeric(Target) Then
Target.NumberFormat = "h:mm;@"
Else
Target.NumberFormat = "General"
End IfEz annyiban segített hogy 1 jó időérték után egyszer be tudok írni rossz szöveges értéket de utánna már csak jót mert átváltott generalra, csak ki kéne küszöbölni még azt az 1 rossz érték engedését is. Gondolom előbb kéne egy format ellenőrzés is de nem jövök rá a megfelelő megoldásra
-
Fferi50
Topikgazda
válasz
Delila_1 #24590 üzenetére
Szia!
Áthidalható a probléma úgy is, ha azt a cellát, amelyikre hivatkozni akarsz, ellátod névvel.
Így már lehet használni a feltételes formázásban is:Munka1 munkalap A1 celláját elnevezed pl. elso -nek.
Munka2 munkalap A1 cellájának feltételes formázása: a képlet =elso=akarmiTermészetesen az akármi helyére a feltétel helyettesítendő be.
Üdv.
-
Delila_1
veterán
válasz
DrojDtroll #24588 üzenetére
2010-es előtti verzióban nem enged más lapra hivatkozni a feltételes formázás, de egy segédoszloppal meg lehet oldani a színezést.
A Munka2 pl. a G1-ben legyen a képlet =Munka1!A1. Ezt lemásolod, ameddig kell. Ezen a lapon az A1 feltételes formázásának a képlete: =$G1=1, és itt adod meg a színt.
-
Fferi50
Topikgazda
válasz
DrojDtroll #24588 üzenetére
Szia!
munkalap2 A1 cella Feltételes formázás, a cellák kijelölése képlettel, a képlet legyen ez:
=munkalap1!$A$1=1
a kitöltésnél jelöld be a piros szint.
A másik színnél ugyanígy.Üdv.
-
DrojDtroll
veterán
Sziasztok, újabb feltételes formázásos gondom van.
Most valamiért az nem akar működni, hogy adott értékek mellet, egy másik munkalap formázódjon.
Pl.:
munkalap 1:
1 3 4 1
2 1 2 3
1 2 4 1munkalap 2.
23 45 43 10
12 34 12 20
42 80 81 91Az munkalap1 alapján kellene formáznom a munkalap2-t.
Pl.: ha a munkalap1 A1 celléja 1-es akkor a munkalap2 A1-es cellája legyen piros
ha a munkalap1 A1 celléja 2-es akkor a munkalap2 A1-es cellája legyen sárga.....De valamiért nem enged másik munkalapra hivatkozni a feltételes formázásnál. Sajnos segédcella használata nem megengedett.
Valakinek esetleg valami ötlete van, hogyan lehetne megcsinálni?
-
-
slashing
senior tag
#24583) firemanus82: nincs mit
Van egy select eseményem:
If Target.Column = 16 Then
Application.Dialogs(xlDialogInsertHyperlink).Show
End IfEbbe hogyan lehet beleírni azt hogy adott könyvtárba dobjon ne kelljen kikeresnem?
példaként akármi lehet : c:\test\kepek\
-
firemanus82
senior tag
Nagyon köszönöm a segítséget "slashing" és "Delila_1"!
-
Fferi50
Topikgazda
Szia!
Nézd meg lsz. a cella formátumát. Az sem mindegy teljesen, hogy mit szeretnél összefűzni.
Továbbá az ÖSSZEFŰZ függvény helyett használd az & jelet. Tehát:A2 cellába: ="előre" & A1 & "végére"
Előre és végére helyett írod a saját szöveged idézőjelek között.
Egy adott cellában saját magára nem lehet képletben hivatkozni.Üdv.
-
Mag__
tag
Sziasztok!
ÖSSZEFÜZ függvénnyel van gondom.
Ezt akarom megcsinálni, de a magyar excelben nem müködik:
ÖSSZEFŰZ agolul CONCATENATE néven működikVan 5 sor egy oszlopban, és minden sor elejére kéne beilleszteni ugyanazt a szöveget, és még egy másik szöveget minden sor végére. A fenti link-en megcsinálja az angol excel,de nekem nem jelenik meg semmi az oszlopban,sőt eltűnik a tartalma, és H-0000 jelenik meg.Természetesen ÖSSZEFŰZ függvényt írtam be.
Előre is köszi a segítséget.
-
Delila_1
veterán
válasz
firemanus82 #24570 üzenetére
Nosza!
-
bocsi6
újonc
Fferinek
Azt sajnos nem tudom megmondani, de ha rájövök, ígérem, hogy megírom.
Üdv -
slashing
senior tag
Ha van beállítva rendszer visszaállítás akkor az xls fájlon jobb klikk / tulajdonságok / előző verzióknál vissza lehet állítani korábbi állapotokat is(úgy hogy közben megmarad a jelenlegi is). már ha nincs szükség a teljes környezet visszaállításra csak a fájléra.
-
Fferi50
Topikgazda
-
bocsi6
újonc
Fferinek
Hurrá ! Sikerült !
Mégpedig rendszer visszaállítással, 3 nappal ezelőttre állítottam vissza.
Minden OK módon működik, remélem nem csak átmenetileg.Kérlek egy mondat erejéig szólj vissza, hogy osztozol-e az örömömben, és köszi az ötleteket.
Végső soron ez a mondatod adta az ötletet : "Nem tudom, tudsz-e régebbi környezetet "produkálni"."
Én egyet nem tudtam, hogy a rendszer automatikusan létrehoz ilyen visszaállítási pontokat.Köszi még egyszer
-
Fferi50
Topikgazda
válasz
bocsi6 #24573 üzenetére
Szia!
Fájlokat több helyre is lehet feltenni teljesen ingyenesen és biztonságosan. Én a Data.hu-ra szoktam feltenni, ott feltöltés után kapsz egy linket, amit be lehet ide másolni. (De más "adattárak" is így működnek.)
A régi környezetet már nem tudod szerintem visszaállítani, ezért javasoltam a "szomszéd, barát, ismerős, munkahely, stb.) másik gépet ill. a feltöltést.
Üdv.
-
bocsi6
újonc
Fferinek
Az Excel eszköztárának ActiveX vezérlői a Microsoft Forms 2.0 Object library-ben vannak.
Ezt írod :"Ezt kellene megnézni másik gépen, ahol ment a fájl."
A fájl nem másik gépen, hanem ezen a gépen ment, és itt a References között a könyvtár szerepel.A régebbi környezetet még megpróbálom "produkálni", csak az a baj, hogy nem állítottam be visszaállítási pontot - meg egyáltalán azt hogy kell csinálni ?
A fájl másik gépen való kipróbálása (másik Excel-lel) már jobbnak tűnik, csak az a problémám, hogy ezügyben elég "magánzó" vagyok. Vagyis nemigen tudom ezt hol kipróbálni.
Az utolsó észrevételedhez :"feltehetnéd a problémás fájlt valahova, hátha "megnézve" okosabb lehet valaki". Ezzel meg az a gondom, hogy nem tudok ilyen valakit. Ha ez online történne, akkor meg : hogyan kell feltenni a fájlt ?
Ne haragudj, nem a kifogásokat keresem, csak eléggé teli vagyok kérdésekkel.
Köszi
-
Fferi50
Topikgazda
válasz
bocsi6 #24571 üzenetére
Szia!
Mint írtam is, én is csak próbálkozom...
Arra gondoltam, ha nem lehet benne activex-et egyáltalán feltenni, akkor hiányozhat ez a komponens. VBA nézetben- Tools menü - References. Ezt kellene megnézni másik gépen, ahol ment a fájl.
Nem tudom, tudsz-e régebbi környezetet "produkálni". Szerintem meg kellene nézni, hogy másik gépen, másik excellel működik-e az activex felrakása.
Esetleg - ha nincsenek benne titkos adatok, vagy azokat ki lehet gyomlálni - feltehetnéd a problémás fájlt valahova, hátha "megnézve" okosabb lehet valaki.Üdv.
-
bocsi6
újonc
Fferinek : Köszi, de sajnos nem sokra jutottam.
Azt még kifejtenéd bővebben, hogy mit kéne tennem a "Lehet, hogy kellene egy activex komponesekre hivatkozó MS dll" mondatod kapcsán ?
Meg egyáltalán, milyen beállítás változhatott, ami nem 1 Excel fájlt érint, hanem az Excel egészét ?
Mi erről a véleményed ?
Bár gondolom, ha erre tudnád a választ, akkor nagy valószínűséggel a megoldást is tudnád, úgyhogy lehet, hogy ez a kérdésem a költői kérdés kategóriájába sorolható.Köszönöm : bocsi6
-
Delila_1
veterán
válasz
firemanus82 #24568 üzenetére
Azért tettem a txt után alsó kötőjelet.
-
Delila_1
veterán
válasz
firemanus82 #24566 üzenetére
Kijelölöd a szövegdobozt, és a szerkesztőléc bal oldalán lévő mezőbe beírod a rövid nevet, Enter.
-
firemanus82
senior tag
Nagyon láma kérdés: hol lehet átnevezni a "szövegdoboz 1". Kicsit rövidebb névre lenne szükségem
-
Delila_1
veterán
válasz
firemanus82 #24564 üzenetére
Örülök neki, szívesen.
-
Delila_1
veterán
válasz
firemanus82 #24559 üzenetére
Két dolgot változtatnék a helyedben. Az első, hogy diagramok helyett szövegdobozokat tennék a második lapra, azokba tölteném fel a képeket. A másik, hogy 2 makróval hajtatnám végre a feladatot (másképp nem megy).
Slashing változatánál maradva a képek nevét a 4. sorba viszem be.Az eseménykezelő makrók csak a saját lapjukon tudnak dolgozni, nem hajlandóak a másik lapon ügyködni. Meg lehet hívni viszont egy nem laphoz rendelt, hanem modulba helyezett másik makrót, átadva annak az értékeket.
Az első lap, amibe a képek nevét viszem be, nálam Munka1 névre hallgat, a másik Munka2-re, a szövegdobozok txt_1, txt_2, ... txt_6 nevűek.
Laphoz:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Row = 4 Then
Kepek Target.Column, Target
Target.Select
End If
Application.ScreenUpdating = True
End SubModulba:
Sub Kepek(oszlop, nev)
Sheets("Munka2").Select
Select Case oszlop
Case 2
ActiveSheet.Shapes("txt_1").Select
Case 3
ActiveSheet.Shapes("txt_2").Select
Case 4
ActiveSheet.Shapes("txt_3").Select
Case 5
ActiveSheet.Shapes("txt_4").Select
Case 6
ActiveSheet.Shapes("txt_5").Select
Case 7
ActiveSheet.Shapes("txt_6").Select
End Select
Selection.ShapeRange.Fill.UserPicture "C:\Almappa\Al_Almappa\" & nev & ".jpg"
Sheets("Munka1").Select
End Sub -
Fferi50
Topikgazda
válasz
bocsi6 #24560 üzenetére
Szia!
No ez az a jelenség, amire szerintem pillanatnyilag nincs normális megoldás.
Próbáld a következőt:
Az excelt nyisd meg egy üres munkafüzettel.
Menj át a VBA nézetbe (Alt+F11 vagy Nézet - makrók - visual basic)
Az immediate ablakba írd be:
application.enableevents=false
Ezután nyisd meg a kérdéses munkafüzetet. Ha előjönnek az activex vezérlők, akkor kapcsold vissza az eseménykezelést: application.enableevents=true
De semmi garancia nincs arra, hogy a következő megnyitáskor nem fog összedőlni az egész excel....Másrészt érdemes lenne megnézni, milyen "references" az amit elér az excel. Azt is a VBA nézetben láthatod. Lehet, hogy kellene egy activex komponesekre hivatkozó MS dll. De erre sem vennék mérget.
Én már több hónapja küzdök ezzel a problémával és nem találtam rá olyan megoldásra, ami garantáltan kiküszöböli.
Nagy eséllyel valamilyen memória kezelési hiba - vagy programozói "hanyagság" - okozza. Ez utóbbit azért tettem idézőjelbe, mert egyébként nem következetes az összeomlás. Van, hogy ugyanaz a program napokig megy hiba nélkül, aztán teljesen váralanul jön a baj, nem indul el, hanem kiakasztja az excelt.Még valami, amit a szerkesztőlécen látsz beágyazként az sajnos már nem activex vezérlő, hanem munkalap vezérlő - valamelyik sorstárs irta, hogy "átalakul az activex vezérlő munkalap vezérlővé".
Üdv.
-
bocsi6
újonc
Sziasztok, kérdésem lenne.
Van egy Excel fájlom, amire az Excel eszköztárából feltettem pár ActiveX vezérlőt, amikhez
eseménykezelőket írtam . Eddig minden OK volt, de távollétemben egy (azt hiszem) Office frissítés után
a rendszer a gépet újraindította. Ezután jött a gubanc.A fájl vezérlői ott voltak a helyükön, de nem működtek és ha a munkalap valamelyik eseménykezelője a
vezérlők valamelyikére hivatkozott, hibaüzenet jelent meg : Object required. Ki tudtam jelölni őket és a
Szerkesztőlécen annak rendje, módja szerint látszottak (=BEÁGYAZ(...)), de a Properties
párbeszédablakban nem jelentek meg ! Mintha tényleg nem lennének ott, pedig ott vannak.Ha pedig, ugyancsak az Excel eszköztárból fel akartam tenni egy ActiveX vezérlőt, újabb üzenet jött :
Az objektum nem szúrható be.
Ugyanez történt, ha egy tök új Excel munkafüzetbe akartam feltenni egy ActiveX vezérlőt.Office 2007 van a gépemen.
Mi lehet a probléma ?
Köszönöm a segítséget.
-
firemanus82
senior tag
válasz
firemanus82 #24558 üzenetére
Na a diagram neve nem stimmelt, javítottam, de még mindig nem megy:
Object variable or With block variable not set 91
-
firemanus82
senior tag
válasz
slashing #24550 üzenetére
Annyiban segíts még nekem légyszi, hogy hogyan tudom ezt két külön munkalapon megvalósítani? A "Beosztas" nevűben vannak a nevek, a "Munka2" nevűben a Diagram területek. Próbáltam megcímezni a kódot, de valami még hiányzik... Hibát ír ki, hogy Object required. 424. Nem talál objektumot. Ha egy lapon van minden, akkor megy (tehát nem fájlnév probléma)
Private Sub Worksheet_Change(ByVal Target As Range)
If beosztas.Target.Row = 3 And beosztas.Target.Column = 2 Then
Munka2.ChartObjects("Diagram 1").Select
ActiveChart.ChartArea.Format.Fill.UserPicture ("c:\" & Target & ".jpg")
Target.Select
End If
End Sub -
Fferi50
Topikgazda
válasz
m.zmrzlina #24556 üzenetére
Szia!
Talán két dolgot lehet tenni.
1. Ha megnyitod az adott fájlt (munkafüzetet), akkor a workbook.path tulajdonság csak az elérési útvonalat adja meg.
2.Érdemes megnézni szerintem a filesystemobject objektumot.Üdv.
-
m.zmrzlina
senior tag
Adott kb 50 fájl egyetlen mappában aminek az elérési útja változó. (nem adható meg előre makróban).
Változóba szeretném írni a fájlok elérési útvonalát.A tudomány(om) jelenlegi állása szerint ez az információ az Application.GetOpenFilename metódussal nyerhető ki. Mivel ez a módszer a fájlnévvel együtt adja vissza az elérési útvonalat előbb le kell nyisszantani a változó végéről a fájlnevet.
Az a kérdésem, hogy van-e olyan módszer ami közvetlenül az elérési utat adja vissza és nem kell utána még trükközni?
-
slashing
senior tag
válasz
Thrawnad #24553 üzenetére
hát ha kimutatást akarsz akkor nem kell szumhatöbb mivel behúzod a szűrőhöz az utk-t az értéknek az órát és leszűröd arra amelyik érdekel.
ha meg mindegyikre kell akkor meg neked kell megcsinálni a kimutatás táblát amit meg szumhatöbb-el fel tudsz tölteni tölteni..
pl. leszűröd egyénire a törzsámokat meg az utk-kat aztán a törsz lesz a függőleges mondjuk A oszlop az utk meg a vízszintes 1 sor és jöhet a szumhatöbb...
lehet meglehet csinálni szebben jobban de így 5 perc alatt ennyire futja most...
-
Thrawnad
senior tag
Törzsszám Név UTK Óra Dátum
50400603 Cserepák József 4054 16 2014.11.30
50400603 Cserepák József 4052 36 2014.11.30
50400603 Cserepák József 4001 48 2014.11.30
50400603 Cserepák József 4033 12 2014.11.30
50400603 Cserepák József 4001 36 2014.11.30Van egy ilyen táblám, az a kérdés hogy tudom összeadni azokat az órákat ahol egyezik az UTK és a törzsszám? Makró nélkül lehetőleg.
Köszi:
Thrawnad -
slashing
senior tag
válasz
firemanus82 #24549 üzenetére
Itt egy variáció nem a legszebb de kiindulásnak jó. Sajnos nincs rá több időm:
Megnyitod a fájlt a C meghajtón a gyökérbe raksz néhány képet aztán a név sorba beírod a kép nevét és kicseréli jobb oldalt a képeket. Egy sima feltételes formázást raktam rá ha kétszer beírod ugyan azt a kép nevet akkor fekete lesz a cella.
Jobb klikk a munklapon majd kód megjelenítése és láthatod vba kódot amit már csak ismételgetni kell és átirogatni a row és column hivatkozásokat... illetve a diagram nevét...
Több időm lenne szebben is meg lehetne csinálni
Jah de amúgy egy sima mágneses laminált képes megoldással lenne a legegyszerűbb megoldani. Lenne egy forma nyomtatvány egy mágneseshető ajtón oszlopon akárhol aztán a képeket lelamináljátok és mágneses ragasztót raktok a hátuljára és cserélgetitek a képeket a formanyomtatványon
-
firemanus82
senior tag
válasz
firemanus82 #24548 üzenetére
Legördülő listába be lehet illeszteni képet? Különböző cellákba, de ismétlődés nélkül. Ha nem, akkor hogyan tudom megoldani azt, hogy egy 21 sorból álló névsort különböző sorokba és oszlopokba tudjak beosztani. Akit egyszer már kijelöltem, azt ne lehessen újra választani? Egy oszlopba megy a dolog, de többe nem...
-
firemanus82
senior tag
válasz
slashing #24546 üzenetére
Nagyon köszönöm.
Sajnos excel -ben kell valamit kitalálnom, mert delphiben (tudom elavult - akárcsak én is
) programként megcsinálnám, de nem lehet bevinni semmilyen programot. Így marad az excel. Igazából egy "szolgálat szervező" tábla lenne. Jelenleg így fest [link]
Szóval ezt kellene rendezni.
-
slashing
senior tag
válasz
firemanus82 #24545 üzenetére
Érthető csak nem kivitelzhető, az első fele még csak csak ha trükközik az ember. A lényeg a lényeg hogy képet csak rácsvonalhoz tudsz illeszteni középre nem. Középre úgy lehet betrükközni hogy valójában nem a kép lesz középen hanem a cellák körülette egy keretet alkotnak. Tehát ha van egy 5x5 cm-es képed akkor 7 sort és oszlopot beállítasz 1 cm szélességűre és magasságúra és akkor a második sor második oszlop rácsvonalához tudod illeszteni a képet ami így a 7x7-es kocka közepén fog elhelyezkedni.
Legalábbis én így oldottam meg egyszer a feladatot csak nem képpel hanem objektummal...
A második fele is kivitelezhetőség határán mozog minimum kell egy elérési út egy cellában, nekem erre a következő megoldásom van makróval (nem teljesen lesz jó neked szerintem de leírom)
A1 cellába beírom a kép nevét. dsc001
csinálok egy üres diagramot a lapon aminek beállítom a tulajdonságainál hogy kitöltés mintázattal vagy háttérképpel és magához a laphoz rendelek egy makrót:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 1 Then
Munka1.ChartObjects("diagram 1").Select
ActiveChart.ChartArea.Format.Fill.UserPicture ("c:\" & Target & ".jpg")
Target.Select
End If
End SubAmi az A1-ben lévő fájl nevével kitölti a diagramm hátterét így variálható a benne megjelenő kép. Elég a nevet beírni a kiterjesztést nem kell.
Itt egy működő verzió hozzá: [link] Ami a C:\ lévő képeket be tudja tölteni a "diagrammba" ha beírjuk a nevét az A1-be.
Alt+f11 kombinációval megnyitható a vba szerkesztő ahol át lehet írni az elérési utat és target.row 1 ill column 1-et arra a sorra illetve oszlopra melyikre akarjuk.
De aztán lehet lesz más megoldás valaki mástól, nekem csak ennyire futja ebben a témában...
-
firemanus82
senior tag
Sziasztok!
Egy kis segítség kellene nekem. Volna egy excel tábla és képek. Ezeket a képeket kellene naponta ide oda helyezgetnem. Azt szeretném, hogy a mozgatott képeket a cellába középre beigazítsa, ha ráhúzom, illetve a cellára egy másik lapon ha hivatkozom, a kép jelenjen meg. Ezt szeretném nyomtatni. Nem tudom mennyire voltam érthető, remélem tudtok nekem ebben segíteni...
-
Jarod1
veterán
válasz
m.zmrzlina #24542 üzenetére
Köszi!
-
Jarod1
veterán
üdv! melyik függvénnyel tudom megoldani azt hogy oszlopban vannak számok és hogy az előzőhöz képest aa másik hány % nőt? előre is kösz!
-
Delila_1
veterán
Másik megoldás a kilistázásra.
J1-től beírod a listázandó mappák útvonalát. Pl. J1-be C:\Főmappa\,
J2-be C:\Főmappa\Almappa1\, J3-be C:\Főmappa\Almappa1\Al-Almappa\, stb.Sub MappaLista()
Dim utvonal As String, sor As Long, FN As String, sorMappa As Integer
sor = 1: sorMappa = 1
Do While Cells(sorMappa, 10) <> ""
utvonal = Cells(sorMappa, 10)
ChDir utvonal
FN = Dir(utvonal)
Do While FN <> ""
Cells(sor, 1) = FN
sor = sor + 1
FN = Dir()
Loop
sorMappa = sorMappa + 1
Loop
End Sub -
lappy
őstag
Dim iRow
Sub ListFiles()
iRow = 11
Call ListMyFiles(Range("C7"), Range("C8"))
End Sub
Sub ListMyFiles(mySourcePath, IncludeSubfolders)
Set MyObject = New Scripting.FileSystemObject
Set mySource = MyObject.GetFolder(mySourcePath)
On Error Resume Next
For Each myFile In mySource.Files
iCol = 2
Cells(iRow, iCol).Value = myFile.Path
iCol = iCol + 1
Cells(iRow, iCol).Value = myFile.Name
iCol = iCol + 1
Cells(iRow, iCol).Value = myFile.Size
iCol = iCol + 1
Cells(iRow, iCol).Value = myFile.DateLastModified
iRow = iRow + 1
Next
If IncludeSubfolders Then
For Each mySubFolder In mySource.SubFolders
Call ListMyFiles(mySubFolder.Path, True)
Next
End If
End Sub
Na ez már jó!! -
lappy
őstag
Private Sub CommandButton1_Click()
Dim directory As String, fileName As String, sheet As Worksheet, i As Integer, j As Integer
Application.ScreenUpdating = False
directory = "c:\test\"
fileName = Dir(directory & "*.xl??")
Do While fileName <> ""
i = i + 1
j = 2
Cells(i, 1) = fileName
Workbooks.Open (directory & fileName)
For Each sheet In Workbooks(fileName).Worksheets
Workbooks("files-in-a-directory.xls").Worksheets(1).Cells(i, j).Value = sheet.Name
j = j + 1
Next sheet
Workbooks(fileName).Close
fileName = Dir()
Loop
Application.ScreenUpdating = True
End SubEz nem teljesen jó,de ha egy szakértő itt ránéz akkor alapnak jó lesz.
Amúgy ez csak az adott könyvtárban lévő xl?? kiterjesztésű fájlokat gyűjti a hozzájuk tartozó munkalapok neveivel együtt. -
Fferi50
Topikgazda
válasz
MC Pite #24535 üzenetére
Szia!
Akkor van ilyen hibaüzenet, ha az adott tartományban nem talál üres cellát. Ne feledd, attól, hogy nem látsz a cellában semmit, még lehet benne "információ" (pl. olyan képlet, aminek az eredménye üres string,stb.).
Ezt hibakezeléssel lehet makróban "kivédeni".
Pl.
on error resume next
set rngures=valami.columns("B").specialcells(xlcelltypeblanks)
if error="Nincs ilyen cella" then msgbox "Nincs üres cella"
on error goto 0Üdv.
-
-
slashing
senior tag
Írd át az "e" betűket arra az oszlopra amelyikre alkalmazni szeretnéd, remélhetőleg ilyet akartál...
Sub kijelol()
Dim cella As Range, kijeloles As Range, ASN As String
ASN = ActiveSheet.Name
usor = Sheets(ASN).Range("e" & Rows.Count).End(xlUp).Row
For Each cella In Sheets(ASN).Range("e1:e" & usor)
If (cella.Value <> "") Then
If kijeloles Is Nothing Then
Set kijeloles = cella
Else
Set kijeloles = Union(cella, kijeloles)
End If
End If
Next cella
kijeloles.Copy
End Sub -
Fferi50
Topikgazda
válasz
MC Pite #24531 üzenetére
Szia!
Szerintem fordítva kellene csinálnod.
Szűrés - csak az üres sorok kiválasztva - a sorokat kijelölöd (az egészet együtt) - sorok törlése - szűrő kikapcsolása.
Ez nyilván akkor jó, ha más oszlopokban nincs adat.Vagy makró:
sub sortorlo
activesheet.usedrange.columns("A").specialcells(xlcelltypeblanks).delete shift:=xlshiftup
end sub
A makró viszont csak az üres cellákat törli.Üdv.
-
Újra hozzátok fordulnék egy kis segítségért.
Van egy oszlopnyi adatom, amiben van egy adag üres sor.
Jelenleg szűrök az oszlopra, kiszedem a pipát az üres elől, vágólapra helyezem az adatokat, kikapcsolom a szűrést és beillesztem.
Nem találtam egyelőre olyan módszert amivel ezt automatizálni tudnám, ha csak nem ezt kéne begyógyítanom a fájlba -
Fferi50
Topikgazda
válasz
Soulfly842 #24529 üzenetére
Szia!
Talán ha konkrétabban leírnád a problémát, vagy tennél fel egy mintát valahova, hamarabb kerülne segítség is (pl. milyen munkafüzetbe milyen táblát szeretnél felvinni,stb.) .
Mert ez így nagyon általános.Üdv.
-
Soulfly842
addikt
válasz
Soulfly842 #24504 üzenetére
Ezzel kapcsolatban esetleg nincs valakinek valami ötlete?
-
G@ben
addikt
Tud-e az Excel 2013 olyat, hogy egy adott könyvtárból, ami tartalmaz fájlokat, illetve alkönyvtárakat is, az össze fájl nevét lementi külön cellákba? Lehetőleg egy oszlopba kéne.
Makróíráshoz nem értek, sima mezei felhasználó vagyok. -
slashing
senior tag
válasz
Mr.Csizmás #24525 üzenetére
használd a sor vagy oszlop függvényt attól függően merre kell húzni a képletet
pl.: OSZLOP(A1) ennek az eredménye 1
csak próbaképpen leírom de nem tudom kipróbálni:
=ELTOLÁS(Munka2!$AK$1;HOL.VAN(Munka1!$D3279;Munka2!$AK$2:$AK$6268;-1)-(OSZLOP(A1)-1);1)
-
Mr.Csizmás
titán
sziasztok!
ilyenre lenne szükségem:
adott egy függvénysor
=ELTOLÁS(Munka2!$AK$1;HOL.VAN(Munka1!$D3279;Munka2!$AK$2:$AK$6268;-1)-0;1)
ebben kell az utolsó előtti részt átírogatni a -0-t -29-ig, balról jobbra a cellákra vonatkozóan.
ezt hogy lehet lemakrózni, vagy simán függvényezni?
-
-
Musuz
csendes tag
Sziasztok
Segítségre lennem szükségem.
számokhoz tartozó szöveget szeretnék függvény segítségével meghívni
az 1.táblában a "D" nevű oszlopban levő számok alapján,a 2. táblában levő,és a számhoz tartozó szövegekről van szó,amit egy harmadik táblában szeretnék megjeleníteni:1. tábla:
2. tábla:
3. tábla:
ha csak egy tábla adatait kéne meghívnom "fkeres"-el az menne,de erre nemtok rájönni,próbáltam egymásba ágyazott "fkeres" és "ha" függvényeket is de nem sikerült.
remélem érthetően írtam le a problémát és tud vki segíteni.köszi. -
slashing
senior tag
válasz
slashing #24520 üzenetére
oké tényleg nagy marha voltam végig az első if-es résznél próbálkoztam ami ugye a páros sorokra érvényes de én barom mindig a páratlan sorban teszteltem aminél jóhogy nem mentlényeg a lényeg sikerült
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row Mod 2 = 0 Then
If Not Intersect(Range("D3:AB100"), Target) Is Nothing And Target.Value = "x" Then
Range("D1:AB2").Interior.ColorIndex = 6
Range(Cells(2, Target.Column), Cells(2, Target.Column)).Interior.ColorIndex = 37
Else
Range("D1:AB2").Interior.ColorIndex = 6
End If
Else
If Not Intersect(Range("D3:AB100"), Target) Is Nothing And Target.Value = "x" Then
Range("D1:AB2").Interior.ColorIndex = 6
Range(Cells(1, Target.Column), Cells(1, Target.Column)).Interior.ColorIndex = 37
Else
Range("D1:AB2").Interior.ColorIndex = 6
End If
End If
End Sub -
slashing
senior tag
Valamiért nem jut dűlőre a következővel letöltés
A nagyja már megvan azt szeretném hogy csak akkor színezze be kékre a felső két sor valamelyikét ha a target="x" de valamiért csak nem sikerül. Tuti hogy pofon egyszerű de már nem látom szerintem a fától az erdőt
-
-
lumpy92
aktív tag
válasz
slashing #24515 üzenetére
Szuper,alakul a dolog, már csak annyi a bibi,hogy az egyes ciklusokat nem szedi szét,hanem a 60-100ig kiszámolt értékek összegeit írja be a másik fülön az első (L4) cellába,a többit pedig kinullázza, valahogy a folyamatnak a ciklikussága nincs meg. Most az egész parancs egy Do-Loop között van,de ha jól értem a dolgokat,ezt így is kell?
-
slashing
senior tag
viszont arra figyelj hogy ha másik cellába akarod másolni akkor oda is kell egy változó érték
ahogy nézem Range("L4").Select a változó kimeneted
így csinálni kell még egy változót mondjuk i2 = 4
és a Range("L4").select helyett lesz így Range("L" & i2).select
a loop elé meg raksz még egy olyat hogy i2 = i2 + 1
-
lumpy92
aktív tag
válasz
lumpy92 #24512 üzenetére
Köszi!
Akkor már csak az maradt hátra,hogy hogyan tudom kiiratni a másik munkalapon egymás alatti cellákban?
Az előbb bemásolt sorokból látszik,hogy "L4" ; "L5" stb cellákba kéne,hogy az egyes értékekhez kapott eredményeket kiírja. Gondolom ez is valami hasonló Do-Loop kombó lesz, csak még nem állt össze az egész. -
lumpy92
aktív tag
Egy cella tartalmát egy tartományon belül (60-100) szeretném változtatni, ebből számol a Solver, és a makró is ezt használja. A kérdésem az,hogy hogy lehetne a makróba beleírni ezt úgy,hogy ne kelljen rengetegszer bemásolnom az eredeti utasítást ,és abban a cella átírását manuálisan átpötyögni egyesével?
Itt az első 2 eset látszik
Range("F66").Select
ActiveCell.FormulaR1C1 = "60"
SolverOk SetCell:="$L$73", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$41:$K$49", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$L$73", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$41:$K$49", _
Engine:=1, EngineDesc:="GRG Nonlinear"
Application.DisplayAlerts = False
Application.Run "SolverSolve", True
Range("L73").Select
Selection.Copy
Sheets("B").Select
ActiveWindow.SmallScroll Down:=-27
Range("L4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("A").Select
Range("F66").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "61"
SolverOk SetCell:="$L$73", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$41:$K$49", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$L$73", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$41:$K$49", _
Engine:=1, EngineDesc:="GRG Nonlinear"
Application.Run "SolverSolve", True
Application.DisplayAlerts = False
Range("L73").Select
Selection.Copy
Sheets("B").Select
Range("L5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("A").Select -
lumpy92
aktív tag
Sziasztok!
Hogy tudnám megoldani excelben,hogy mikor lefuttatok egy makrót,és Solver bővítményt használva számol,ne kelljen mindig rányomnom a Solver felugró ablakának OK gombjára (a makrórögzítésnél ezt megtettem,de most mégis meg kell),akárhányszor végigszámol valamit?
A másik kérdésem,hogy a VBA felületen mikor a references menüfülön bepipláom a Solver-t,az legközelebb is úgy legyen ? (emlékezzen erre a beállításra)
Előre is köszönöm, remélem mindenkit meglátogatott a Mikulás -
tombar
senior tag
válasz
m.zmrzlina #24490 üzenetére
köszönöm szépen
-
Fferi50
Topikgazda
válasz
szix96 #24501 üzenetére
Szia!
Íme egy lehetőség:
Sub fileosszegzo()
Dim mf As Workbook, lap As Worksheet, fnev, usor As Long
Set mf = ActiveWorkbook
Set lap = ActiveSheet
Do While MsgBox("Akar adatokat beolvasni ?", vbYesNo) = vbYes
usor = lap.Range("A" & Rows.Count).End(xlUp).Row + 1
fnev = Application.GetOpenFilename()
If fnev <> False Then
Workbooks.Open Filename:=fnev ' megnyitás
Range("A8:E56").Copy Destination:=lap.Range("A" & usor)
'lap.Range("A56").PasteSpecial 'Beillesztés
ActiveWindow.Close False 'Bezárja
Range("A2").Select 'Rááll és vége
End If
Loop
MsgBox "Beolvasás vége!", vbInformation
End SubNéhány megjegyzés hozzá:
- az mf ebben az esetben teljesen felesleges, hiszen nem is használjuk a makróban
- a megnyitás után mindig a megnyitott munkafüzet lesz aktív - ezt lehet kihasználni a másolásnál amit lehet közvetlenül a célterületre "küldeni".
- a makró mindig az A oszlop első üres sorától másolja be a következő fájl adatait
- honnan tudod, hogy a megnyitott fájlban éppen az a munkalap az aktív, amire neked szükséged van? Ha csak egy munkalap van benne, akkor ok, de egyébként baj lehet, hiszen más esetleg (vagy akár Te is) elmozdíthatta az aktív munkalapot.
- természetesen a másoladó területet (ami most Range("A8.... nál kezdődik) szintén meg lehet adni úgy, hogy megkeressük a forrás fájlban - csak a szempontokat kell hozzá ismerni.
- a bezárásnál a False paraméter azt jelenti, hogy nem kell az esetleges változtatásokat menteni a forrásban
- a bezárás után ismét az eredeti fájlod lesz az aktív munkafüzet.A do while ciklus addig megy, amíg a kérdésre igent válaszolsz. Ha nem választasz fájlt, akkor nincs mit bemásolni, utána a kérdésre válaszolj nemmel, ha ténylegesen be akarod fejezni a beolvasást, vagy válassz fájlt és akkor folytatódik a beolvasás. (De ha igent válaszolsz és utána nem választasz fájlt, akkor a ciklus továbbra is "pörög" - ez szándékosan van így, hiszen el is téveszthetted a file választást.)
Üdv.
-
Soulfly842
addikt
Sziasztok!
Bármilyen office-t telepítek fel (win 8.1 alatt), amikor egy táblázatba akarok feltölteni adatokat azonnal átdob a Visual Basic-be és emiatt lehetetlen kezelnem a táblázatot. A korábbi Windowsoknál nem volt ilyen probléma... Tudtok ebben segíteni, hogy hogy tudom ezt lelőni, hogy az adott táblázatot tudjam normálisan kezelni?
Több office-val is próbáltam (2013, 2007)
Előre is köszönöm!
-
szix96
csendes tag
Sziasztok!
Ki tudnátok segíteni, hogy hogyan tudnám azt meg csináltatni ezzel a makróval, hogy egy szöveg dobozba be írom mondjuk hogy E56 akkor ez a makró ott(abba a cellába írjon be először) kezdje a beillesztését az Excel fájlnak és azt hogy több Excel fájl is bekérhető legyen vele.
Előre is köszönök mindent!
Itt a makró:
Sub fileosszegzo()
Set mf = ActiveWorkbook
Set lap = ActiveSheet
If MsgBox("Akar adatokat beolvasni ?", vbYesNo) = vbYes Then
fnev = Application.GetOpenFilename()
If fnev <> False Then
Workbooks.Open Filename:=fnev ' megnyitás
Range("A8:E56").Copy
lap.Range("A56").PasteSpecial 'Beillesztés
ActiveWindow.Close 'Bezárja
Range("A2").Select 'Rááll és vége
End If
Else
MsgBox ("Tehát nem akar!")
End If
End Sub
Új hozzászólás Aktív témák
Hirdetés
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Vírusirtó, Antivirus, VPN kulcsok
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- ROBUX ÁRON ALUL - VÁSÁROLJ ROBLOX ROBUXOT MÉG MA, ELKÉPESZTŐ KEDVEZMÉNNYEL (Bármilyen platformra)
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Apple iPhone 13 mini / 128GB / Gyárifüggetlen / 12Hó Garancia / 100% akku
- Eladó karcmentes Apple iPhone 12 128GB / 12 hó jótállással
- BESZÁMÍTÁS! Gigabyte B450 Aorus R7 5800X 32GB DDR4 512GB SSD RTX 4060Ti 16GB Zalman N5 MF CM 650W
- Telefon felváráslás!! Xiaomi Redmi Note 11, Xiaomi Redmi Note 11 Pro, Xiaomi 11 Lite
- Bomba ár! Dell Latitude 7320 - i5-11GEN I 8GB I 256SSD I HDMI I 13,3" FHD I Cam I W11 I Garancia!
Állásajánlatok
Cég: FOTC
Város: Budapest