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.
Gyorskeresés
Legfrissebb anyagok
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
- Tudástár AMD Radeon undervolt/overclock
Általános témák
LOGOUT.hu témák
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] [gban:] Ingyen kellene, de tegnapra
- [Re:] [HThomas:] Az ideális home office monitor nyomában
- [Re:] [bambano:] Bambanő háza tája
- [Re:] [ldave:] New Game Blitz - 2024
- [Re:] [Luck Dragon:] MárkaLánc
- [Re:] [attilasd:] A laposföld elmebaj: Vissza a jövőbe!
- [Re:] [ubyegon2:] Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- [Re:] [Szevam:] Érzelmi magabiztosság/biztonság - miért megyünk sokan külföldre valójában?
- [Re:] eBay-es kütyük kis pénzért
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Téma összefoglaló
- Utoljára frissítve: 2023-11-13 08:31:56
LOGOUT.hu
Hozzászólások
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
[ Szerkesztve ]
Thrawnad
senior tag
Szia!
Na ezzel csak az a baj hogy a sor-4 töl adja össze az értékeket!
Nekem a 4. sortól kellene.
Nem a ciklus volt ott a baj, hanem hogy nem futott le mert nem értette a képletet.
A címzés nem megy.
Thrawnad
Hardver hibára ritkán van jó szoftver...
Thrawnad
senior tag
Rájöttem!
Range("C" & Sor & ":Y" & Sor).FormulaR1C1 = "=SUM(R[-" & Format((Sor - 4), "#0") & "]C:R[-1]C)"
Minden esetre köszi!
Thrawnad
Hardver hibára ritkán van jó szoftver...
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!
Fferi50
őstag
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 Sub
Né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.
Fferi50
őstag
Szia!
A formatra nincs szükség, anélkül is működik:
Range("C" & Sor & ":Y" & Sor).FormulaR1C1 = "=SUM(R[-" & Sor - 4 & "]C:R[-1]C)"
Üdv.
szix96
csendes tag
Szia!
Köszönöm válaszod ahogy látom ez így tökéletes lesz, mindig egy típusban lesz a fájl mert ezt úgy kérem le a szerveröl(egy oldalas az excel fájl mindig). Még egyszer nagyon szépen köszönöm.
[ Szerkesztve ]
tombar
senior tag
köszönöm szépen
Everybody knows, you dance like you fuck. So let me see you dance!
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
"never send to know for whom the bells tolls; it tolls for thee"
slashing
senior tag
egy próbát megér hátha:
Application.DisplayAlerts = False
a másikra nincs ötletem...
[ Szerkesztve ]
lumpy92
aktív tag
Sajnos az nem működött, így sikerült megcsinálni:
Application.Run "SolverSolve" , True
"never send to know for whom the bells tolls; it tolls for thee"
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
"never send to know for whom the bells tolls; it tolls for thee"
slashing
senior tag
Ciklusba kell rakin
i = 60
Do Until i = 100
Range("F66").Select
ActiveCell.FormulaR1C1 = i
'ide jön a kódod ami mindig állandó
i = i + 1
loop
De lehet 101-et kell írni az until után hogy még a 100-on is lefusson
lumpy92
aktív tag
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.
"never send to know for whom the bells tolls; it tolls for thee"
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
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?
"never send to know for whom the bells tolls; it tolls for thee"
slashing
senior tag
Ha publikus a dolog akkor töltsd fel valahova pl. data.hu így leírva nekem eddig volt követhető, a többi kinullázása azt nem tudom mi lehet. Ha látom/látjuk lehet könnyebb lesz a dolog...
lumpy92
aktív tag
Közben sikerült megoldani, az"i=60" '-al kezdődő sorban volt (bezöldülve), ezért 1től kezdte, meg az A munkalapra való visszaugrást kellett még pluszba belerakni. Köszönöm szépen a segítséget, teljesen feldobta a napomat ez a kis sikerélmény !
"never send to know for whom the bells tolls; it tolls for thee"
slashing
senior tag
Nincs mit. Szívesen....
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
slashing
senior tag
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 ment
lé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
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
biztos van rá más mód is de most hírtelen és fáradtan csak az fekeresbe ágyazott fkeres megy:
mivel nem látszik csak az első tábla fejléce így szöveges írom le:
=Fkeres(fkeres(tábla 3 a1-ring cellája;A2:E6;5;hamis);tábla2 tartománya;2;hamis)
Musuz
csendes tag
Hali
Ezek szerint jó helyen kapirgáltam,csak épp nem szúrta ki a szemem.
Tökéletesen működik az általad leírt képlet.Ne üldözzön,de örök hálám ó Nagy Tudós.
Kedves egészségedre !
Mr.Csizmás
félisten
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?
"Szólítson csak Cirminek." | B&B XI | 3D nyomtatás Bp és környéke |
slashing
senior tag
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
félisten
műxik, köszönöm!
"Szólítson csak Cirminek." | B&B XI | 3D nyomtatás Bp és környéke |
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.
Amit ma letölthetsz, ne halaszd holnapra!
(#24529) Soulfly842 válasza Soulfly842 (#24504) üzenetére
Soulfly842
addikt
Ezzel kapcsolatban esetleg nincs valakinek valami ötlete?
[ Szerkesztve ]
Fferi50
őstag
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.
MC Pite
veterán
Ú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
<ELADÓ: Pixel8HibridTok> Pixel 8 | C4 SpaceTourer 1.2 Pt '18 | 208 1.2VTi '18 | https://www.spritmonitor.de/en/user/MC_Pite.html
Fferi50
őstag
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.
[ Szerkesztve ]
MC Pite
veterán
A fordított nem játszik, ez már a BT oszlop és mindegyik előtte lévőben van adat. Megpróbálom a makrót
<ELADÓ: Pixel8HibridTok> Pixel 8 | C4 SpaceTourer 1.2 Pt '18 | 208 1.2VTi '18 | https://www.spritmonitor.de/en/user/MC_Pite.html
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
[ Szerkesztve ]
MC Pite
veterán
Piszok jól megy csak arra nem jövök rá, hogy átírom az oszlopot, pl akármi.columns.("B"), vagy (2), és nem fut le, nincs ilyen cella üzenettel - az A oszlopon (vagy (1)) pedig frankón lefut. Súgó szerint Columns(1) vagy Columns("A") lenne a hivatkozás módja.
<ELADÓ: Pixel8HibridTok> Pixel 8 | C4 SpaceTourer 1.2 Pt '18 | 208 1.2VTi '18 | https://www.spritmonitor.de/en/user/MC_Pite.html
Fferi50
őstag
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.
[ Szerkesztve ]
G@ben
addikt
Erre valami tipp?
Amit ma letölthetsz, ne halaszd holnapra!
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 Sub
Ez 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.
Bámulatos hol tart már a tudomány!
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ó!!
[ Szerkesztve ]
Bámulatos hol tart már a tudomány!
Delila_1
Topikgazda
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
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
Jarod1
addikt
ü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!
m.zmrzlina
senior tag
"A" oszlopban vannak az értékek A1-től lefelé, B2 képlete a szl=(szé/a)*100 összefüggés alapján
szl>százalékláb
szé>százalék érték
a>alap
=((A2-A1)/A1)*100
[ Szerkesztve ]
Jarod1
addikt
Köszi!
m.zmrzlina
senior tag
Nincs mit.
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...
LG Optimus Black => LG Optimus 4X HD => LG G2 32Gb => LG G5 Titan => Samsung S8 => Huawei P20 Pro => Huawei P30 Pro => Huawei P40 Pro => Honor Magic 4 Pro=> A tűzoltó nem azért rohan be az égő házba, mert rettenthetetlen, hanem mert az elhivatottsága erősebb a félelménél. John C. Maxwell
slashing
senior tag
É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 Sub
Ami 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...
G@ben
addikt
Ki fogom próbálni, köszi!
#24540 Delila_1: ezt el szeretném kerülni, mert közel 1000 mappáról van szó.
[ Szerkesztve ]
Amit ma letölthetsz, ne halaszd holnapra!
firemanus82
senior tag
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.
[ Szerkesztve ]
LG Optimus Black => LG Optimus 4X HD => LG G2 32Gb => LG G5 Titan => Samsung S8 => Huawei P20 Pro => Huawei P30 Pro => Huawei P40 Pro => Honor Magic 4 Pro=> A tűzoltó nem azért rohan be az égő házba, mert rettenthetetlen, hanem mert az elhivatottsága erősebb a félelménél. John C. Maxwell
(#24549) firemanus82 válasza firemanus82 (#24548) üzenetére
firemanus82
senior tag
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...
LG Optimus Black => LG Optimus 4X HD => LG G2 32Gb => LG G5 Titan => Samsung S8 => Huawei P20 Pro => Huawei P30 Pro => Huawei P40 Pro => Honor Magic 4 Pro=> A tűzoltó nem azért rohan be az égő házba, mert rettenthetetlen, hanem mert az elhivatottsága erősebb a félelménél. John C. Maxwell
slashing
senior tag
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
[ Szerkesztve ]