Hirdetés
- Magga: PLEX: multimédia az egész lakásban
- eBay-es kütyük kis pénzért
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Geri Bátyó: Agglegénykonyha 3 – Paradicsomos káposzta (amit amúgy utálok)
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Elektromos rásegítésű kerékpárok
- Parci: Milyen mosógépet vegyek?
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- gban: Ingyen kellene, de tegnapra
-
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
-
lappy
őstag
válasz
Bjørgersson #32398 üzenetére
egy egyszerű összeadás a formátum pedig [ó]: mm; @ ez legyen így mutatja a 24 órán túli időt is.
-
lappy
őstag
válasz
excelproblem #32396 üzenetére
A görbe felbontásán (kirajzolás) nem lehet változtatni, mert ebből semmi sem utal rá hogy valahol törés lenne.
-
Bjørgersson
félisten
óó:pp formátumú cellákat hogyan tudok összegezni úgy, hogy a végeredményt is óó:pp formában kapjam meg? Próbáltam a múltkori 24-gyel szorzós trükkel, viszont nem akar sikerülni.
-
excelproblem
újonc
Még egy Exceles feladat, az előzőnél sokkal nehezebb. Ha erre valaki megtalálja a megoldást, aranyba foglalom a nevét!
A feladat definiálása:
Egy lejtős területre eső hullik, a vizet csatorna vezeti el. A vízmennyiség (Q) változását műszer mérte a csatorna egy kiválasztott keresztszelvényében, diszkrét időközönként, az ábrán látható adatsort eredményezve:Az apadó szakasz monoton csökkenő, ahol az adatsor trendje egy helyen enyhén megváltozik, mert a víz egy része a felszínen lefolyva került a csatornába, a másik része pedig beszivárgott a talajba és késleltetve jelent meg a mederben. Mivel a felszínalatti vizek kiürülése elvileg exponenciális görbét követ, a logaritmikus hálózaton kiegyenesedő Q(t) görbén egy töréspont kéne, hogy jelezze a felszíni lefolyás végét, de nem teszi. Mégis, valahogy az apadó ág szabályosan csökkenő ívében kéne megkeresni a keresett töréspontot valamilyen módszerrel. Több ötletem is volt, pl. az apadó ág egy távoli pontjától visszafelé diszkrét időközönként (szukcesszíven) növeltem a szakaszhosszakat, melyek korrelációs együtthatójának változása jelezhette volna ezt a helyet, de nem tette, egyenletesen változik az R-négyzet. Nem vezetett eredményhez a loess-féle lokális regresszióval simított adatsoron a logaritmált adatok differenciáinak vizsgálata se. Nyilván a megoldásához szükség lesz az adatsort tartalmazó .xlsx fájlra, de itt sajnos nem lehet csatolni. Annak a kedves zseninek, aki ezt megoldja, Nobel-díjat adok, és előre is nagyon köszönöm!
-
Sprite75
tag
válasz
Fferi50 #32392 üzenetére
Hello
Az ez előző összefoglaló írásomban nem írtam, hogy egy ilyent is raktam bele
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C4:AY108]) Is Nothing Then
Cells(Target.Row, 52).Value = Time
End If
End SubEzt a Munka 1 kódlapjára írtam, de most , hogy bemásoltam azt is amit csináltál hibát ír, ha oda akarom berakni.
Próbálgattam többféle módon de nem sikerült. Össze tudnád hegeszteni a két kódot?
E nélkül működik amit írtál, nagyon szuper, de arra lenne lehetőség hogy úgy jelenjen meg a figyelmeztetés, hogy azért valahogyan tudja módosítani a cella értékét ha pl hibás éréket írt be a felhasználó vagy pl a megrendelő módosítaná a rendelését.
Eddig volt érvényesítés is beállítva a C4 AY108 területre de most azt kivettem, mert ha jól látom akkor a kód ezt is figyeli.
Viszont ha pl tévedésből szöveget írokilyen hibát ír kiBocsi hogy ennyit akadékoskodok de te nem ismered mire képes a munkahelyemen Pali bácsi aki majd használná ezt a táblát
Köszi előre is
-
Fferi50
Topikgazda
válasz
Sprite75 #32384 üzenetére
Szia!
A Worsheet_SelectionChange eseménykezelőbe az End Sub előtti End With elé írd be
.Activate
Ezután használhatod ezt az eseménykezelést:Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range, ujertek As Integer
Set KeyCells = Range("C4:AY108") ' ez a vizsgálandó terület
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
ujertek = Target.Value
Application.EnableEvents = False
Application.Undo 'visszaállítjuk a változás előtti értéket
If Target.Value >= 1 And Target.Value <= 300 Then 'ha a régi érték jó
MsgBox "A(z) " & Target.Address(rowabsolute:=False, columnabsolute:=False) & " cella már tartalmazott egy helyes értéket: " & Target.Value, vbCritical, "Ellenőrzés"
Else
If ujertek < 1 Or ujertek > 300 Then 'ha a beírt új érték nem jó
MsgBox "Ez az érték nem felel meg a követelményeknek: " & ujertek, vbCritical, "Ellenőrzés"
Else
Target.Value = ujertek
End If
End If
Application.EnableEvents = True
End If
End Sub
Szépséghibája, hogy nem áll vissza arra a cellára, amelyikbe az értéket írták be, hanem mindig abba az irányba "ugrik", amerre a cellából kiléptek (hiszen többféle módon - pl. enter,tab, nyíl billentyűk - is el lehet hagyni a cellát).Üdv.
-
Delila_1
veterán
válasz
excelproblem #32390 üzenetére
-
Delila_1
veterán
válasz
excelproblem #32388 üzenetére
Az A oszlop helyett a B-re hivatkozol.
-
excelproblem
újonc
Sziasztok!
Az adatsoromra (X;Y) illesztett függvény képletével egész más x értéket kapok az új oszlop cellájában, mint amit a grafikonon lévő görbe alapján vártam:
Miért van ez, ill. mi lenne a helyes cellaképlet, amivel a mellékelt ábrán látható módon valóban az adatsort "kiegyenlítő" függvénygörbe értékeit kapnám?
Előre is köszönöm a választ a kedves segítőnek!
-
róland
veterán
Adatérvényesítést hogy lehet másolni? (Nincs kedvem 300-szor egyedileg elkészíteni.)
-
Sprite75
tag
válasz
Sprite75 #32383 üzenetére
Ilyet már találtam de ez ugye minden változáskor figyelmeztet jelenleg A1 és C10 között. Ez lehet úgy átírni hogy csak akkor figyelmeztessen ha az adott cellában már volt valami szám 1-300ig?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("A1:C10")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
' Display a message when one of the designated cells has been
' changed.
' Place your code here.
MsgBox "Cell " & Target.Address & " has changed."
End If
End SubEz a táblázat minden reggel egyébként üres lenne, úgy vennék fel az aznapi rendeléseket.
-
Sprite75
tag
válasz
Fferi50 #32381 üzenetére
És ezt is bonyolult megcsinálni hogy a C4 AY108 területen ha már van adat (1-300 ig) akor azt ne lehessen módosítani csak ha egy figyelmeztetést le ok-z a felhasználó. Ezen a területen csak az üres cellékat lehessen módosítani figyelmeztetés nélkül.
Ui
ha valakinek sikerül megoldani vendégem egy jó tyúk pörire.
Cím privátban
Pöri -
Sprite75
tag
válasz
Sprite75 #32380 üzenetére
Átgondoltam. Mégis lehet hogy jó lenne a visszavonás gomb, mert mi van akkor ha a kedves koléga tévedésből egy már előzőleg beirt rendelést módosít de nem tudja hogy mi volt abban a cellában, akkor jól jönne a visszavonás. Vagy esetleg olyat lehet már egy előzőleg beítr adatot csak egy figyelmeztető ablak megjelenése után lehessen átírni?
-
Fferi50
Topikgazda
válasz
Sprite75 #32380 üzenetére
Szia!
Sajnos, amint makró módosítja egy cella tartalmát, azonnal "elvész" a visszavonási automatizmus az Excelben... gondolom azért, mert 2 különböző módszerű eljárásról van szó.
Elvileg nem lehetetlen a változtatások nyomon követése makróban és ehhez kapcsolódóan saját makrót írni a visszavonásra - saját parancsgombbal ill. billentyű kombinációval - de most sajna nincs energiám hozzá, hogy belefogjak. Hátha valakinek van már ilyen megoldása korábbról vagy talonban.Üdv.
-
Sprite75
tag
válasz
Sprite75 #32376 üzenetére
Még egy apróság.
Azon a munkalapon amin fut ez a célkeresztes dolog nem működik a visszavonás gomb.
Fferi50 vagy Delila_1 szerintetek leht ezzel valamit kezdeni?
A gomb szürke lesz amit beírok valami adatot és ütök egy entert.
Az én esetemben azon a lapon ahol ezt szeretném használni a célkeresztes makrót a fejléc és az első két oszlop zárolva lenne arra a területre ahová pedig a rendeléseket írná a kolléga csak számokat írhat. Tulajdonképpen nem tud olyan cellát módosítani ami fontos lehet, (pl szumma a lap alján stb) így nem is biztos hogy valaha szükség lenne a visszavonás gombra, de ha mégis működne az is az lenne az igazi.
-
bumlet
csendes tag
válasz
Delila_1 #32372 üzenetére
Köszi a tippeket
Abban tudnál esetleg segíteni, hogy vb-ben hogyan tudok cellatartományra hivatkozni? Nem a rangre gondolok, hanem pl: A2:A16 az első munkalapon, legyen egyenlő a második munkalap A5:A19-el? (A második munkalapon változóval szeretném megadni, hogy hanyadik oszlop adott értékeivel legyen egyenlő) Vagy lehet ezt egyáltalán? Esetleg más megoldás?
Előre is nagyon köszönöm
-
Sprite75
tag
válasz
Delila_1 #32352 üzenetére
Átolvasgattam mindent amit annak idején Fferi50 - el írogattatok ezzel kapcsolatban, és végül is sikerült úgy, hogy a munkalapon tudok használni feltételes formázást úgy hogy a "célkereszt" is jól működik.
Egy kis összefoglaló ha valakinek később kellene
Ezt a kódot kell a Munka1 kódlapjára
Public fmtcondis As New Collection
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ujfmtr As FormatCondition, ujfmtc As FormatCondition, ujfmtt As FormatCondition
On Error Resume Next
If IsError(Target.Cells.Count) Then Exit Sub
On Error GoTo 0
If Target.Cells.Count <> 1 Then Exit Sub
If fmtcondis.Count > 0 Then
On Error Resume Next
For Each fmt In fmtcondis
fmt.Delete
fmtcondis.Remove 1
Next
On Error GoTo 0
End If
With Target
With .EntireRow
Set ujfmtr = .FormatConditions.Add(Type:=xlExpression, Formula1:="1")
With ujfmtr '.FormatConditions(1)
With .Borders(xlTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
With .Borders(xlBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
.Interior.ColorIndex = 20
.SetFirstPriority
End With
End With
fmtcondis.Add ujfmtr, "fmt1"
With .EntireColumn
Set ujfmtc = .FormatConditions.Add(Type:=xlExpression, Formula1:="1")
With ujfmtc '.FormatConditions(1)
With .Borders(xlLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
With .Borders(xlRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
.Interior.ColorIndex = 20
.SetFirstPriority
End With
End With
fmtcondis.Add ujfmtc, "fmt2"
Set ujfmtt = .FormatConditions.Add(Type:=xlExpression, Formula1:="1")
ujfmtt.Interior.ColorIndex = 36
ujfmtt.SetFirstPriority
fmtcondis.Add ujfmtt, "fmt3"
End With
End SubEzt pedig a ThisWorkbook -ra
Public kilepo As Boolean
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
If kilepo Then Exit Sub
Application.ScreenUpdating = False
ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(0, -1).Select
Application.ScreenUpdating = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("Valóban kilép?", vbQuestion + vbYesNo, "Bezárás") = vbNo Then
Cancel = True
Else
valasz = MsgBox("Menti a változásokat?", vbQuestion + vbYesNoCancel, "Bezárás")
If valasz = vbCancel Then Cancel = True: Exit Sub
If Munka1.fmtcondis.Count > 0 Then
For Each fmt In Munka1.fmtcondis
fmt.Delete
Munka1.fmtcondis.Remove 1
Next
End If
If valasz = vbNo Then
ThisWorkbook.Saved = True
kilepo = True
Else
kilepo = True
ThisWorkbook.Save
End If
End If
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Munka1.fmtcondis.Count > 0 Then
For Each fmt In Munka1.fmtcondis
fmt.Delete
Munka1.fmtcondis.Remove 1
Next
End If
End Sub
Private Sub Workbook_Open()
Application.ScreenUpdating = False
ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(0, -1).Select
Application.ScreenUpdating = True
End SubÍgy ez a célkereszt a kijelölt cellára a Munka1 nevű lapon működik.
Ha pedig ugyanezen a lapon feltételes formázást is kell használni akkor az itt leírtakat kell alkalmazni.
Még egyszer köszönöm Delila_1 és persze Fferi50
-
Sprite75
tag
válasz
Teo.papa #32355 üzenetére
Próbálgattam kicsit.
Nekem 2013-as van ugyan de win 10.Kiraktam vagy 30 ikont a gyors elérésre, amiből kb 25 látható is volt egyszerre. Ha vagy a monitor felbontását változtattam vagy a a képernyő beállításoknál a szöveg, az alkalmazások és más elemek méretét változtató csúszkát állítottam akkor változott a látható ikonok száma.Ha ez a két érték nálad mindkét laptopon egyforma akkor sajna más ötletem nincs.
-
Delila_1
veterán
válasz
bumlet #32371 üzenetére
Ez így rengeteg.
Kiválaszthatnád a nevet és a hónapot 1-1 érvényesítésből.
A hónapnak megfelelő userform indulna a 12 közül. Ezen egy label címe a kiválasztott dolgozó neve lenne. Most nem látszik, hogy kinek a hónapját indítottad.Az adatfelvitelnél a sort a dolgozó neve adhatná, amit egy MATCH függvénnyel kikereshetsz, az oszlopot pedig a dátum. Az utóbbi az aktuális év, a form neve (december) számmá alakítva (pl. egy fkeressel), a nap pedig a kiválasztott combobox nevéből adódik.
-
bumlet
csendes tag
válasz
Delila_1 #32370 üzenetére
Jelenleg így néz ki:
https://drive.google.com/file/d/0B7b59Ad833pDTDgtQUhEU2tkcUVjX2llREJXUms5Y05tdi1v/view?usp=drivesdk
Ebből szeretném az első munkalapot kihagyni, mivel eléggé bonyolult a használata és jelen formában nagyon macera a bővítése. Nem sikerült dinamikussá tennem, és közben arra gondoltam hogy egyszerűbb lenne csak a 2. és 3. munkalap használata, még pedig úgy hogy lényegében csak a 3. munkalapot használnám, a 2. csak adatbázisként funkcionálna. A kettő közé kellene egy olyan makró, ami megjeleníti a 3. munkalapon a 2. munkalapról a dátumoknak megfelelő adatokat, viszont ha a 3. munkalapon módosítok egy adatot, akkor azt tárolja le a 2. munkalap adatbázisában (pl egy save gomb vagy enter leütés).
Az elmélet meglenne hozzá, problémám csak azzal van, hogy nem tudom hogyan hivatkozzak adott cellákra. Ha range-ket adok meg oké a dolog, viszont minden napra létre kell hozzak egy range-t, ami nem értelemszerű, pláne ha egyszerűsíteni akarok.
-
Delila_1
veterán
válasz
b3n1t0 #32365 üzenetére
A makrót modulba kell tenned.
Sorra veszi az A oszlop dátumait. Ha van azoknak megfelelő lap a füzetben, akkor annak az első üres sorába másol. Ha nincs létrehozza a lapot.
Mivel lapnévben nem szerepelhet a törtjel, helyette alsó kötőjelet ír. Az A oszlopban maradhat a törtjeles dátum, nem kell módosítanod.
Sub Kulon_Lapra()
Dim sor As Long, lapnev As String, a, hova As Long
sor = 1
Do While Cells(sor, 1) <> ""
lapnev = Cells(sor, "A")
lapnev = Left(lapnev, 2) & "_" & Mid(lapnev, 4, 2) & "_" & Right(lapnev, 2)
On Error Resume Next
Set a = Sheets(lapnev)
If Err.Number <> 0 Then
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = lapnev
Sheets(1).Activate
End If
On Error GoTo 0
hova = Application.WorksheetFunction.CountA(Sheets(lapnev).Columns(1)) + 1
Rows(sor).Copy Sheets(lapnev).Cells(hova, 1)
sor = sor + 1
Loop
End Sub -
bumlet
csendes tag
Köszi szépen, közben kitaláltam egy másik megoldást és úgy néz ki ez jobb lesz nekem. A két nyílgombhoz hozzárendelt makrókat bővítem tovább, úgy hogy egy másik munkalapon rögzített adatbázisból adja vissza az adatokat, ha pedig van változás akkor beleírja őket az adatbázisba. Viszont ehhez biztos lesz még egy-két kérdésem
-
lappy
őstag
válasz
Sanyi.mTs #32362 üzenetére
Option Explicit
Public Function LastRowWithData(ByRef sht As Excel.Worksheet, Optional colName As String = "A") As Long
LastRowWithData = sht.Range(colName & sht.Rows.Count).End(xlUp).Row
End Function
Sub SplitToColumns(ByRef sColNames As String, ByRef strSeparator As String, ByRef rngDest As Excel.Range)
Dim arrColNames As Variant, i As Long
arrColNames = Split(sColNames, strSeparator)
For i = LBound(arrColNames) To UBound(arrColNames)
rngDest.Offset(0, i).value = arrColNames(i)
Next i
End Sub
Sub PerformTheSplit()
Dim totalRows As Long, i As Long, sColNames As String
totalRows = LastRowWithData(Munka1, "K")
For i = 1 To totalRows
sColNames = Munka1.Range("K" & i).value
Call SplitToColumns(sColNames, ",", Munka2.Range("A" & i))
Next i
End Sub -
Sanyi.mTs
addikt
adott két lap. Az elsőre külső helyről másolok adatokat.
meg lehet oldani, h az első lap K oszlopa automatikusan "szövegből oszlopok" szerkesztéssel jelenjen meg a 2es lap A....D oszlopaiban? -
bumlet
csendes tag
Sziasztok!
A következőben szeretnék segítséget kérni. Egy olyan excel táblát szeretnék készíteni, melyben hetekre bontva vezetném, hogy a dolgozok milyen projektekre vannak beosztva. Valahogy így nézne ki:
Jelenleg úgy oldottam meg, hogy egy külön formon kell bevinni hogy adott dolgozó adott napon mit csinál, és ebben a táblában csak visszanézni lehet az adatokat. Viszont szeretném ezt egyszerűbben megoldani egy táblában lehetőleg. Bármilyen ötletet szívesen fogadok, előre is köszönöm
-
Sanyi.mTs
addikt
köszi, a "ha" függvény jó lesz.
a példában valóban az X-et kellett csak változtatni, de valójában nem csak azt. -
DeFranco
nagyúr
-
Sanyi.mTs
addikt
segítséget kérnék.
Van 2 lap (L1, L2)
Az L1 lapon a C2 cellát kellene megvizsgálni. Ha XC2 az értéke, akkor BC2-t, ha XC3, akkor BC3-at, ha XC4 az érték, akkor BC4-et írjon az L2 lap B2 cellába.köszi.
szerk.: Excel 2013, magyar
-
Delila_1
veterán
válasz
Sprite75 #32347 üzenetére
Fferi tovább fejlesztette, ami a 2010-es verziótól kezdve műxik.
-
Sprite75
tag
-
Sprite75
tag
-
Sprite75
tag
válasz
Delila_1 #32338 üzenetére
Alakul
Annak a cellának a színét szeretném változtatni ami épp ki van jelölve, nem pedig azét ahová az időt írja.
Azért szeretném mert ez egy rendelés felvevő táblázat lenne és jó lenne ha feltűnő lenne, hogy épp hol épp melyik az aktív cella, nehogy rossz oszlopba írja az adatot aki használja.
Tehát a pl a képen látható AX15 cella színének kellene változni amíg ki van jelölve
-
Delila_1
veterán
válasz
Sprite75 #32337 üzenetére
Minek külön feltételes formázás? Ha már ír valamit a makró, egyúttal a színt is módosíthatja.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C4:AY108]) Is Nothing Then
Cells(Target.Row, 52).Value = Time
Cells(Target.Row, 52).Interior.Color = vbRed
End If
End Sub -
Sprite75
tag
válasz
Sprite75 #32336 üzenetére
Delila egy korábbi írását felhasználva használva
[link]csináltam egy olyan oszlopot ahová kiírja egy sorban történt utolsó módosítás idejét.
Így:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("C4:AY108"), Target) Is Nothing Then
Cells(Target.Row, 52).Value = Time
End If
End SubAztán ezt továbbgondolva szerettem volna megoldani hogy az épp kijelölt cella más színű legyen (a cellába íratott 1-est felhasználva a feltételes formázással) de nem teljesen jó a dolog.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("C4:AY108"), Target) Is Nothing Then
Cells(Target.Row, 54).Value = "1"
End If
End SubVagy teljes nem jó az elképzelés?
-
Sprite75
tag
Üdv
Olyat lehet szerintetek hogy az éppen kijelölt cella ahová írni akarok más színű legyen mint a többi? Ha pedig megvolt az adatbevitel álljon vissza az eredeti színére?
-
Teo.papa
csendes tag
Halihó
Két noteszt használok, mindkettőn Win10+Excel2016. A problémám az, hogy az egyiken a gyorselérési eszköztárban elfér simán 28 parancsikon + a fájlnév + egyéb gyárilag ott lévő dolgok. A másikon fele ikont látom csak + fájlnév + gyári dolgok. Mindkét noteszen a sűrűség egérhez optimalizáltra van állítva. Próbáltam a sűrű beállításokat lementeni és a másik noteszre átmásolni, nem lett jobb a helyzet. Mellékelek egy képet a "sűrű" verzióról, nekem ez kellene a másik noteszen is. Korábban mindkét gépemen a sűrű verzió volt, a Win10-re frissítés után lett először mindkettőn ritka, majd egyik egy frissítés után sűrű lett, másik maradt ritka :-(
Megnéztem a kollégáim gépeit is, mindenkinek a gépén a "ritka" verzió van.Ha valaki tudna segíteni, megköszönném
-
butch3r
senior tag
-
Delila_1
veterán
válasz
butch3r #32330 üzenetére
Konvertálhatod a diagramjaidat pl. gif-be, majd beilleszted azokat a bemutatódba a kedved szerinti helyre. A gif-ek szélessége és magassága megegyezik a diagramok méreteivel.
Sub Diagram_Konvertalas()
Dim szamlalo As Integer, x As Integer, diagram As Object
For x = 1 To ActiveSheet.ChartObjects.Count
ActiveSheet.ChartObjects(x).Activate
Set diagram = Selection.Chart
diagram.Export Filename:=ThisWorkbook.Path & "\" & _
"Diagram " & szamlalo + 1 & ".gif", FilterName:="gif"
szamlalo = szamlalo + 1
Next
End Sub -
butch3r
senior tag
válasz
sajog159 #32325 üzenetére
Szia
Nem jól
Az általam másol macro egy sok diás ppt-ben az összes dián fogja az excelből linkelt elemeket (leginkább chartok) és kicseréli képekre (kivágja majd beilleszti ugyan oda ugyan akkora méretben csak képként). Viszont automatikusan előre teszi őket, viszont vannak olyanok amiket hátra kéne, hogy tegyen, hogy bizonyos feliratok látszódjanak (amik külön szöveg dobozból vannak beillesztve és részben -direkt!- takarják az említett képeket, de ha a kép van előrébb akkor az takarja a szvöeg dobozt és nem fordítva)
Ezért kéne nekem valami olyan kiegészítés a fenti makróba, hogy a kivágott és beillesztett képeket küldje hátra, azaz sorrendileg mélyebben legyenek és ne takarják ki a szöveg dobozokat.
Remélem valaki tud segíteni
Köszi -
Sziasztok!
Van egy táblázatom, amiben több függvény, power query lekérdezés is szerepel, adatból viszonylag kevés szerepel benne. A fájl hálózati meghajtón szerepel. Ha megnyitom, kb fél percig nem válaszol a program. Hogy tudnám a fagyást kiszedni belőle? Egyelőre nem találtam meg az okát.
-
aprokaroka87
nagyúr
Üdv!
Arra van lehetőség,hogy egyéni számformázást ne csak a "Cellaformázás" menűből,hanem a szerkesztö mező segítségével is meg lehessen adni?
-
Sprite75
tag
Sziasztok
Ha már valaki tett fel hasonló kérdést akkor előre is elnézést kérek de nem találtam.
A problémám az lenne, hogy a képen látható táblázatban pl a C2 cellában ahol 0# szerepel szeretném ha inkább üresen maradna a cella, ha a INDEX HOL.VAN függvény kombináció a táblázat Rendelés fülén ahonnan az adatokat szedné csak üres cellát talál.
Ezt majd nyomtatni kellene és úgy jobban áttekinthető lenne a nyomtatott lap ha a nem lennének tele 0-ával azok a cellák ahol nincs rendelés felvéve.
A C2 képlete
=INDEX(Rendelés!$C$4:$AX$108;HOL.VAN($A$2;Rendelés!$A$4:$A$108;0);1)
Előre is köszi
-
lalakov
senior tag
Meg tudnátok esetleg mondani mivel lehet a gond?
Van egy közel 600kb-os excel fájlom, amiben rengeteg lapfül van, sok egyszerű (szum, ha) számítással és egy részen feltételes formázással. Dropboxban használom, hogy a telefonon is mindig naprakész legyen. Pc-n minden tökéletes, de ha mobilon nyitom meg, az eltart vagy fél percig(a feltételes formázás színei jönnek be ilyen lassan). Ha bármit változtatok és elmentem, akkor eltűnik jó pár számítás, de nem az összes és minden esetben ugyanazok. Mindig kizárólag a sok karakterből álló, sima összeadások.
Office 2013, mobil: Samu Note 2Köszönöm.
-
Delila_1
veterán
válasz
lizakattila #32314 üzenetére
Nagyszerű!
-
Delila_1
veterán
válasz
lizakattila #32310 üzenetére
A beolvasás is lehet egyszerűbb, a reg1 ComboBox Change eseményéhez rendelve.
Private Sub reg1_Change()
Dim sor, oszlop As Integer
With Sheets("Sheet2")
sor = Application.Match(reg1, .Columns(1), 0)
For oszlop = 2 To 11
Controls("reg" & oszlop) = .Cells(sor, oszlop)
Next
End With
End SubA gomb esetében marad az az 1 sor, amit írtam (+ elé a sor kikeresése a MATCH függvénnyel). Esetleg még a végére a form bezárása:
Unload Me
-
Delila_1
veterán
válasz
lizakattila #32310 üzenetére
Akkor a feltöltés Ok, csak a levonás kell.
Sheets("Sheet2").Cells(sor, 5) = Sheets("Sheet2").Cells(sor, 5) - reg5* 1
Már ha a reg5 valóban az E oszlop megfelelője.
Azért a feltöltésnél alkalmazhatnád, amit a sor kikereséséről írtam előbb. Ugyanannak a sornak az n-edik tagját viszed a textboxokba, ezért elég lenne 1 keresés.
-
lizakattila
senior tag
válasz
Delila_1 #32308 üzenetére
Nem egészen. Item alapján keresek, a többi adat a formon automatikusan töltődik, ha az itemet beírom (végül is minden adat egyezni fog).
Tehát ha rákerestem egy item-re, kitöltődött a form, a felvenni kívánt mennyiséget adom meg és az itt megadott értéket vonja le az OnHand-ből (E oszlop) - abban a sorban, ahol az általam kikeresett item van.
Egy készletcsökkentést szeretnék végrehajtani így, tehát amennyit kiveszek, annyival csökkenjen. -
bsasa1
csendes tag
válasz
alfa20 #32305 üzenetére
Szia, persze simán.
Sub szamol()
Dim FolderPath As String, path As String, count As Integer
FolderPath = "mappa teljes elérési útja"
path = FolderPath & "\*.xls"
Filename = Dir(path)
Do While Filename <> ""
count = count + 1
Filename = Dir()
Loop
'count tartalmazza a .xls fájlok számát a mappában, ha xlsx, akkor fent is .xlsx
End Sub -
Delila_1
veterán
válasz
lizakattila #32306 üzenetére
Figyelmesebben elolvastam a kérdést.
Ha jól értem, azt a sort keresed, amelyikben az On-Hand kivételével minden adat megegyezik a most bevittekkel, és a jelenlegi On-Hand értéket akarod levonni a megtalált sor E oszlopának az értékéből. Így gondolod?
-
Delila_1
veterán
válasz
lizakattila #32306 üzenetére
Az Item-nek már eleve a textbox helyett comboboxot érdemes tenni, ahol a RowSource tulajdonságba beírod a tartományt, ahonnan az értékeket veszi, pl. Sheet2!A1:A200.
Elég egyszer kikeresni a sort, aminek az értékeihez hozzá akarod adni a UserFormon megadott adatokat.
Private Sub cmdClose_Click()
Dim sor
'Ellenőrzés
If reg1 = "" Or reg2 = "" Or reg3 = "" Or reg4 = "" Then
MsgBox "Hiányos kitöltés", vbExclamation
Exit Sub
End If
With Sheets("Sheet2")
sor = Application.Match(reg1, .Range("A:A"), 0)
.Cells(sor, 2) = .Cells(sor, 2) + reg2 * 1
.Cells(sor, 3) = .Cells(sor, 3) + reg3 * 1
.Cells(sor, 4) = .Cells(sor, 4) + reg4 * 1
End With
End SubA szorzás azért kell, hogy a textboxban szereplő szöveget (szöveg, azért text) számmá alakítsuk.
-
lizakattila
senior tag
Sziasztok!
Kellene egy kis segítség, mert problémába ütköztem.
Adott egy exceltábla, mely az alábbi adatokat tartalmazza: LINKAz alábbi form-ot kreáltam hozzá: LINK
E mögött az alábbi makró található:
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub Reg1_AfterUpdate()
If WorksheetFunction.CountIf(Sheet2.Range("a:a"), Me.reg1.Value) = 0 Then
MsgBox "Ilyen item nincs az adatbázisban."
Me.reg1.Value = ""
Exit Sub
End If
With Me
.reg2 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 2, 0)
.reg3 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 3, 0)
.reg4 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 4, 0)
.reg5 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 5, 0)
.reg6 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 6, 0)
.reg7 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 7, 0)
.reg8 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 8, 0)
.reg9 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 9, 0)
.reg10 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 10, 0)
End With
End Sub
Private Sub userform_click()End Sub
Ezt kellene kiegészíteni úgy, hogy amikor a formon a felvenni kívánt mennyiséghez beírok egy tetszőleges mennyiséget (számot) és rákattintok az Adatbázishoz ad gombra, akkor az adatokat tartalmazó lapon keresse meg a hozzá tartozó adatot és a beírt mennyiséget vonja le az E (OnHand) oszlopból.
Ha ez megtörtént, ki is léphet a formból (de ez nem feltétlen szükséges). -
alfa20
senior tag
Sziasztok!
Makróban meg tudom számoltatni, hogy egy adott mappában mennyi (Excel) fájlt található?
van több mappa amiben váltózó számú adatlapok vannak, ezekből a táblákból kellene egy adott táblába bemásolni az adatlapok adott elemeit.
Arra gondoltam, TC-vel átnevezem tömegesen a fájlokat növekvő számokká, majd egy ciklussal megnyitom, átmásolom, bezárom szépen sorba. egyedül a fájlok száma aggaszt, hogy az hogyan legyen automata. -
sajog159
aktív tag
Az OTP-től exportált expoort.xls fájlban a dátum az alábbi alakban jelenik meg: „2016.08.01.”
A végén lévő pont miatt csak kissé bonyolult módon tudom dátumot „varázsolni”.
Az alábbi kép mutatja a műveleteket:Örülnék, ha valaki egyszerűbb megoldást javasolna. (nem tudom, fontos e, Excel 2013-t használom)
Előre is köszönöm.
Új hozzászólás Aktív témák
- Tesla topik
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- iPhone topik
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Magga: PLEX: multimédia az egész lakásban
- 3 milliós villanyautó, AI tamagocsi és kamerás napszemüveg - megjött az AstraUX
- Okosóra és okoskiegészítő topik
- Telekom T Phone 3 5G – modern tudakozó
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- Milyen routert?
- További aktív témák...
- 136 - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4080
- GYÖNYÖRŰ iPhone 13 Pro 256GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS3074, 100% Akkumulátor
- AKCIÓ! DELL Precision 7540 i7-9850H Quadro T2000 16GB 512GB 1 év garancia
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- Samsung Galaxy S24 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest