- Milyen okostelefont vegyek?
- Xiaomi 14T Pro - teljes a család?
- VoLTE/VoWiFi
- Honor Magic6 Pro - kör közepén számok
- Android alkalmazások - szoftver kibeszélő topik
- Huawei Mate X6 - keleti oldal, nyugati oldal
- Honor 400 Pro - gép a képben
- Samsung Galaxy S24 FE - később
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Sony Xperia 1 V - kizárólag igényeseknek
-
Mobilarena
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
veterán
válasz
firemanus82 #29923 üzenetére
Az Fferiétől kicsit eltérő megoldást javaslok – nem mintha az övével valami baj lenne, csak minden feladatnak számtalan megoldása lehetséges.
Mivel elég körülményes a leírás, inkább csatolom a füzetet.
2 makró van benne, az elsőt a ThisWorkbook laphoz rendeltem. Ez másolja az eredeti neveket az M oszlopba a K-ból a füzet megnyitásakor. Az M2:Makárhány tartománynak a Nevek nevet adtam. Ez a forrása a beviteli celláknak.
A másik makrót a Munka1 laphoz rendeltem. Mikor valamelyik érvényesítésben (B2, C2, D2) kiválasztasz egy nevet, az M oszlopban lévők közül törli azt.
Ha újra az összes nevet akarod látni az M oszlopban, a ThisWorkbook laphoz rendelt makrót kell indítanod, vagy egyszerűen átmásolod a neveket K2-től az M2-be.
-
Fferi50
Topikgazda
válasz
firemanus82 #29928 üzenetére
Szia!
Gondolom, akkor a kiválasztott nevet valahova máshova beírod (képlettel v. makróval - ez utóbbi a jobb eset). Az adatérvényesítési listád pedig egy külön tartományban van. Az eredeti listádat másold le egy másik helyre.
Ebben az esetben egy kis makróval, ami a kiválasztáshoz kapcsolódik, kitörölheted a listából a kiválasztott nevet.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$1" Then
Application.EnableEvents = False
Range(Target.Validation.Formula1).Find(what:=Target, LookIn:=xlValues, lookat:=xlWhole).Delete shift:=xlUp
Application.EnableEvents = True
End If
End SubA fenti makró a H1 cellában levő érvényesítés listájából törli a kiválasztott elemet. Ha az érvényesítési listát a következő formában adod meg: =$A$1:$A40 - vagyis a sor száma nem abszolút módon van megadva - akkor az érvényesítési lista tartománya automatikusan módosul, nem marad benne üres sor.
Természetesen a fenti pár sort (3-5) beteheted abba a saját makróba, amelyik a kiválasztott adatot beírja a megfelelő hely(ek)re.
Üdv.
-
m.zmrzlina
senior tag
válasz
firemanus82 #29923 üzenetére
Mit értesz azon, hogy "kiválasztom"? Hogyan történik a kiválasztás?
-
Delila_1
veterán
válasz
firemanus82 #24570 üzenetére
Nosza!
-
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.
-
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 -
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
-
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...
-
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...
Új hozzászólás Aktív témák
Hirdetés
- Elektromos autók - motorok
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Mibe tegyem a megtakarításaimat?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- E-roller topik
- Fejhallgató erősítő és DAC topik
- Melyik tápegységet vegyem?
- Bittorrent topik
- Milyen okostelefont vegyek?
- EA Sports WRC '23
- További aktív témák...
- Eredeti Lenovo 300W töltők - ADL300SDC3A
- Telefon felvásárlás!! Honor 400 Lite, Honor 400, Honor 400 Pro
- Bontatlan SteelSeries QcK 3XL egérpad
- LG 55G4 - 55" OLED evo - 4K 144Hz & 0.1ms - MLA Plus - 3000 Nits - NVIDIA G-Sync - FreeSync Premium
- LG 39GS95UE - 39" Ívelt OLED / QHD 2K / 240Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged