- Zeneszerkesztő és DJ topic
- Milyen széket vegyek?
- Amlogic S905, S912 processzoros készülékek
- 16 GB RAM 2025-ben? 🤨 – Ma már tényleg kevés lehet!
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- AMD vs. INTEL vs. NVIDIA
- HiFi műszaki szemmel - sztereó hangrendszerek
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Fejhallgató erősítő és DAC topik
- Milyen billentyűzetet vegyek?
-
PROHARDVER!
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
d@minator #37699 üzenetére
Szia!
"de ha beszínezek valamit nem változik semmi csak az újraszámolásra rányomva."
Pontosan ezt mondja a makróhoz fűzött kiegészítés:
"Note: If after applying the above mentioned VBA code you would need to color a few more cells manually, the sum and count of the colored cells won't get recalculated automatically to reflect the changes. Please don't be angry with us, this is not a bug of the code : )
In fact, it is the normal behavior of all Excel macros, VBA scripts and User-Defined Functions. The point is that all such functions are called with a change of a worksheet's data only and Excel does not perceive changing the font color or cell color as a data change. So, after coloring cells manually, simply place the cursor to any cell and press F2 and Enter, the sum and count will get updated. The same applies to the other macros you will find further in this article. "
Nincs más hátra, mint előre, mindig újra kell számoltatnod a színezés után, mert az Excelnek nincs a színváltozást érzékelő eseménye.
Üdv.
-
d@minator
addikt
Hi! Megcsináltam ezt: [link] és működik de ha beszínezek valamit nem változik semmi csak az újraszámolásra rányomva. Hogyan lehet megoldani, hogy a cellaszín változására is működjön vagy pedig az újraszámolás automatikus és gyakori legyen? Az autó újraszámolás be van kapcsolva.
Nem értek hozzá ez az első ilyenem. -
RAiN91
őstag
-
#62169858
törölt tag
HAHIBA(INDEX($E$7:$E$24;HOL.VAN(SEGÉDLET!$A$33;SEGÉDLET!AG7:AG24;0)-1;1);"")
Eddig így működött, azaz működik is.
Ami a lényeg, hogy a $A$33 cellában van egy szám, amit nagyon jól működően kezel is.
De most a használat közben kiderült, hogy kellene még egy szám és kezelje azt is azaz vegye figyelembe.
Ezért létre hoztam egy általam másik figyelt számot, amit itt keressen,
$A$31Ha értenék hozzá pontosabban írnám le, tudom ez így nem jó, de valami ilyesmire gondoltam:
HAHIBA(INDEX($E$7:$E$24;HOL.VAN(SEGÉDLET!$A$33 ÉS $A$31;SEGÉDLET!AG7:AG24;0)-1;1);"")
Tehát a kérdésedre a válaszom: És
-
#62169858
törölt tag
Itt a fórumon egy segítőtől kaptam ezt a kódot. Működik is jól
=HAHIBA(INDEX($E$7:$E$24;HOL.VAN(SEGÉDLET!$A$33;SEGÉDLET!AG7:AG24;0)-1;1);"")
Ahol a $A$33 van ott egy szám található és nekem ezt kellett kerestetnem.
Bele lehet ebbe írni, még egy keresést? hogy, ezt is keresse $A$34 -
tzimash
őstag
Van ez a for ciklus:
For sor = usor To 2 Step -1
If Cells(sor, "H").Value = "C" And Cells(sor, "J").Value < "30" Then
Rows(sor).Delete Shift:=xlUp
End If
NextSzépen törli azokat a sorokat, ahol H oszlopban a cella értéke "C" és a J oszlopban a cella értéke kisebb, mint 30, ha 31 vagy nagyobb, akkor a sorokat meghagyja, egészen 99-ig. Ha a J oszlopban a cella értéke 100 vagy annál nagyobb, akkor megint törli a sorokat...
Miért megy be ekkor a ciklusmagba az istenadta? -
#62169858
törölt tag
Excel 2016
Üdv! Segítséget szeretnék, mint kezdő Excel felhasználó, Excel 2016 táblázat ügyben.
Megpróbálom röviden és érthetően írni a kérésemet.Munka1 lapon A1-A200-ig nevek vannak.
Azt kellene megoldanom, hogy a Munka2 lapon F5-ös cellából tudjam ezeket a neveket lista szerűen kiválasztani, de kiválasztás után a Munka2 B5-ös cellában jelenjen meg amit, kiválasztok nevet.
És ami fontos, hogy a Munka2 lapon B5-ös cellába nem lehet semmi függvény, képlet.
Előre is köszönöm. -
Delila_1
veterán
válasz
tzimash #37680 üzenetére
Nem kellenek gombok, elég egy, a laphoz rendelt makró.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim oszlop As Long, sor As Long, B, C, E, F, I
sor = Selection.Row
Range("A1").CurrentRegion.Interior.Color = xlNone
Range("A" & sor & ":I" & sor).Interior.Color = vbYellow
B = Cells(sor, "B")
C = Cells(sor, "C")
E = Cells(sor, "E")
F = Cells(sor, "F")
I = Cells(sor, "I")
MsgBox B & vbLf & C & vbLf & E & vbLf & F & vbLf & I
End SubAz üzenet (Msgbox) helyett műveleteket végezhetsz az aktív sor celláinak az értékével.
-
tzimash
őstag
Hali,
a gombokat így generáltam:
Dim btn As Button
Dim t As Range
usor = Range("A" & Rows.Count).End(xlUp).Row
For sor = 2 To usor Step 1
Set t = ActiveSheet.Range(Cells(sor, 10), Cells(sor, 10))
Set btn = ActiveSheet.Buttons.Add(t.Left, t.Top, t.Width, t.Height)
With btn
.Name = "btn" & sor
.Caption = "Könyvel"
.OnAction = "button_check"
End With
Next sorAzt szeretném, ha a gombra kattintva az adott sorból egy-egy változóba írná a mondjuk a B, C, E, F és I, cellák értékét.
Pl, ha az 5. sorban lévő gombra (btn5) kattintok, akkor a B5, C5, E5, F5, I5 cellák értékét szeretném megkapni.
Ez megoldható?
Hogyan nézne ki az a button_check sub?ill. még az is tervben van, hogy ha egy gomb fölé viszem az egeret, akkor az adott sorban lévő cellák hátterének színe A-I-ig megváltozzon. Ilyet lehet VBA-ban?
-
bexinho23
őstag
Üdv!
Elég nagy problémám akadt az excellel. Van egy általam készített, elég jól összerakott költségvetési táblázat, amit édesanyámnak is (leegyszerűsítve) átadtam a laptopjára még 2017 januárjában. Azóta minden egyes nap becsületesen vezeti a be-, illetve kiadásait. Viszont tegnap, amikor az asztalán lévő parancsikonból megnyitotta volna a fájlt, azt vette észre, hogy a bevétel és kiadás oldalon csak 2017 november vége van, nem pedig a friss dátumos rögzítések. Google-ben, youtube-on, külföldi fórumokon már nézelődtem, de kifogott rajtam az eredeti állapot visszaállítása, ezért kérnem a segítségeteket.
Amit tudni kell:
Asztalon van egy parancsikon, aminek az eredeti fájlja a merevlemezen található a Google Drive mappában. A Google Drive online webfelületéről le tudtam tölteni egy "~$havi költségvetés - Anya.xlsx" nevezetű, 165 byte méretű fájlt, ami ha jól sejtem a drive-nak egy backup-olása, mivel a (drive online) kukában minden egyes napra visszamenőleg van egy ugyanilyen fájl.
Ezt a fájlt letöltöttem, és bemásoltam a merevlemezen a következő helyre:
"c:\Users\Anya\AppData\Roaming\Microsoft\Excel\"Az eredeti fájlt pedig:
"c:\Users\Anya\Documents\"Az Excel 2007-ben a biztonsági mentésnél ezek a mappák vannak megadva.
Amit próbáltam: fájl elindít, folyamatkezelőből kilövöm. Megnyitom újra, ekkor felajánl egy korábbi mentést, de nem az feladatkezelőből kilövés pillanatában keletkezett állapotot hozza vissza, nem pedig amit szeretnék.
Remélem érthetően írtam le, és sikerül megoldást találni. Mert nagyon rossz lenne, ha az elmúlt hónapok kútba esnének.
u.i.: Fogalmam sincs, hogy alakulhatott így, hiszen én 2014 óta vezetek ugyanígy egy táblázatot, amit a dropbox-szal szinkronizáltatok, és sosem volt ilyen problémám. Ráadásul én telefonon keresztül a dropboxos megnyitásból is módosítom a fájlt, illetve a laptopomról is a dropbox mappában...
-
modflow
veterán
A segítségeteket szeretném kérni. Egy nagy mátrixot kellene készítenem, de a cellák így totál olvashatatlanok lennének. Hogy lehetne azt megoldani, hogy a cellák tartalmát akkor mutassa tejles mértékben, ha felé viszem az egeret, vagy ha rákattintok??
-
Fferi50
Topikgazda
válasz
p5quser #37673 üzenetére
Szia!
'Mint írtam, van működő kód, csak nem értem ezt az előjel váltást, és érdekelt, hogy mi nyűgje lehet.'
Ezek szerint amit leírtál kód, az mégsem működik megfelelően. Sajnos így látatlanban nem tudom megmondani, mi lehet a probléma. A kódnak elvileg jól kellene működnie.
Talán elküldhetnéd privátban.
Üdv.
-
Fferi50
Topikgazda
Szia!
A beállítások, menüszalag testreszabása - minden parancs - szövegfájlból parancsot másold át a menüszalagra - új lap - új csoport ide tudod betenni.
Utána az új lapon megtalálod.Ha ezzel nem menne, akkor makró.
Sub megnyito()
Workbooks.OpenText "Fájlnév", DataType:=xlDelimited, semicolon:=True
End SubAlt+F11
Insert - Module
utána a fenti bemásolása.Üdv.
-
Fferi50
Topikgazda
Szia!
Jobb lett volna látni az eredeti csv fájlban szereplő sort.
Most úgy gondolom, hogy a delimiter az egyikben biztosan pontosvessző (amit munkafüzet1 néven tettél fel), az Workbooks.OpenText metódussal kell megnyitnod, a semicolon paraméter=True értékkel.
A másiknál nem tudom, mi a határoló, de próbálgasd azt is az előző metódussal és a határoló paramétereinek változtatásával.Üdv.
-
mutyi
senior tag
válasz
Fferi50 #37663 üzenetére
Kimásoltam mind a két csv file első sorát és létrehoztam 1-1 új dokumentumot, majd csv-be mentettem.
A helyzet ugyanaz, tehát épp ellenkezőleg jó a két doksi,hogy google sheet-et használok vagy ms excel 2016-ot.https://drive.google.com/open?id=1FlFzJYzWje9zobVg0XLCA4JMGYXPwzydTfQy_SIOWIo
https://drive.google.com/open?id=1Y47qJ_6ZOWxRviPMHGJeajxaTg-61l10LWach2DakgU -
p5quser
tag
válasz
Fferi50 #37664 üzenetére
Sub SearchFolders()
'UpdatebyKutoolsforExcel20151202
Dim xFso As Object
Dim xFld As Object
Dim xStrSearch As String
Dim xStrPath As String
Dim xStrFile As String
Dim xOut As Worksheet
Dim xWb As Workbook
Dim xWk As Worksheet
Dim xRow As Long
Dim xFound As Range
Dim xStrAddress As String
Dim xFileDialog As FileDialog
Dim xUpdate As Boolean
Dim xCount As Long
On Error GoTo ErrHandler
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a forlder"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
xStrSearch = "KTE"
xUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
Set xOut = Worksheets.Add
xRow = 1
With xOut
.Cells(xRow, 1) = "Workbook"
.Cells(xRow, 2) = "Worksheet"
.Cells(xRow, 3) = "Cell"
.Cells(xRow, 4) = "Text in Cell"
Set xFso = CreateObject("Scripting.FileSystemObject")
Set xFld = xFso.GetFolder(xStrPath)
xStrFile = Dir(xStrPath & "\*.xls*")
Do While xStrFile <> ""
Set xWb = Workbooks.Open(Filename:=xStrPath & "\" & xStrFile, UpdateLinks:=0, ReadOnly:=True, AddToMRU:=False)
For Each xWk In xWb.Worksheets
Set xFound = xWk.UsedRange.Find(xStrSearch)
If Not xFound Is Nothing Then
xStrAddress = xFound.Address
End If
Do
If xFound Is Nothing Then
Exit Do
Else
xCount = xCount + 1
xRow = xRow + 1
.Cells(xRow, 1) = xWb.Name
.Cells(xRow, 2) = xWk.Name
.Cells(xRow, 3) = xFound.Address
.Cells(xRow, 4) = xFound.Value
End If
Set xFound = xWk.Cells.FindNext(After:=xFound)
Loop While xStrAddress <> xFound.Address
Next
xWb.Close (False)
xStrFile = Dir
Loop
.Columns("A:D").EntireColumn.AutoFit
End With
MsgBox xCount & "cells have been found", , "Kutools for Excel"
ExitHandler:
Set xOut = Nothing
Set xWk = Nothing
Set xWb = Nothing
Set xFld = Nothing
Set xFso = Nothing
Application.ScreenUpdating = xUpdate
Exit Sub
ErrHandler:
MsgBox Err.Description, vbExclamation
Resume ExitHandler
End SubEbből a szösszenetből lett plasztikázva.
Köszönöm a segítséget! -
mutyi
senior tag
Van két csv file, az egyiket a disztribútor adja, a másikat a a magento rendszerből exportálom ki.
Miért van az, hogy a magentobol kiexportált csv file a google sheets-ben jelenik meg olvashatóan, az oszlokpok a helyükön vannak, de ugyanez a file a ms excel 2016-ban átláthatatlan.
És ugyanez fordítva. A disztribútortól kapott file meg ellenkezőleg, azaz a google sheets-ben rendezett és olvasható, átlátható, viszont az ms excel 2016-ban össze vissza van.A másik kérdésem az lenne, hogy ha valaki importál már magento rendszerbe, akkor hogyan kell kivitelezni azt, hogy ha különbözőek az attribútum nevek, akkor a disztribútor által használt nevek jó oszlopokba kerüljenek a magentobol ki exportált attribútumok oszlopaiba?
-
Pakliman
tag
válasz
twingos #37659 üzenetére
Szia!
Én létrehoztam egy új munkafüzetet.
Abban létrehoztam 25 munkalapot (a neveik sorban: Munka1, Munka2, stb. Munka25)
AzIf Mid(ws.Name, 6) >= 1 And Mid(ws.Name, 6) <= 20 Then
sor ezeknek a neveknek megfelelően ellenőriz. Ha nálad nem ezek a nevek vannak (gyanítom), akkor más szisztéma szerint kell megtalálnod, hogy az a munkalap kell-e neked (Pl.: egy
Select Case
válogatás).
Szerintem itt lesz a gond egyébként
Ha leírod a figyelendő munkalapok neveit, akkor tudok többet segíteni.A munkalapok kijelölését azért nem láthatod, mert egyrészt "gyors" a program, másrészt pedig a progi végén visszaállítom az eredetileg aktív (
Set wsA = ActiveSheet
) munkalapot (wsA.Select
). -
Pakliman
tag
válasz
Fferi50 #37657 üzenetére
Ez igaz.
Viszont mivel az "I3 cella értéke nullánál nagyobb" meghatározás számot feltételez, ezért valójában inkább még egy ellenőrzést kellene beépíteni:If IsNumeric(Ws.Range("I3")) then
.
Mivel lehet ott egy éppen hibát jelző függvény is.
Sajnos az "egyszerűsítés" nálam nem mindig működik, sokszor futok (időnként rejtett) hibára -
Pakliman
tag
válasz
twingos #37653 üzenetére
Szia!
Egy lehetséges megoldás...
Public Sub qa()
Dim wsA As Worksheet: Set wsA = ActiveSheet
Dim wsArr
Dim wsDb As Integer
Dim ws As Worksheet
ReDim wsArr(0 To 0)
'Van egy táblázatom, ami 25 sheet-et tartalmaz. Nekem csak a 1-től 20. oldalig fontosak...
For Each ws In Worksheets
If Mid(ws.Name, 6) >= 1 And Mid(ws.Name, 6) <= 20 Then 'itt kell azonosítani a munkalapot, hogy kell-e egyáltalán
'ha az I3-as cella értéke nem üres...
If Not IsEmpty(ws.Range("I3")) Then
'... és nullánál nagyobb...
If ws.Range("I3") > 0 Then
wsDb = wsDb + 1
ReDim Preserve wsArr(1 To wsDb)
wsArr(wsDb) = ws.Name
End If
End If
End If
Next ws
If wsDb > 0 Then
Sheets(wsArr).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="d:\Ez az új.pdf"
End If
wsA.Select
End Sub -
p5quser
tag
válasz
Fferi50 #37652 üzenetére
Üdv!
Nem teljesen világos, hová kéne beszúrnom a copy parancsot. Ahová raktam, ott range copy metódus hibával elszállt.
Most így néz ki a script jelenleg, de így "előjeltelen"Private Sub CommandButton1_Click()
Dim xFso As Object
Dim xFld As Object
Dim xStrSearch As String
Dim xStrPath As String
Dim xStrFile As String
Dim xOut As Worksheet
Dim xWb As Workbook
Dim xWk As Worksheet
Dim xRow As Long
Dim xFound As Range
Dim xStrAddress As String
Dim xFileDialog As FileDialog
Dim xUpdate As Boolean
Dim xCount As Long
On Error GoTo ErrHandler
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a forlder"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
xStrSearch = "elszámol"
xUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
Set xOut = Worksheets.Add
xRow = 1
With xOut
.Cells(xRow, 1) = "Munkafüzet"
.Cells(xRow, 2) = "Munkalap"
.Cells(xRow, 3) = "Cella"
.Cells(xRow, 4) = "Találat"
.Cells(xRow, 5) = "Név"
.Cells(xRow, 6) = "Összeg"
Set xFso = CreateObject("Scripting.FileSystemObject")
Set xFld = xFso.GetFolder(xStrPath)
xStrFile = Dir(xStrPath & "\*.xls*")
Do While xStrFile <> ""
Set xWb = Workbooks.Open(Filename:=xStrPath & "\" & xStrFile, UpdateLinks:=0, ReadOnly:=True, AddToMRU:=False)
For Each xWk In xWb.Worksheets
Set xFound = xWk.UsedRange.Find(xStrSearch)
Set xFn = xWk.UsedRange.Find(xStrSearch)
If Not xFound Is Nothing Then
xStrAddress = xFound.Address
xNev = xFound.Offset(0, -1).Value
xOssz = xFound.Offset(0, 1).Value
End If
Do
If xFound Is Nothing Then
Exit Do
Else
xCount = xCount + 1
xRow = xRow + 1
.Cells(xRow, 1) = xWb.Name
.Cells(xRow, 2) = xWk.Name
.Cells(xRow, 3) = xFound.Address
.Cells(xRow, 4) = xFound.Value
.Cells(xRow, 5) = xNev
.Cells(xRow, 6) = xOssz
End If
Set xFound = xWk.Cells.FindNext(After:=xFound)
Loop While xStrAddress <> xFound.Address
Next
xWb.Close (False)
xStrFile = Dir
Loop
.Columns("A:F").EntireColumn.AutoFit
End With
MsgBox xCount & " egyezést találtam", , "Elszámolósdi"
ExitHandler:
Set xOut = Nothing
Set xWk = Nothing
Set xWb = Nothing
Set xFld = Nothing
Set xFso = Nothing
Application.ScreenUpdating = xUpdate
Exit Sub
ErrHandler:
MsgBox Err.Description, vbExclamation
Resume ExitHandler
End SubKöszönöm!
-
twingos
tag
Sziasztok,
Segítséget szeretnék kérni.
Van egy táblázatom, ami 25 sheet-et tartalmaz. Nekem csak a 1-től 20. oldalig fontosak , a többin más adatok vannak és nem szeretném menteni pdf-be.
Macróval hogyan tudom megoldani, hogy jelölje ki azokat az oldalakat (1es és 20as sheet között) ahol az I3-as cella értéke nem üres és nullánál nagyobb. Ezeket mentse pdf-be.
A pdf mentést meg tudtam oldani, de csak úgy, hogy minden oldalt kijelöl (1-től 20ig) és úgy menti. Viszont előbbi esztétikusabb lenne, nem lennének üres oldalak.A hozzáértőknek biztos, hogy pár perc, én viszont elakadtam.
Köszönöm az építő jellegű segítséget.
üdv
twingos -
Fferi50
Topikgazda
válasz
RAiN91 #37649 üzenetére
Szia!
Rendszer beépített lehetőséget nem tudok rá. Viszont minden makró elejére beírhatod, hogy egy cellába beírjon egy szöveget, csak a makró végén ne felejtsd el kitörölni.
Vagy az állapotsort is felhasználhatod a futás jelzésére:Application.Statusbar=Szöveg ' hosszabb programok, ciklusok esetén itt szoktam kijelezni, hol tartunk éppen
Futás közben bármikor átírhatod különböző szövegekkel.
A futás végén pedig:Application.Statusbar=False ' ez visszadja a vezérlést a VBA-nak
Üdv.
-
scott_free
senior tag
válasz
scott_free #37639 üzenetére
Végül megtaláltam a választ rá, hátha másnak is hasznos:
Application.Calculation = xlCalculationManual
‘Place your macro code here
Application.Calculation = xlCalculationAutomaticÍgy most 10 perc helyett 10 másodperc alatt végez!
-
RAiN91
őstag
Sziasztok
Valamelyik excel cellába ki lehet jelezni, hogy épp fut-e a VBA-ban akármelyik macró?
-
#62169858
törölt tag
válasz
Delila_1 #37647 üzenetére
Köszönöm, mindjárt kipróbálom amit írtál.
De már megírtam azt amire én jutottam, és elküldöm neked.
Ebben csak az a gond, hogy nem tudom megoldani, hogy külön kezelje a nappalokat (N) és az éjszakákat (É)Én eddig erre jutottam,
=(INDEX($B$1:$B$10;HOL.VAN(5;$D$1:$D$10;0)))
Természetesen a "=HIBA" is benne volt. -
#62169858
törölt tag
válasz
Delila_1 #37645 üzenetére
Tehát,
B oszlop = Nevek
C oszlop, N = Nappal, É = Éjszaka,Pl,: Józsi: "N" Nappal dolgozik "6" órát, "É" Éjszaka dolgozik "6" órát,
Pl.: Béla: "N" Nappal dolgozik "5" órát
Pl.: Tamás "É" Éjszaka dolgozik "5" órát.Igen, Kicsit félre érthetően írtam, így helyesbítem, az "5-ös" szám nem fog szerepelni 2x mondjuk más névnél "N" nappal és nem fog szerepelni "É" éjszaka sem.
A "D11"-es cellába kellene kiíratni ki dolgozik "N" nappal akire az 5 órás adat van megadva.
És a "D12"-es cellába kellene kiíratni ki dolgozik "É" éjszaka akire az 5 órás adat van megadva.
Az összes többi név és óra szám nem lényeges.Vannak napok majd amikor más óra szám "5" lesz a mérvadó, de akkor a függvényt átírjuk arra a számra, de ez későbbi terv.
Most 5 órás nevet keresünk.Így talán érthetőbb az írásom.
Köszönöm, hogy segítetek.Annyi kiegészítés, hogy tudom kicsi a "D11" és "D12" es cella, de egy másik munkalap, meg ebből a 2 cellából olvassa ki az ott lévő nevet.
-
#62169858
törölt tag
Üdv! Megoldást keresek egy (Excel 2016) táblázat napi kimutatásához.
Példa a mellékelt képernyőfotón jól látható.
Itt a megoldásnak annak kellene lenni, hogy a D11-es cellába Béla a D12-es cellába Tamás név szerepeljen.
Tehát egy függvény keresse meg hol szerepel az általam megadott szám, jelen esetben 5-ös és annak a nevét írja ki. Egy napon egy táblázatban soha nem szerepel többszőr az 5-ös, így nem gond, ha az első megtalált 5-ös szám melletti nevet írja ki. Az FKERES-el próbálkoztam, de nem tudtam megoldani, hogy minden második sort vegye csak figyelembe a keresésénél.
Aki tudna rá megoldást írna nekem egy pontos függvényt?
Kezdő vagyok, nem szégyellem. -
d@minator
addikt
Sziasztok! Milyen programban lehet azt megcsinálni, hogy egy magyar szavakból álló lista bármelyik elemére ráviszem az egeret akkor megjelenjen a szó angolul? Természetesen az angol szavakat magam tölteném fel hozzá egyenként. Jelenleg MS word-ben van a lista négy hasábban de az Excelt jobban szeretem. Valamelyikben lehet csinálni valami ilyesmit?
Végső esetben MobiMouse lesz de az több jelentést is kiad. -
scott_free
senior tag
Sziasztok,
van egy vba-makróm, ami cellákba ír be képleteket (az oszlopoknak megfelelő kódokkal) - normális az, hogy 100 cellával kb. 10 percig szöszmötöl? (6 magos procival, Excel 2016)
Vagy esetleg én írtam vmit rosszul?Ez a vba-rész csinálja:
Application.AutoCorrect.AutoFillFormulasInLists = False
For k = 99 To 135 Step 3
If k < 121 Then
aWs.Cells(aRow, 9 + k).Formula = "=IFERROR(ROUND($G" & aRow & "*D" & Chr(k - 30) & aRow & ",2),"" "")"
Else
aWs.Cells(aRow, 9 + k).Formula = "=IFERROR(ROUND($G" & aRow & "*E" & Chr(k - 56) & aRow & ",2),"" "")"
End If
str = aWs.Cells(2, 10 + k).Value
aWs.Cells(aRow, 10 + k).Formula = "=INDEX(a.sz[" & str & "]," & j & ")"
Next kMitől lehet ilyen lassú?
-
Delila_1
veterán
-
p5quser
tag
válasz
Delila_1 #37636 üzenetére
Üdv!
Azt értem, hogy helyrehozni hogyan kell, csak azt nem értem, ha az eredeti érték mínusz előjelű, miért az abszolut értéket adja vissza. Konkrétan a nyitó kérdésben elhelyezett szkriptet is sikerült működésre bírni, az;xNev = xFound.Offset(0, -1).Value
xOssz = xFound.Offset(0, 1).Value
offsetes megoldással. Most már berakja a nevet is, összeget is, csak az összegnél nem veszi figyelembe az előjelet.
Mivel a tiéd jól működik, ezért a puszta érdeklődés vezérel. -
tzimash
őstag
Sziasztok,
Van egy excelből futó SAP scriptem, aminek eredménye egy új excel fájl, amiben az eredeti fájlból futó makró segítségével szeretnék ügyködni.
A gondom az, hogy amíg a teljes makró le nem fut, addig a SAP-ból letöltött fájl nem nyílik meg.
Pedig az egyik sub végén van a fájl letöltése és egy hívás a másik subra, amiben már a letöltött fájlra mutató hivatkozások vannak, csak az még nem nyílt meg sajnos.
Van erre megoldás, hogy ne kelljen megállítanom a teljes programot?Először azt hittem, hogy csak várnom kell, mert idő kell mire megnyílik, de nem ez a baj, ha a letöltés után azonnal vége a makrónak, tehát nem hívom a másik subot, akkor azonnal megnyílik.
-
Delila_1
veterán
válasz
p5quser #37629 üzenetére
Sorban megnyitod egy mappa adatait. Az egyes füzetek megnyitása után hívd meg ezt a makrót.
Sub Kigyujtes()
'B oszlopban szűrünk az "elszámolás" szóra.
'A szűrt adatok közül a szűrés előtti, a szűrt oszlop, és a szűrés utáni oszlop
'adatait másoljuk az Összesítés lap első üres sorába, a lap B oszlopától kezdve.
'Az Összesítő A oszlopába beírjuk a lap nevét, ahonnan másoltunk. Megszüntetjük a szűrést.
'Az Összesítő az utolsó lap a füzetben.
Dim lap As Integer, innen As Long, eddig As Long, WSO As Worksheet
Set WSO = Sheets("Összesítés")
Application.ScreenUpdating = False
For lap = 1 To Sheets.Count - 1
Sheets(lap).Activate
Range("$A:$F").AutoFilter Field:=2, Criteria1:="elszámolás"
Range(Cells(2, 1), Cells(10000, 3)).SpecialCells(xlCellTypeVisible).Copy
innen = WSO.Range("B" & Rows.Count).End(xlUp).Row + 1
WSO.Range("B" & innen).PasteSpecial xlPasteValues
eddig = WSO.Range("B" & Rows.Count).End(xlUp).Row
WSO.Range("A" & innen & ":A" & eddig) = ActiveSheet.Name
Range("$A:$F").AutoFilter Field:=2
Next
WSO.Activate: Range("A2").Select
Application.ScreenUpdating = True
End SubBiztosan hozzá tudod idomítani a saját igényeidhez.
-
p5quser
tag
Sziasztok!
Ismét a segítségeteket kérném. Adott egy munkafüzet, a hónap napjaira bontott munkalapokkal. Ebben a munkafüzetben kellene rákeresnem az "elszámolás" szóra minden munkalapon, kilistáztatva a napot, az elszámolás szót, egy oszloppal a találat előtti értéket és egy oszloppal a találat utáni értéket.
Alább a script amit találtam, teszi a dolgát, csak nem tudom hogy irassam ki vele az eltolt oszlopok értékeit.Private Sub CommandButton1_Click()
Dim xFso As Object
Dim xFld As Object
Dim xStrSearch As String
Dim xStrPath As String
Dim xStrFile As String
Dim xOut As Worksheet
Dim xWb As Workbook
Dim xWk As Worksheet
Dim xRow As Long
Dim xFound As Range
Dim xStrAddress As String
Dim xFileDialog As FileDialog
Dim xUpdate As Boolean
Dim xCount As Long
On Error GoTo ErrHandler
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a forlder"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
xStrSearch = "elszámol"
xUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
Set xOut = Worksheets.Add
xRow = 1
With xOut
.Cells(xRow, 1) = "Workbook"
.Cells(xRow, 2) = "Worksheet"
.Cells(xRow, 3) = "Cella"
.Cells(xRow, 4) = "Találat"
.Cells(xRow, 5) = "Összeg"
.Cells(xRow, 6) = "Név"
Set xFso = CreateObject("Scripting.FileSystemObject")
Set xFld = xFso.GetFolder(xStrPath)
xStrFile = Dir(xStrPath & "\*.xls*")
Do While xStrFile <> ""
Set xWb = Workbooks.Open(Filename:=xStrPath & "\" & xStrFile, UpdateLinks:=0, ReadOnly:=True, AddToMRU:=False)
For Each xWk In xWb.Worksheets
Set xFound = xWk.UsedRange.Find(xStrSearch)
If Not xFound Is Nothing Then
xStrAddress = xFound.Address
End If
Do
If xFound Is Nothing Then
Exit Do
Else
xCount = xCount + 1
xRow = xRow + 1
.Cells(xRow, 1) = xWb.Name
.Cells(xRow, 2) = xWk.Name
.Cells(xRow, 3) = xFound.Address
.Cells(xRow, 4) = xFound.Value
.Cells(xRow, 5) = xFound.Value
.Cells(xRow, 6) = xFound.Value
End If
Set xFound = xWk.Cells.FindNext(After:=xFound)
Loop While xStrAddress <> xFound.Address
Next
xWb.Close (False)
xStrFile = Dir
Loop
.Columns("A:D").EntireColumn.AutoFit
End With
MsgBox xCount & " egyezést találtam", , "Elszámolós"
ExitHandler:
Set xOut = Nothing
Set xWk = Nothing
Set xWb = Nothing
Set xFld = Nothing
Set xFso = Nothing
Application.ScreenUpdating = xUpdate
Exit Sub
ErrHandler:
MsgBox Err.Description, vbExclamation
Resume ExitHandler
End SubEzeket szeretném megváltoztatni;
.Cells(xRow, 5) = xFound.Value (találat_oszlop -1, találat_sor)
.Cells(xRow, 6) = xFound.Value (találat_oszlop +1, találat_sor)
Előre is köszönöm! -
Oldman2
nagyúr
válasz
#05304832 #37620 üzenetére
Köszi, most néztem meg. Volt egy olyan érzésem, hogy a Pivot tábla lesz az egyik kérdésemre a megoldás.
Azonban nyitva maradt egy kérdés, hogyan tudom pl. a különböző kiadás/bevétel típusokat (és mást is, pl. a fizetés módját) egy könnyen bővíthető menüből a tételes adatok feltöltése közben kiválasztani?
-
huan
őstag
Sziasztok!
Késztettem egy diagramot excel-ben, amit át kell másolnom word-be, amivel nincs is problémám.
Viszont szeretném a word-ben ezt a diagramot fektetve elhelyezni, azaz elfordítani 90-fokkal.
Hogyan lehet ezt megcsinálni? (azt az 1 oldalt sem szeretném fekvőre állítani, ahol a diagram lenne) -
Marvinyo
aktív tag
válasz
Marvinyo #37599 üzenetére
Ez a megoldás majdnem jól működik, de a következő helyzetben alul marad:
Szeretném ha a bevételt illetve kiadást havonta kéne vezetni, külön sheet-en. Legalábbis én így látom kényelmesnek. Na, az "alap" pivot táblát sehogy nem bírtam rávenni, hogy két külön táblázatból vegyen adatokat.A "power pivot" add-innel ezt már sikerült megtenni, de a listázással bajok vannak. Minden egyes új oszlopot a másik táblából az előző alá rendel be. Így pl. a havi összesítésnél megjelenik minden hónap alatt minden másik hónap. (Minden januárhoz hozzárendeli a febr-december-t, majd minden február alatt a március-decembert, stb.stb.) Természetesen rossz adatokkal.
Hogyan lehetne ezt megoldani?
Vagy arra esetleg, hogy a hónapokhoz tartozó táblát automatikusan összefésülje egy 13. sheet táblájába? :-\ Legalábbis más ötletem nincs hirtelen, egy táblázattal gyönyörű szépen működik.
-
ny.janos
tag
válasz
Delila_1 #37619 üzenetére
Köszönöm, hogy foglalkoztál vele, már csak azért is, mert ha időközben nem jöttem volna rá, hogy hogyan használjam az INDIREKT függvényt, a megoldásod alapján biztosan megértettem volna (pedig már korábban is próbálkoztam vele, csak rosszul).
Nem sokkal a hozzászólásod előtt jöttem rá kettő lehetséges megoldásra is, amint azt látod eggyel a válaszod előtt.A MEDIÁN-os megoldásod sajnos nem jó esetemben, mert egy terméknek 3 vagy több időszaki ára is lehet, így eredményként nem jó az első vagy utolsó időszaki ár (lehet, hogy nem sikerült egyértelműen megfogalmazni a kérdésemet).
A te megoldásodban C13 cella értéke 499 (2017.01.31.), pedig a "Termék3"-nak nevezett termék ára 2017.01.01-től 624. Vagyis eredményként azt kell kapjam.
-
ny.janos
tag
Sajnos nem tudom, hogy mire gondolsz, de időközben rájöttem, hogy csak egy INDIREKT függvény hiányzik a képletemből és már működik is.
=FKERES(B2;INDIREKT(ÖSSZEFŰZ("$F$";HOL.VAN(A2;$E$1:$E$8;0);":$G$";DARABTELI($E$1:$E$8;A2)+HOL.VAN(A2;$E$1:$E$8;0)-1));2;1)
CÍM függvénnyel ÖSSZEFŰZ helyett (így is működik):
=FKERES(B2;INDIREKT(CÍM(HOL.VAN(A2;$E$1:$E$8;0);6;1)):INDIREKT(CÍM(HOL.VAN(A2;$E$1:$E$8;0)+DARABTELI($E$1:$E$8;A2)-1;7;1));2;1)
-
ny.janos
tag
Sziasztok!
Bár kerülő megoldással már megoldottam a problémámat, amivel kapcsolatban kérdezni szeretnék, de továbbra sem hagy nyugodni, hogy csak én vagyok hozzá „kevés”, vagy képlettel ezt nem is lehet megoldani (makró megoldás köszönöm nem érdekel, csak képletben gondolkodom).
Adott egy táblázat – nevezzük 1. táblázatnak – (az alább képen pirossas színnel jelölve), amelyben egy adott termékhez tartozó időszaki árat keresek. Egy másik táblázatban – legyen ez 2. számú táblázat – (kék színnel jelölve) valamennyi termék valamennyi időszaki ára szerepel (az időszakok nem egyforma hosszúak, és termékenként eltérő számú időszaki ár van).Az FKERES függvény ugye csak 1 feltétel szerint tud keresni. Ha nem dátum lenne az egyik keresési feltétel, akkor A-B illetve E-F oszlopokat összefűzve tudnék 2 feltételre keresni, de a dátumra vonatkozó közelítő keresés miatt ez esetemben nem lehetséges. (Itt jegyezném meg, hogy a kerülő megoldásom az volt, hogy minden egyes napra előállítottam az éppen érvényes árat, és az összefűzött értékre kerestem – így ez a megoldást már nem keresem.)
Az elvi megoldásom az volt, hogy a keresendő termék 2. számú táblázatban lévő helyzetét (-tól / -ig sorait) a HOL.VAN illetve a DARABTELI függvények segítségével megkeresem, majd az így kapott sorokat használom fel tartományként az FKERES függvényben.
C2 cella képlete, az elvi megoldásomban:
=FKERES(B2;ÖSSZEFŰZ("$F$";HOL.VAN(A2;$E$1:$E$8;0);":$G$";DARABTELI($E$1:$E$8;A2)+HOL.VAN(A2;$E$1:$E$8;0)-1);2;1)
Az eredmény azonban „ÉRTÉK!” hiba.
A képletből a tartományra vonatkozó függvény:
ÖSSZEFŰZ("$F$";HOL.VAN(A2;$E$1:$E$8;0);":$G$";DARABTELI($E$1:$E$8;A2)+HOL.VAN(A2;$E$1:$E$8;0)-1)
annak eredménye:
"$F$2:$G$3"
Vagyis az eredmény jó lenne, ha nem lenne ott az idézőjel.A kérdés adott: a probléma orvosolható valahogy?
-
Oldman2
nagyúr
Kiadás/Bevételek nyilvántartásához használt táblában hogyan lehetne azt szépen megoldani, hogy egy lenyíló menüből választhassam ki a kiadás és bevétel típusokat és az ömlesztett tételeket automatikusan lehessen összesíteni?
És ami lényeg, a típusokat minél könnyebben lehessen bővíteni is.
Jelenleg a havi fix kiadások a tábla elején vannak, alattuk az összesített értékekkel, melyek részletezésére még lentebb 1-1 külön oszlopot használok.
-
Cece04
tag
Legördülőhöz: nem sajnos,mert a várható összeg be van írva már alapból sokszor előre. Tehát az,hogy van ott valami,az nem jelenti azt egyértelműen,hogy "Igen", viszont ha nincs semmi ott, akkor nem lehet semmiképpen sem nem.
A városok vannak az "A" oszlopban, de sorrend szerint össze vissza. Tehát van olyan hogy Barcelona Barcelona, aztán Roma stb és megint egy sor Barcelona. Ezért lenne jó,ha vki átállítja pl Barcelonanál az indulást mas időpontra akkor az összes T (ahol Barcelona van) jelezze,hogy eltér az indulás időpontjától
-
Cece04
tag
Ehhez kapcsolódó, egyszerűbb picit, mint az előző, de nem jövök rá.
Azt szeretném,hogy csak akkor lehessen kiválasztani a legördülőből az "IGEN"-t,
ha van valamilyen összeg beírva a mellette lévő cellába. Tehát,ha üres az a cella, akkor hibaüzenetet küldjön vissza, hogy ez így nem jó. Ez lehetséges?Köszi szépen előre is!
-
Cece04
tag
Sorry,de azt kifelejtettem,hogy az első oszlopban több tíz különböző ország/varos van még Barcelonan kívül.
Az lenne a lényeg,hogy az összes olyan sor,aminél megegyezik az első oszlop tartalma (Itt Példában Barcelona) ott ne lehessen beállítani eltérő időpontot.
Az időpontnak meg kell valamihez igazodnia, így az "indulás" lenne a támpont, tehát az összes sornak azt a dátumot kell hoznia ami az indulás mellett van.Ezeket az adatokat nem én fogom felvinni, azért lenne jó,ha figyelmeztetné egyből a használót ,hogy vmi.hibas ,mert az indulástól eltérő dátumra akar valamit felvinni.
Köszi
-
Bati0501
őstag
Sziasztok!
2010-es excel ezt írja ki, amikor pivot táblát akarok csinálni: "A kimutatás egyik mezőneve érvénytelen. Kimutatás létrehozásához lista vagy feliratozott oszlopok formájában rendezett adatokat kell használnia. Kimutatásmező nevének módosításakor be kell írnia a mező új nevét."
Lassan fél órája próbálkozok, átszerkesztettem az oszlopok nevét is már, mert eddig volt benne egy jó pár cellaegyesítés is, de nem oldotta meg.
Most így néz ki, még több oszlop van, csak az már nem fért ki a képernyőre, de az most nem is érdekes:
Tudnátok tanácsot adni, hogy mit csináljak?
-
Olyat lehet csinálni hogy van egy nagyon bonyolult táblázatom és a kijelölt cellákra egy kerekítés függvényt húzzon rá? Akkor is ha már eleve tartalmaznak képleteket az adott cellák és azok természetesen maradjanak meg, csak húzza rá a kerekítés fgv-t?
Pl: KEREKÍTÉS(már meglévő fgv;3)
Valamit ki kellene találni mert nincs kedvem több száz cellát egyesével manuálisan átírni.
Köszönöm
-
lappy
őstag
szintén ha fgv elég hozzá
a B2 cellába a
=HA(D2="igen";A2*(B1/100);A2)
kód megy
a C2-be meg A2-B2
persze a C2 így mindig fog vmi értéket mutatni, de ezt ki lehet küszöbölni egy másik ha fgv.el
illetve a B2 cellá nem nézi hogy mi van D2 akkor ha az nem IGEN ha nem üres vagy más, de szintén egy ha fgv továbbírással ez is megoldható
Új hozzászólás Aktív témák
- Politika
- Elektromos cigaretta 🔞
- Magga: PLEX: multimédia az egész lakásban
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- Gyúrósok ide!
- sziku69: Fűzzük össze a szavakat :)
- Jellyfin, Emby, Stream.io, Plesk Streaming platform
- Apple iPhone 16 - ígéretek földje
- Óvodások homokozója
- További aktív témák...
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Telefon felvásárlás!! Honor 400 Lite, Honor 400, Honor 400 Pro
- AKCIÓ! Apple Macbook PRO 15" 2018 i9 32GB 500GB notebook garanciával hibátlan működéssel
- BESZÁMÍTÁS! ÚJ RX 9070 300e/9070XT 340e/4070Ti S 405e/5060Ti 210e/5070 280e/5070Ti 400e/5080 540e
- Apple TV eladó
- Bomba ár! Fujitsu LifeBook U727 - i3-7GEN I 16GB I 256SSD I 12,5" FHD I Cam I W11 I Garancia!
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest