Hirdetés

2024. április 30., kedd

Gyorskeresés

Útvonal

Fórumok  »  OS, alkalmazások  »  Microsoft Excel topic (kiemelt téma)

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-11-13 08:31:56

LOGOUT.hu

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.

Összefoglaló kinyitása ▼

Hozzászólások

(#24501) szix96


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 ]

(#24502) Thrawnad válasza Delila_1 (#24497) üzenetére


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...

(#24503) Thrawnad válasza Thrawnad (#24502) üzenetére


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...

(#24504) Soulfly842


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!

(#24505) Fferi50 válasza szix96 (#24501) üzenetére


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.

(#24506) Fferi50 válasza Thrawnad (#24503) üzenetére


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.

(#24507) szix96 válasza Fferi50 (#24506) üzenetére


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.:R :R

[ Szerkesztve ]

(#24508) tombar válasza m.zmrzlina (#24490) üzenetére


tombar
senior tag

köszönöm szépen :)

Everybody knows, you dance like you fuck. So let me see you dance!

(#24509) lumpy92


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"

(#24510) slashing válasza lumpy92 (#24509) üzenetére


slashing
senior tag

egy próbát megér hátha:

Application.DisplayAlerts = False

a másikra nincs ötletem...

[ Szerkesztve ]

(#24511) lumpy92 válasza slashing (#24510) üzenetére


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"

(#24512) lumpy92


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

:DDD

"never send to know for whom the bells tolls; it tolls for thee"

(#24513) slashing válasza lumpy92 (#24512) üzenetére


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 :F

(#24514) lumpy92 válasza lumpy92 (#24512) üzenetére


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"

(#24515) slashing


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

(#24516) lumpy92 válasza slashing (#24515) üzenetére


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"

(#24517) slashing válasza lumpy92 (#24516) üzenetére


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...

(#24518) lumpy92 válasza slashing (#24517) üzenetére


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 ! :R

"never send to know for whom the bells tolls; it tolls for thee"

(#24519) slashing válasza lumpy92 (#24518) üzenetére


slashing
senior tag

Nincs mit. Szívesen....

(#24520) slashing


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 :W

(#24521) slashing válasza slashing (#24520) üzenetére


slashing
senior tag

:DD
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 :Y :W :))

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

(#24522) Musuz


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. :F
remélem érthetően írtam le a problémát és tud vki segíteni.köszi.

(#24523) slashing válasza Musuz (#24522) üzenetére


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)

(#24524) Musuz válasza slashing (#24523) üzenetére


Musuz
csendes tag

Hali

Ezek szerint jó helyen kapirgáltam,csak épp nem szúrta ki a szemem. :F

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. :R :R :R

Kedves egészségedre !

(#24525) Mr.Csizmás


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 |

(#24526) slashing válasza Mr.Csizmás (#24525) üzenetére


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)

(#24527) Mr.Csizmás válasza slashing (#24526) üzenetére


Mr.Csizmás
félisten

műxik, köszönöm! :R

"Szólítson csak Cirminek." | B&B XI | 3D nyomtatás Bp és környéke |

(#24528) G@ben


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 ]

(#24530) Fferi50 válasza Soulfly842 (#24529) üzenetére


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.

(#24531) MC Pite


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 :B

<ELADÓ: Pixel8HibridTok> Pixel 8 | C4 SpaceTourer 1.2 Pt '18 | 208 1.2VTi '18 | https://www.spritmonitor.de/en/user/MC_Pite.html

(#24532) Fferi50 válasza MC Pite (#24531) üzenetére


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 ]

(#24533) MC Pite válasza Fferi50 (#24532) üzenetére


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 :R

<ELADÓ: Pixel8HibridTok> Pixel 8 | C4 SpaceTourer 1.2 Pt '18 | 208 1.2VTi '18 | https://www.spritmonitor.de/en/user/MC_Pite.html

(#24534) slashing


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 ]

(#24535) MC Pite válasza Fferi50 (#24532) üzenetére


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. :B

<ELADÓ: Pixel8HibridTok> Pixel 8 | C4 SpaceTourer 1.2 Pt '18 | 208 1.2VTi '18 | https://www.spritmonitor.de/en/user/MC_Pite.html

(#24536) Fferi50 válasza MC Pite (#24535) üzenetére


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 ]

(#24537) G@ben válasza G@ben (#24528) üzenetére


G@ben
addikt

Erre valami tipp?

Amit ma letölthetsz, ne halaszd holnapra!

(#24538) lappy válasza G@ben (#24537) üzenetére


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!

(#24539) lappy válasza lappy (#24538) üzenetére


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ó!! :DD

[ Szerkesztve ]

Bámulatos hol tart már a tudomány!

(#24540) Delila_1 válasza G@ben (#24537) üzenetére


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.

(#24541) Jarod1


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!

(#24542) m.zmrzlina válasza Jarod1 (#24541) üzenetére


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 ]

(#24543) Jarod1 válasza m.zmrzlina (#24542) üzenetére


Jarod1
addikt

Köszi!

(#24544) m.zmrzlina válasza Jarod1 (#24543) üzenetére


m.zmrzlina
senior tag

Nincs mit. :)

(#24545) firemanus82


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... :F :R

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

(#24546) slashing válasza firemanus82 (#24545) üzenetére


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...

(#24547) G@ben válasza lappy (#24539) üzenetére


G@ben
addikt

Ki fogom próbálni, köszi! :R

#24540 Delila_1: ezt el szeretném kerülni, mert közel 1000 mappáról van szó. :B

[ Szerkesztve ]

Amit ma letölthetsz, ne halaszd holnapra!

(#24548) firemanus82 válasza slashing (#24546) üzenetére


firemanus82
senior tag

Nagyon köszönöm. :R

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

(#24550) slashing válasza firemanus82 (#24549) üzenetére


slashing
senior tag

Itt egy variáció nem a legszebb de kiindulásnak jó. Sajnos nincs rá több időm:

[link]

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 :C :DD :DD

[ Szerkesztve ]

Útvonal

Fórumok  »  OS, alkalmazások  »  Microsoft Excel topic (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.