- Okosóra és okoskiegészítő topik
- Digitális detox a Nokiától
- Vodafone mobilszolgáltatások
- Itt az első kép a 2024-es Nokia 3210-ről
- DIGI Mobil
- Milyen okostelefont vegyek?
- OnePlus 7 - magabiztos folytatás
- Redmi Note 10 Pro - majdnem minden stimmel
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
Hirdetés
-
Konzolokra is megjelenik a Fera: The Sundered Tribe
gp A kooperatív szörnyvadászós játékhoz a minap egy friss trailert kaptunk.
-
Toyota Corolla Touring Sport 2.0 teszt és az autóipar
lo Némi autóipari kitekintés után egy középkategóriás autót mutatok be, ami az észszerűség műhelyében készül.
-
Az Apple iPadOS-t is megrendszabályozza az EU
it Az EB közölte: az Apple iPad táblagépekre írt iPadOS rendszere is kapuőrnek számít, az üzleti felhasználókra gyakorolt fontossága miatt.
-
Mobilarena
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
-
bteebi
veterán
válasz Carasc0 #23562 üzenetére
Lehet, hogy csak én vagyok kevés, de nem volt teljesen tiszta . Azonban ha jól gondolom, hogy mit szeretnél, akkor azt makróval könnyen meg lehet oldani, de valószínűleg anélkül is. Egy konkrét példát másolj be légyszi.
Cancel all my meetings. Someone is wrong on the Internet.
-
slashing
senior tag
válasz Carasc0 #23562 üzenetére
Nem teljesen egyértelmű de valószínűsítem hogy a relatív és abszolút hivtakozás kell neked:
Pl. Abszolút oszlop és abszolút sor $A$1 mindig erre a cellára fog hivatkozni a képlet ha lehúzod
Pl. Relatív oszlop abszolút sor: A$1 mindig az adott oszlop 1. cellájára fog hivatkozni ha elhúzod a képletet
stb.. stb...F4 billentyűvel tudod váltogatni gyorsan hogy melyik legyen relatív vagy abszolút...
Ha csak egy cellahivatkozást akarsz módosítani ahogy lehúzod a képletet akkor azon kívül mindegyik cellát rakd abszolútra...
Ha nem érthető keress rá az excel súgóban szerintem az egyik legérthetőbb súgó amit Microsoft terméknél láttam....
-
slashing
senior tag
válasz Carasc0 #23565 üzenetére
Azért nem változik a "C" "D"-re ha elhúzod a képlet mert a C oszlop abszolút hivatkozva van tehát az mindig fixen C lesz a képletben, szedd ki előle a $-jelet és úgy húzd el a képletet és ha mindig a második sorból kell az adat akkor meg oda rakd a $-t.
A másoláson remélhetőleg a fogd és húzd módszert érted nem a ctrl+c/v-t
-
m.zmrzlina
senior tag
-
bteebi
veterán
válasz Carasc0 #23567 üzenetére
1. Gagyi és jelen esetben valószínűleg nem túl gyors, de egyszerű megoldás, ha lehúzod a képletet, és a megfelelő részt lecseréled Ctrl+H-val (mondjuk a C-t D-re, de ha ez soronként változik, akkor nem jó). Feladattól függően elég macerás is lehet (itt most valószínűleg túl körülményes lenne).
2. Makróval. Kiindulásnak valami ilyesmi jó lehet, ezt kell kicsit átírnod:Dim i As Integer
For i = 1 To 40
Cells(i, 2).Value = WorksheetFunction.If(Sheets("Nyilvántartás").Range("C2") = Range("CX1"), WorksheetFunction.If(Sheets("Nyilvántartás").Range("D2") >= Range("K2"), WorksheetFunction.If(Sheets("Nyilvántartás").Range("D2") <= Range("K8"), 1, 0), 0), 0)
Next iHa a Range("hivatkozás") helyett mindenhol a Cells(sor, oszlop)-ot használod, akkor azt úgy paraméterezed ciklusban, ahogy csak szeretnéd, és akkor könnyen megvan az egész. A fenti példában a B1-es cellába (ami a Cells(1,2) cella) írt képlet van.
Cancel all my meetings. Someone is wrong on the Internet.
-
-
Delila_1
Topikgazda
válasz Carasc0 #23572 üzenetére
Úgy érted, hogy pl. AA100=10, AB100=20, AC100=30, és ezeket akarod valahol egymás alatt megjeleníteni?
Ha igen, a képlet az első sorban megadva=OFSZET($A$1;99;SOR()+25)
mert az első sorhoz képest a 100. sor 99-cel van eltolva lefelé.
[ 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.
-
Delila_1
Topikgazda
válasz Carasc0 #23572 üzenetére
Nem volt időm befejezni.
Az AA100 a 100. sor, és 27. oszlop.
Az AA100 az A1-től lefelé 99 sorra, jobbra pedig 26 oszlopra van.
A25-ből indulva a képlet
=OFSZET($A$25;75;SOR()+1)
Kicsit körülményes elmagyarázni, de biztosan rájössz a logikájára.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
válasz Carasc0 #23572 üzenetére
Szia!
Csináld meg a képletet vizszíntesen: =AA$100, ezt húzd el vizszintesen addig, ameddig szükséged van rá.
Utána: Másolás - uj cella kijelölése az oszlopban - irányított beillesztés: képletet és transzponálás ! A képleted számodra megfelelően másolódik át lefelé.
Üdv.
-
Fferi50
őstag
válasz Carasc0 #23585 üzenetére
Szia!
Az egyik gyorsítási lehetőség az, hogy kikapcsolod az automatikus ujraszámolást. Amikor változtatsz valamit, akkor kézzel számoltatsz (Természetesen ez makróból is megy mindkettő.) Az Excelt azelőtt állítsd át kézi számolásra, mielőtt behívod a munkafüzetet. (Makróban: application.calculation= és innen felajánlja a lehetőségeket).
A másik, hogy végiggondolod, melyek azok a képletek, amelyeknek az eredménye frissítés. Ezek általában olyan képletek, amelyek rendszer változó dolgokra vonatkoznak pl. ilyen az indirekt, az offset meg még van egy pár belőle. Ezek minden egyes cella megváltozásakor azonnal újraszámítódnak, akkor is, ha nem a "hozzájuk tartozó cella" változott.
Harmadik dolog, a képeket biztosan nem éri meg "belegyömöszölni" az excelbe. Tedd be őket egy adott könyvtárba és a programban csak a hivatkozás kell bele, az excel betölti és utána el is tudod vele felejtetni.
Ugyanez vonatkozik nagytömegű szövegre (pl. help, magyarázat). Ezt is bele lehet tenni egy külön fájlba.Ha megnézed tömörítővel pl. zip, abból is kiderülhet, hogy melyik rész az ami "nyomja" a területet.
(fájl kiterjesztést átírod zip-re utána a zip tömörítővel meg tudod nézni, ki is tudod tömöríteni egy külön helyre azt, amire kíváncsi vagy. Arra vigyázz, hogy ne szerkessz bele, mert akkor baj lehet belőle. Ajánlatos mindezt a fájl másolatával megcsinálni.) Ha nem "rondítottál bele", akkor a visszanevezés után ugyanúgy lehet vele dolgozni, mint azelőtt.Üdv.
-
Fferi50
őstag
válasz Carasc0 #23589 üzenetére
Szia!
Megnyitás előbb kikapcsolod az automatikus számolást a menüből. Megnyitás után visszakapcsolod.
De akkor meg a szám beírása után lesz hosszú idő, amíg "magához tér" a fájl.
Szerintem mindenképpen vizsgáld meg, hogy minden képletre szükséged van-e és abban a formában.Üdv.
-
Delila_1
Topikgazda
válasz Carasc0 #23585 üzenetére
Gondolom, a rengeteg adat hosszú időn át gyűlt fel. Az egyes sorokban lévő képletek frissülése hosszú időt vesz igénybe. A helyedben azokat a képleteket, függvényeket szüntetném meg, amiknek az eredménye már biztosan nem változik, például az előző évi adatoknál.
Ezt az irányított beillesztéssel szüntetheted meg, ahol a képleteket tartalmazó cellákat másolod, és irányítottan, értékként ugyanoda beilleszted.
Programozó: 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 Carasc0 #27601 üzenetére
A makró átmásolja az A1:A9 tartományt a B1:B9-be. Véletlenszámokat ír a C1:C9-be, ami szerint rendezi a B oszlopot, majd törli az ideiglenes C-t.
A rendezést makrórögzítéssel vittem be.Sub Kever()
Dim sor As Integer
Range("A1:A9").Copy Range("B1")
For sor = 1 To 9
Cells(sor, "C") = "=RAND()"
Cells(sor, "C") = Cells(sor, "C").Value
Next
ActiveWorkbook.Worksheets("Munka1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Munka1").Sort.SortFields.Add Key:=Range("C1:C9"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Munka1").Sort
.SetRange Range("B1:C9")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("C1:C9").ClearContents
End SubBetehetsz egy képernyőfrissítés tiltását az elejére, hogy ne látsszanak a véletlenek, a végén pedig engedélyezed.
Application.ScreenUpdating=False
[ 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.
-
azopi74
addikt
válasz Carasc0 #27601 üzenetére
Bár írtad, hogy Excel 2010, azért beteszek egy Excel 2016-os, makró mentes megoldást is , mert imádom
(Excel 2010-ben is működőképes, csak fel kell tenned a PowerQuery add-in-t.)ALakítsd táblává (Table1) a forrás oszlopot. és B1-be szúrd be ezt a query-t (Advanced Editor):
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Added Custom" = Table.AddColumn(Source, "Custom", each List.Random(1)),
#"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Custom"),
#"Sorted Rows" = Table.Sort(#"Expanded Custom",{{"Custom", Order.Ascending}}),
#"Removed Columns" = Table.RemoveColumns(#"Sorted Rows",{"Custom"})
in
#"Removed Columns"Természetesen a fenti a sima query editorban előállítható négy egérkattintással
Ja, azt elfelejtettem írni: refresh-re kalkulálja újra a kevert oszlopot. (jobb egér - refresh, vagy magyarban frissítés)
[ Szerkesztve ]
-
Delila_1
Topikgazda
válasz Carasc0 #27604 üzenetére
Csak írd be az A oszlopba az adatokat. Ha nem kerek számot adna az adatok darabszámának a gyöke, hibajelzést kapsz.
Hibátlan darabszámnál kiírja a "kevert" mátrixot a D1 cellától kezdődően. 9; 16; 25; és 36 adatra kipróbáltam, nem kell módosítanod semmit. Illetve ha nem tetszik, hogy D1-be kezd írni, akkor a
sor = 1: oszlop = 4 sorban a 4-et írd át a kedvenc oszlopod sorszámára.Sub Kever()
Dim usor As Integer, gyok As Integer, CV As Range
Dim sor As Integer, oszlop As Integer
Application.ScreenUpdating = False
usor = Range("A" & Rows.Count).End(xlUp).Row
On Error GoTo Vege
gyok = Application.WorksheetFunction.ImSqrt(usor)
Range("A1:A" & usor).Copy Range("B1")
Range("C1:C" & usor) = "=rand()"
Range("C1:C" & usor).Copy
Range("C1").PasteSpecial xlPasteValues
ActiveWorkbook.Worksheets("Munka1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Munka1").Sort.SortFields.Add Key:=Range("C1:C" & usor), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Munka1").Sort
.SetRange Range("B1:C" & usor)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
sor = 1: oszlop = 4
For Each CV In Range("B1:B" & usor)
If sor > gyok Then
sor = 1
oszlop = oszlop + 1
End If
CV.Copy Cells(sor, oszlop)
sor = sor + 1
Next
Range("B1:C" & usor).ClearContents
Range("D1").Select
Application.ScreenUpdating = True
Exit Sub
Vege:
MsgBox "Nem adnak mátrixot az adatok", vbInformation
Application.ScreenUpdating = True
End Sub[ 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.
-
azopi74
addikt
válasz Carasc0 #27604 üzenetére
"A PowerQuery cucc feltétele az IE 9 megléte"
Hát ez ebben a formában nem igaz. IE 9 vagy annál újabb kell neki (gondolom nem IE8-at vagy IE6-ot használsz )
Én se lennék hajlandó ilyen elavult böngészőt telepíteni, mint az IE9, de nem is kell (sőt nem is lehet mai OS-ekre) , természetesen megy a mai böngészőkkel. is Nálam is gond nélkül fut már két éve, pedig sose látott IE9-et, csak IE11-et, sőt, jelenleg egyáltalán semmilyen Internet Explorert se lát, csak Edge-etOffice 2013-ba még csak a PowerPivotot tették be, a PowerQuery (lánykori nevén Data Explorer) csak Office 2016-tól lett beintegrálva az Excelbe.
2010-re és 2013-ra külön kell letölteni.[ Szerkesztve ]
-
Fferi50
őstag
válasz Carasc0 #27787 üzenetére
Szia!
A munkalap activate eseménykezelőjébe kell betenned a makró meghívását.
Munkalapfülön jobb egérgomb - kód megjelenítése - bal oldalon a lenyílóban Worksheet kiválasztása, utána jobb oldali lenyílóban activate kiválasztása. A megjelenő sub end sub sorok közé beírod a makród nevét.Ezek után minden olyan alkalommal, amikor aktívvá teszed a lapot (másik lapról ide átjössz), lefut a makród.
A másik kérdésedre igen a válasz.
Üdv.
-
-
Fferi50
őstag
válasz Carasc0 #27795 üzenetére
Szia!
A cellákban levő szöveg betűszínét változtasd meg a háttérszínnek megfelelően - akkor nem fog látszani, mi van bele írva. Amikor megmutatod, akkor visszaváltod a színt. (Range("A1").font.color=vbwhite fehér színű betűk, Range("A1").font.color=vbblack fekete színű betűk.)
Üdv.
-
Carasc0
őstag
válasz Carasc0 #27862 üzenetére
Közbe próbálkozom Excelben ezzel a Progress Barral. Találtam egy olyan lehetőséget ami jó lehet. Ez pediglen a feltételes formázáson belüli adatsáv alkalmazása. Ez tök jó lehet, egyetlen bökkenője van. Hogy az adatsáv csak bal to jobb és fordítva lehet, tehát csak horizontálisan működik. Ha ez működne vertikálisan, az már frankó lenne.
Gondolkodj globálisan és tegyél lokálisan!
-
azopi74
addikt
válasz Carasc0 #27885 üzenetére
Nem értem, még mindig, hogy mi a problémád. De azt sem teljesen értem, hogy egy darab cellára milyen adatsáv szerinti feltételes formázást akarsz alkalmazni. Az adatsáv mindig más cellákhoz viszonyítva szemlélteti az egyes cellák értékét, egy cellára alkalmazva mit akarsz ezzel kezdeni? Mindig "teli" lesz a csík.
-
-
Delila_1
Topikgazda
válasz Carasc0 #27878 üzenetére
Az eredeti kérdésre (mert lusta vagyok megnézni a feltöltöttet) a laphoz rendeld a lenti bonyolult makrót.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target > "" Then Range("A2") = Range("A2") + Target
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.
-
Fferi50
őstag
válasz Carasc0 #28047 üzenetére
Szia!
1. A makrót én kiegészíteném ezzel az első sorral:
If Target.Cells.Count>1 then exit sub
Ez azt jelenti, ha több cellát jelöltél ki egyszerre, akkor nem vizsgálja, hogy a V3 cellát hagytad-e el.2."Adott egymás alatt 4 cella: A1 : D1 " Ez a négy cella egymás mellett van
A véletlenszám generáláshoz nézd meg a RandBetween munkalapfüggvényt (Worksheetfunction). Itt megadhatod a határokat. Az eredményt kerekítő függvénnyel kerekítheted. Ezután megnézed, van-e már ilyen számod. Ha igen, akkor új generálás és vizsgálat, ha nem, akkor beírod a cellába.Üdv.
[ Szerkesztve ]
-
Carasc0
őstag
-
Delila_1
Topikgazda
válasz Carasc0 #30867 üzenetére
"Az A1:A25-ben lévő számokat úgy keverje össze, hogy kihagyás nélkül feltöltse a C1:C25 tartományt."
Hol van itt 5 maradék? Ess neki újra a feladat megfogalmazásának, hátha akkor kapsz segítséget.
Programozó: 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 Carasc0 #30870 üzenetére
Sub Kever()
Dim sor As Integer
Application.ScreenUpdating = False
With Sheets("BÓNUSZ GENERÁTOROK")
.Range("C1:C50").ClearContents
.Range("A1:A20").Copy Range("C1")
.Range("B1:B20") = "=RAND()"
.Range("B1:B20").Copy
.Range("B1").PasteSpecial xlPasteValues
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:= _
.Range("B1:B20"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With .Sort
.SetRange Range("B1:C20")
.Header = xlGuess
.Orientation = xlTopToBottom
.Apply
End With
.Range("A21:A25").Copy Range("C21")
.Range("B21:B50") = "=Int(Rand() * (50 - 21)) + 21"
.Range("B21:B50").Copy
.Range("B21").PasteSpecial xlPasteValues
.Sort.SortFields.Add Key:= _
.Range("B21:B50"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With .Sort
.SetRange Range("B21:C50")
.Header = xlGuess
.Orientation = xlTopToBottom
.Apply
End With
.Range("B1:B50").ClearContents
.Cells(1).Select
End With
Application.ScreenUpdating = True
End SubHol a söröm?
[ 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.
-
Delila_1
Topikgazda
válasz Carasc0 #30874 üzenetére
Tartományhoz (pl. C1:C25) használd a Konvertálatlan gombot.
Sub Kever()
Dim sor As Integer, sor1 As Integer
Application.ScreenUpdating = False
With Sheets("BÓNUSZ GENERÁTOROK")
.Range("C1:C50").ClearContents
.Range("A1:A50").Copy Range("C1")
Randomize
.Range("B1:B50") = "=RAND()"
.Range("B1:B50").Copy
.Range("B1").PasteSpecial xlPasteValues
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:= _
.Range("B1:B50"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
With .Sort
.SetRange Range("B1:C50")
.Header = xlGuess
.Orientation = xlTopToBottom
.Apply
End With
For sor = 1 To 20
If Cells(sor, "C") = "" Then
sor1 = Cells(sor, "C").End(xlDown).Row
Cells(sor1, "C").Copy Cells(sor, "C")
Cells(sor1, "C") = ""
End If
Next
sor1 = Cells(sor, "C").End(xlDown).Row
If Application.WorksheetFunction.CountA(Range("C23:C" & sor1 - 1)) = 0 Then _
Range("C21:C" & sor1 - 1).Delete Shift:=xlUp
sor1 = Cells(Rows.Count, "C").End(xlUp).Row
For sor = sor1 To 21 Step -1
Cells(sor, "C").Insert Shift:=xlDown
Next
sor1 = Cells(Rows.Count, "C").End(xlUp).Row
If sor1 > 50 Then
For sor = 50 To 45 Step -1
If Cells(sor, "C") = "" Then
Cells(sor, "C") = Cells(sor1, "C"): Cells(sor1, "C") = ""
End If
Next
End If
.Range("B1:B50").ClearContents
.Cells(1).Select
End With
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 Carasc0 #30878 üzenetére
Lehet, hogy a lapodhoz van rendelve egy eseményvezérelt makró. Nálam nincs, nem is fagy le.
Kijelölöd a C1:C25-öt, és megnyomod a Konvertálatlan gombot. Akkor nem ugrik be semmiféle smile.
Szerk.: az általam írt makrót ne a laphoz rendeld, hanem modulban helyezd el.
[ 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.
-
Delila_1
Topikgazda
-
Delila_1
Topikgazda
válasz Carasc0 #30890 üzenetére
A csatolt képeken nem látszik, hova tetted a makrókat, csak az, hogy egymás alá.
Újra leírom: az eseményvezérelt makrót ahhoz a laphoz rendeld, ahol futtatni akarod, a másikat modulba.
Azt látom, hogy az első With-nél átírtad – helyesen – a lap nevét arra, amelyiken éppen futtatod.Programozó: 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 Carasc0 #30901 üzenetére
Ez csak makróval oldható meg.
Tudni kellene, hogy mindig az A1 cellába viszel-e be adatot, és mindig a B1-ben jelenjen-e meg ugyanúgy, vagy esetleg az A oszlop bármelyik sorába bevitt adat jelenjen meg a B oszlop azonos sorában, vagy egészen más a felállás.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
Új hozzászólás Aktív témák
- Dark Souls sorozat
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Politika
- ASUS ROG Ally
- Számtech boltosok memoárjai, azaz amikor kiborulunk...
- PlayStation 5
- PlayStation rajongói nyereményjáték
- Magga: PLEX: multimédia az egész lakásban
- Okosóra és okoskiegészítő topik
- Nintendo Switch
- További aktív témák...
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Steames kulcsok jó áron eladóak!
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.