-
Fototrend
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Delila_1
Topikgazda
Rögzíts egy makrót a solver beállításaival, amibe minden feltételt vegyél be.
Legyen annyi üres lapod, ahány változatot szeretnél látni. Az első lapon van a kiinduló táblázat, nálam ez az A1:D5 terület, a célcella D6.Sub solver()
Dim lap As Long, max As Single, változat As Integer
max = 0
változat = 30 'Itt add meg a kért változatok számát
For lap = 1 To változat
Sheets(lap).Select
'Kiinduló változat másolása a következő lapra
If lap < 20 Then
Range("A1:D6").Select 'A saját területedet add meg itt
Selection.Copy Sheets(lap + 1).Cells(1)
End If
'Ide jön a rögzített makró
If Range("D6") > max Then max = Range("D6")
Next
MsgBox max
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
m.zmrzlina
senior tag
válasz Sir Pocok #9801 üzenetére
Nem állítom, hogy hibátlan de kiindulásnak jó lesz aztán majd pontosítasz, hogy mit szeretnél:
Sub kerescserel()
Dim amitkeres As String, amirecserel As String
Cells(1, 1).Select
amitkeres = InputBox("Add meg a keresni kívánt számot!", "Keresés")
amirecserel = InputBox("Mire szeretnéd cserélni?", "Keresés")
Do Until IsEmpty(ActiveCell.Offset(1, 0)) = True
On Error GoTo nincstobb
Cells.Find(What:=amitkeres, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Select
If ActiveCell.Value = amitkeres Then ActiveCell.Value = amirecserel
Loop
nincstobb:
MsgBox ("A számok cseréje megtörtént.")
End SubAz A1 cellától keres lefelé a legutolsóig és ha megtalálta az első inputboxban bevitt karaktersorozatot akkor kicseréli arra amit a második inputboxban bevittél. Ez kicsit gyorsabb mint a beépített (Ctrl+H) módszer.
[ Szerkesztve ]
-
Sir Pocok
őstag
válasz m.zmrzlina #9803 üzenetére
Nagyon köszi!!
Este megnézem.
Az erős embernek nincs szüksége hatalomra, a gyönge jelleműt pedig tönkreteszi.
-
bozsozso
őstag
Sziasztok!
Szeretnék egy olyan makrót ami a "Munka1" munkalap "B2" cellától lefelé amíg adatot talál a különböző megnevezéseket másolja át "Munka2" munkalap "B4" cellájától lefelé, de úgy hogy közben a "Munka1" munkalap C oszlopában található mennyiségeket összesítse a "Munka2" munkalap C oszlopában
Pl.:nem biztos, hogy sorrendben vannak a megnevezések, de ha szükséges akkor rendezem
Munka1
A 1
A 1
B 2
B 1Eredmény:
Munka2A 2
B 3Előre is köszönöm.
[ Szerkesztve ]
-
bugizozi
őstag
válasz bozsozso #9806 üzenetére
Helló!
Sub valami()
ucsoB = Cells(Rows.Count, "B").End(xlUp).Row
Sheets("Munka1").Range("B1:B" & ucsoB).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheets("Munka1").Range("G1"), Unique:=True
ucsoG = Cells(Rows.Count, "G").End(xlUp).Row
Sheets("Munka1").Range("G1:G" & ucsoG).Select
Selection.Copy
Sheets("Munka2").Select
Range("B4").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("Munka1").Select
Sheets("Munka1").Range("G1:G" & ucsoG).ClearContents
Sheets("Munka2").Select
ucsoB2 = Cells(Rows.Count, "B").End(xlUp).Row
Range("B5:B" & ucsoB2).Select
Selection.Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
For i = 5 To ucsoB2
Sheets("Munka2").Range("C" & i).Select
ActiveCell.FormulaR1C1 = "=SUMIF(Munka1!R2C2:R" & ucsoB & "C2,RC[-1],Munka1!R2C3:R" & ucsoB & "C3)"
Next i
End SubA kódot lefuttatva a Munka1 lapon lévő adatokból:
Ezt kreálja a Munka2 lapra:
Remélem jól értettem és rendben műxik
VCP7-DCV, CCNA ||| Ami működik, ahhoz nem szabad hozzányúlni!
-
Delila_1
Topikgazda
válasz bozsozso #9806 üzenetére
Nálam nem a kívánt eredmény jött ki Bugizozi makrójával. Egy kicsit módosítottam rajta, és megjegyzéseket tettem bele.
Sub Összegzés()
Dim usorA As Long, usorG As Long, usor2A As Long
Sheets("Munka1").Select
usorA = Range("A1").End(xlDown).Row 'Alsó sor a Munka1 lapon
'Irányított szűrés egyedi ('A' oszlop) értékekre a G1-be
Range("A1:A" & usorA).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Range("G1"), Unique:=True
'Alsó sor a G oszlopban
usorG = Range("G1").End(xlDown).Row
'Első üres sor a Munka2 lap A oszlopában
usor2A = Sheets("Munka2").Range("A5000").End(xlUp).Row + 1
'Munka1 G oszlopának másolása a Munka2 A oszlopába
Range("G2:G" & usorG).Copy Sheets("Munka2").Range("A" & usor2A)
Sheets("Munka2").Select
'Szumha képlet a Munka2!B-be
Range("B2:B" & Range("A5000").End(xlUp).Row) = _
"=SUMIF(Munka1!A:A,Munka2!A2,Munka1!B:B)"
Cells(2, 1).Select
'Munka1!G törlése
Sheets("Munka1").Columns(7).Delete
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz bugizozi #9813 üzenetére
Valóban, a Te füzeted jó eredményt ad.
Érthetetlen számomra, mert a kódodat bemásoltam egy üres füzetbe, és úgy futtatva kaptam azt az eredményt, aminek a képét az előzőben közöltem. Másik füzetben is kipróbáltam, az eredmény ugyanaz a rossz összegzés.
Előfordul, hogy 1-1 lap hibás az Excelben (pont most volt egy ilyen esetem, hogy hibás volt egy szorzás eredménye), de hogy 2× egymás után 2 különböző füzetben?!
A képlet beírását azért nézd meg a makrómban, nem kell hozzá ciklus, egy lépésben meg lehet oldani, mint ahogy a G oszlop másolását is.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
bugizozi
őstag
válasz Delila_1 #9815 üzenetére
Örülök hogy akkor mégis jót csináltam esetleg az lehet a gáz hogy én 2003 excelben csináltam a kép alapján a tiéd pedig újabb
Igen, néztem a kódodban hogy neked nincs ciklusban a képlet, valamivel érthetőbben néz így ki mint az enyém
[ Szerkesztve ]
VCP7-DCV, CCNA ||| Ami működik, ahhoz nem szabad hozzányúlni!
-
Delila_1
Topikgazda
válasz bugizozi #9820 üzenetére
Másképp gondoltam...
A
Range("B2:B" & Range("A5000").End(xlUp).Row) = _
"=SUMIF(Munka1!A:A,Munka2!A2,Munka1!B:B)"sor után
Selection.Copy
Selection.PasteSpecial Paste:=xlValuesa makróból megoldaná.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
radam
csendes tag
Egy gyors kérdés: Excel 2007-ben hogyan lehet a munkalapok füleit (lent) mondjuk abc-sorrendbe rendezni.
Ha nincs rá beépített megoldás, akkor milyen makró tudná ezt?
Köszönöm.
-
Delila_1
Topikgazda
Sub SortWorksheets()
Dim sCount As Integer, i As Integer, j As Integer
Application.ScreenUpdating = False
sCount = Worksheets.Count
If sCount = 1 Then Exit Sub
For i = 1 To sCount - 1
For j = i To sCount
If Worksheets(j).Name < Worksheets(i).Name Then
Worksheets(j).Move Before:=Worksheets(i)
End If
Next j
Next i
Application.ScreenUpdating = True
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz bozsozso #9825 üzenetére
Igazad van, elfelejtettem, hogy a képletek beírásához nem jelöltem ki a B oszlop tartományát. Bemásolom a teljes makrót.
Sub Összegzés()
Dim usorA As Long, usorG As Long, usor2A As Long
Sheets("Munka1").Select
usorA = Range("A1").End(xlDown).Row 'Alsó sor a Munka1 lapon
'Irányított szűrés egyedi ('A' oszlop) értékekre a G1-be
Range("A1:A" & usorA).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Range("G1"), Unique:=True
'Alsó sor a G oszlopban
usorG = Range("G1").End(xlDown).Row
'Első üres sor a Munka2 lap A oszlopában
usor2A = Sheets("Munka2").Range("A5000").End(xlUp).Row + 1
'Munka1 G oszlopának másolása a Munka2 A oszlopába
Range("G2:G" & usorG).Copy Sheets("Munka2").Range("A" & usor2A)
Sheets("Munka2").Select
'Szumha képlet a Munka2!B-be
Range("B2:B" & Range("A5000").End(xlUp).Row).Select
Selection = "=SUMIF(Munka1!A:A,Munka2!A2,Munka1!B:B)"
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
Cells(2, 1).Select
'Munka1!G törlése
Sheets("Munka1").Columns(7).Delete
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
mephi666
nagyúr
lenne egy kérdésem excel témában:
csináltam egy kb. 24x6-os táblázatot, amit elejétől-végéig beképleteztem... lényegében, ha bizonyos helyeken megadok szűrőfeltételeket a munkalapon, akkor ezek megfelelően módosulnak... most csináltam egy egész diagramot ebből a táblázatból, de sehogy nem tudom megoldani, hogy a görbét ne törje 0-ig azokon a helyeken, ahol nincs érték... már módosítottam a képleteket "HA" függvénnyel, hogy ezeken a pontokon maradjon üres a cella, ha 0 érték kerülne bele, de így sem jó... így is törik a görbe... viszont, ha kitörlöm a képletet a cellából, akkor normális a diagram... átnéztem magának a diagramnak is a beállításait, de erre vonatkozóan semmit nem találtam... rémlik régről, hogy valahogy meg lehet oldani, hogy ezeken a pontokon szakadás legyen a görbében, vagy a hiányzó értéknél egy egyenessel húzza össze az előző és a következő tényleges értéket, de már elfelejtettem (excel 2007 van fent)
"Kis lépés az emberiségnek... hosszú lépést a férfiaknak..." ++++++++++++++ BattleTag: mephiHUN#2258 ++++++++ A kígyó veszélyes állat mert harap, de a takarítónő még veszélyesebb, mert ő Maris
-
Jarod1
addikt
válasz Fire/SOUL/CD #9789 üzenetére
megvan mi okozta problémát, a pénznem így szerepelt -1200.00 Ft a .00 át nem tudta értelmezni és nem számolta... kössz mindenkinek a segítséget
-
perfag
aktív tag
Bé vagyok havazva, nincs időm 2007-ben megnézni ... Excel 2010: kijelölöd a diagramodat. Ugyanúgy, mint a képeknél itt is megjelenik egy (itt több!) menücsoport, Diagrameszközök névvel. 2010-ben van egy Elrendezés fül, Tengelyek csoport, ... innen már egyszerű.
Van úgy, hogy ott van az orrunk előtt ... -
bozsozso
őstag
válasz Delila_1 #9830 üzenetére
Tudom sok a bajom, de azt meg tudtam oldani, hogy ezekhez nevekhez vigye "magával" a hozzá tartozó sorban a közvetlen mellette levő oszlop tartalmát is, de az nem sikerül sehogyan sem, hogy pl.:az "I" vagy "K" oszlop tartalmát is
Valamint nem sikerül egy meghatározott cella tartalmával létrehoznom egy munkalapot
Ezzel próbálokoztam:
Worksheets.Add =(Range("B1")
[ Szerkesztve ]
-
Delila_1
Topikgazda
válasz bozsozso #9838 üzenetére
Sheets.Add.Name = Sheets("Munka1").Range("B1")
Az I és K oszlophoz tegyél már be egy képet, hogy lássuk, mit szeretnél csinálni.
Ma én már leteszem a lantot, de biztosan lesz, aki segít.[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
föccer
nagyúr
Tisztelt Macro Mágusok!
Sajnos a hét végén temérdek rabszolga melót kellene elvégeznem a hőn szeretett MS excellel. Tudom, hogy a feladat viszonylag "egyszerűen" lekódolható lenne makróba, viszont az ez irányú ismereteim meglehetősen csekélyek (ami itt, ebben a fórumban rám ragadt), és ráadásul az is rég volt.
Ha megtennétek értem, hogy egy kód részlettel kisegítenétek, amiből kiindulva végig tudnám kódolni az egész feladatot, azt hálásan megköszönném Persze a feladat nagyságára való tekintettel némi jutányos sörmennyiséget/kp-t, túró rudit, szilvalekvárt (vagy pálinkát). tudok felajánlani. Sajnos a cég erre nem tud jelentősebb pénzt fordítani, mert van nekik egy jó rabszolgájuk Így a fizetség, csak amit a fizetésem-lakáshitelem elbír
No lássuk:
A környezet:
MS excel 2003. 3 munkalap.Munkalapok:
Az elsőn van a vezérlő, és a paraméterezést tartalmazó cellák (paraméterek: kezdő sorszám(integer); utolsó sorszám(integer); nyomtatás(boolean). Vezérlők: Összes sor nyomtatása, kijelölt sorok nyomtatása, sorszám közötti sorok nyomtatása.A másodikon vannak az alap adatok. Az adatok soronként össze tartoznak, és ~20-25 oszlopot tartalmaznak és sorszámmal vannak ellátva. 1-1 checkbox a sorok elején. A sorok száma:5749 (innen jön a feladat rabszolga része)
A harmadikban pedig egy formanyomtatvány sablonja, formázással, szegélyekkel, minden féle jóval.
A feladat, hogy a 2. munkalapon lévő adatokkal, soronként haladva, feltölteni a 3. munkalapon lévő sablont, és a paramétereknek megfelelően elindítani a nyomtatást.
Azaz, sort beolvas, sablon kitölt, nyomtat. Következő sor, adatok beolvas, nyomtat...
A paramétereknek a nevének hűen kellene működnie. Tehát:
nyomtatás: Ha ki van pipálva, akkor elvégzi a nyomtatás. Ha nincs kipipálva, akkor nem nyomtat. (logikája csak annyi, hogy 1: véletlenül ne küldjek el ~6000 oldalt a nyomtatóba, másrészt ha tesztelem a makró futását, akkor ne balhézzon nekem...)
Összes nyomtatása: szó nélkül beküldi az összes sort a nyomtatóba (na, erre felkészült a konica? )
Kijelölt sorok nyomtatása: Ahol checkbox ki van pipálva a sor elején, azt átrakja a formanyomtatványra, és kinyomtatja. Ahol nincs kipipálva, az kimarad.
Sorszámok közötti sorok nyomtatása: Értelem szerű. 1123-5433 közötti sorokat kitölt, nyomtat.
Ezen felül, csak hogy finomabb legyen, van néhány feltétel ami megszabja, hogy a sablon bizonyos celláiba, pontosan melyik adatokat lehet beírni. Ezt a feltételt minden esetben a 2. munkalapról kiolvasott adatokból el lehet dönteni.
Szóval egy jó kis házi feladat a főnökömtől hét végére. Persze nekem megér egy tálca sőrt, hogy csak az egyik napom menjen rá
Szóval várnám a szíves jelentkezőket a feladat megoldására. Ha szükséges, akkor lebutítom a jelenlegi xls táblát, és elküldöm a vállalkozó szelleműeknek. Sajnos közvetlenül publik-ba nem rakhatom ki, mert az kimerítené az ipari kémkedés fogalmát, de egy butított verziót gond nélkül kitehetek.
Előre is köszi a segítséget. A sörök/csokik várják leendő gazdájukat
üdv, föccer
Építésztechnikus. Építőmérnök.
-
bozsozso
őstag
-
Sir Pocok
őstag
Köszönöm mindenkinek a segítséget mindkét megoldást jól tudtam hasznosítani.
Az erős embernek nincs szüksége hatalomra, a gyönge jelleműt pedig tönkreteszi.
-
bozsozso
őstag
Bár még az előbbire sem találtam megoldást, de újabb problémába ütköztem
Így szeretnék másolni adott munkalapról másik munkalapra cellákat, de így az oszlopszélességek és sormagasságok nem másolódnak:Worksheets("adatlap_üres").Range("a1:I40").Copy
Cells(1, 1).PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=FalseTudnnátok segíteni mit csináljak másként?
-
Tosee
őstag
Sziasztok!
Kicsit belekeveredtem egy képletbe! Segítsen valaki!
Tehát adott egy táblázat, amiben munkaidőt tartok nyilván...
Pl.: külön cellában az óra és a perc. Egy harmadikban pedig ki kellene számolni, hogy mennyi a ledolgozott óra az adott napon!
A1 (munkaidő kezdete / óra): 05
B1 (munkaidő kezdete / perc): 30
C1 (munkaidő vége / óra): 13
D1 (munkaidő vége / perc): 30
E1 (ledolgozott óra): 8,0 de ha mondjuk 14.00 ig dolgozott valaki, akkor 9,5 legyen az eredmény!Az E1 be kellene nekem egy képlet, ami ezt jól kiszámolja!
3 műszakban, 8 órás munkaidő van általában (túlóra előfordulhat)...A4-es rajzlapom, hasonló típusú Audira cserélném!
-
-
félisten
Hát ha mindenáron külön cellákban vannak az órák/percek, akkor ilyen gyönyörűséges lesz az E1 képlete.
=HA(IDŐ(C1;D1;0)>IDŐ(A1;B1;0);IDŐ(C1;D1;0)-IDŐ(A1;B1;0);24-IDŐ(A1;B1;0)+IDŐ(C1;D1;0))
Pá
A műszak lehet 22:00-tól 6:00-ig (másnap), ezért az az egyszerű képlet úgy nem lesz jó...
Így kellene módosítani: =HA(B1>A1;B1-A1;24-A1+B1)[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Vazallus
tag
Üdv,
Valaki tudja esetleg nagyvonalakban hogy kell doboz-ábrát készíteni,akár excelben akár máshol?"Mr. Salieri sends his regards"
-
bugizozi
őstag
Azt a sablont nem lehet megcsinálni worben és akkor készítesz egy körlevelet, aminek az elemei a Munka2 táblán lévő adatok? Mondjuk akkor is nézned kéne hogy melyik ChackBox-ban pipa és melyikben nincs, de egyfajta gyorsabb megoldás ez is lehet...vagy rosszul gondolom?
VCP7-DCV, CCNA ||| Ami működik, ahhoz nem szabad hozzányúlni!
-
Sixkiller6
őstag
rájöttem közben
[ Szerkesztve ]
- no es importante -
Új hozzászólás Aktív témák
- Amazon Kindle
- Vezeték nélküli fülhallgatók
- Turbo Kid teszt
- A fociról könnyedén, egy baráti társaságban
- Robot fűnyírók
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Vezetékes FÜLhallgatók
- Yettel topik
- Telekom mobilszolgáltatások
- Peugeot, Citroën topik
- További aktív témák...
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! LEGOLCSÓBB! Automatikus 0-24
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )
- Game Pass Ultimate előfizetések 1 - 25 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN!
- AKCIÓ! - STEAM kulcsok /Anuchard, Aragami, Children of Morta, stb. - 2024.04.17.
- Eredeti Windows, telepítéssel! Digital Doctor Számítógép Szerviz