Hirdetés
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- eBay-es kütyük kis pénzért
- GoodSpeed: Márkaváltás sok-sok év után
- D@reeo: Pi-hole és a Telekom Sagemcom F@st 5670 DNS beállítása
- N€T0X|N: Poloskahegy
- bb0t: Ikea PAX gardrób és a pokol logisztikája
-
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
-
Delila_1
veterán
válasz
Fire/SOUL/CD
#11175
üzenetére

Kész a terasz?
-
Delila_1
veterán
válasz
zoli1962
#11169
üzenetére
Nézz szét itt, és ezen a környéken.
2003-ban a Beszúrás, Név, Név megadása almenüben adhatsz nevet egy területnek, és ugyanott módosíthatod is.
A módosításnál lépj be a Hivatkozás mezőbe, és nyomj F2-t a szerkesztő üzemmódhoz, másképp elrontod a képletedet. Mikor kész, nyomd meg a Hozzáad gombot – módosításkor is. A panel bezárása előtt érdemes a Hivatkozás mező jobb oldalán lévő színes gombot megnyomni, megmutatja a képletnek megfelelő területet. Ha hibáztál, így könnyen észreveszed.
-
-
Delila_1
veterán
Az Árak fülön minden sorban szerepeljen a gép neve. Ha akarod, a másodiktól kezdve a karakter színe legyen olyan, mint a háttér, akkor nem zavar.
Ha csak minden 6. sorban szerepel gépnév, kukkants ide a kitöltéshez.Szúrj be egy oszlopot a gépnév elé. Ennek az oszlopnak a képlete (címsort feltételezve)
=B2&" "&C2
Ezzel a gép nevét és a szolgáltatást összefűzted, közöttük egy szóközzel.Az fkereshez ezt írod be.
=fkeres(A2&" "&B2;Árak!A:A;......;0)Feltételeztem, hogy az Ajánlat lapon az A oszlopban vannak a gépnevek, B-ben a kategóriák.
-
Delila_1
veterán
válasz
bozsozso
#11150
üzenetére
Jó azt is tudni, hogy ha a hónapok lapjain azonos cellában van egy adat, amit az összegző lapon akarsz összesíteni, van rá egy egyszerű megoldás.
Pl. minden lap C35 cellájában van egy havi összesítő érték, akkor az összegző lapon az
=szum(Január:December!C35) képlet egy lépésben összegzi ezeket.
Csak arra vigyázz, hogy a Január és December lap közé ne keveredjen be oda nem tartozó lap.A szum helyett lehet átlag, min, max, stb függvény is.
-
Delila_1
veterán
válasz
m.zmrzlina
#11135
üzenetére

-
Delila_1
veterán
válasz
m.zmrzlina
#11128
üzenetére
A kérdés így szólt:
"ha számot írok H vagy D sorba akkor az A sorba beírja a dátumot (éppen most)"Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 4 Or Target.Column = 8 Then
If IsNumeric(Target) Then Cells(Target.Row, 1) = Now()
End If
Application.EnableEvents = True
End Sub -
Delila_1
veterán
Ha erre gondoltál,

ez a makró állítja elő:
Sub megj()
For Each CV In Range("A2:A11")
név = CV
If Weekday(név, 2) = 1 Then m = Date - 3 Else m = Date - 1
név = Year(m) & "." & Right("0" & Month(m), 2) & "." & Right("0" & Day(m), 2)
On Error Resume Next
CV.AddComment
CV.Comment.Text Text:=név
CV.Select
ActiveCell.Comment.Visible = True
CV.Comment.Shape.Select True
With Selection.ShapeRange
.ScaleWidth 0.48, msoFalse, msoScaleFromTopLeft
.ScaleHeight 0.23, msoFalse, msoScaleFromTopLeft
End With
Next
End Sub -
Delila_1
veterán
válasz
varsam
#11109
üzenetére
Azt elmulasztottam megírni, hogy a makrót ahhoz a laphoz kell rendelned, amelyiken elő akarod csalni a képet.
Ennek a módjáról már sokszor volt szó, legutóbb itt. -
Delila_1
veterán
válasz
varsam
#11104
üzenetére
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "" Then Exit Sub
If Target.Address = "$B$2" Then 'ehelyett írd azt a cellát, amibe adatot viszel a kép
'megjelenítéséhez
Dim utvonal As String
Dim FN As String
utvonal = "D:\valami\valami_más\" 'ide írd a saját útvonaladat
FN = "képneve.jpg" 'ide írd a beszúrandó kép nevét kiterjesztéssel
Range("D2").Select 'a D2 bal felső sarkához illeszti a képet, írd át
ActiveSheet.Pictures.Insert(utvonal & FN).Select
End If
End SubHa a B2 cellába írsz valamit, a D2-be beilleszti a képet, aminek az útvonalát és a nevét a kiterjesztéssel együtt megadod a jelölt sorokban.
-
Delila_1
veterán
válasz
cortez25
#11099
üzenetére
Azt hiszem, megértettem, de közel sem biztos.
A RANDBETWEEN(x;y) függvény adja az x és y értékek közötti véletlen egész számokat.
Ezt cellákra hivatkozással is megadhatod: =randbetween($a$1;$b$1), és másolhatod.Ha nem találsz a függvényeid között ilyent, az Eszközök - Bővítménykezelő menüben a két Analyzis kezdetűt jelöld be.
-
Delila_1
veterán
válasz
fokukac
#11089
üzenetére
Ez a makró a gyűjtő füzetből indítva a megadott útvonalú könyvtár xls fájljait egyenként behívja, és az A2:D_utolsó_sor tartományukban lévő adatokat egymás alá bemásolja a gyűjtő füzetbe.
Sub Osszevon()
Const utvonal = "D:\valami\" 'Itt írd át az útvonalat
Dim FN As String, WB As Workbook
ChDir utvonal
FN = Dir(utvonal & "*.xls", vbNormal)
Do
If FN <> "." And FN <> ".." Then
Workbooks.Open Filename:=FN
usor = Range("A65536").End(xlUp).Row 'Behívott füzet alsó sora
Range(Cells(2, 1), Cells(usor, 4)).Copy 'A2:Dvalahány tartomány másolása
ActiveWindow.ActivateNext
gy_usor = Range("A65536").End(xlUp).Row + 1 'Gyüjtő füzet alsó sora
Cells(gy_usor, 1).Select
ActiveSheet.Paste 'Beillesztés
ActiveWindow.ActivatePrevious 'Behívott füzet
ActiveWindow.Close 'Bezárás
End If
FN = Dir()
Loop Until FN = ""
End Sub -
Delila_1
veterán
válasz
zsotesz81
#11085
üzenetére
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 Or Target.Column = 8 Then
Dim icolor As Integer
If Target = "low" Then icolor = 35
If Target = "medium" Then icolor = 36
If Target = "high" Then icolor = 40
If Target = "" Then icolor = 15
Range(Target.Address).Interior.ColorIndex = icolor
End If
End Sub -
Delila_1
veterán
Itt van az új makró a pontosítások után:
Sub mmm()
Dim talal As Variant, usor As Integer, sor As Integer
Dim adat_1, adat_2Windows("segédtábla.xls").Activate
Sheets(1).Select
usor = ActiveSheet.UsedRange.Rows.CountFor sor = 2 To usor
adat_1 = Cells(sor, 1): adat_2 = Cells(sor, 2)
Windows("főtábla.xls").Activate
Sheets(1).Select
On Error Resume Next
talal = Columns("A:A").Find(adat_1, LookIn:=xlValues).Row
Workbooks("főtábla.xls").Sheets(1).Cells(talal, 1) = adat_2
Windows("segédtábla.xls").Activate
Next
End SubAlt+F11-gyel behívod a VBA szerkesztőt. Bal oldalon a kiválasztod a füzetedet – mindegy, hogy a kettő közül melyiket. A néven jobb klikk, Insert, Module. Jobb oldalon kapsz egy üres felületet, oda másold be a makrót.
Mindkét füzeted legyen nyitva. Az egyikben állva Eszközök, Makró, Makrók – vagy ezek helyett Alt+F8 –, kapsz egy párbeszéd ablakot, ott indítod a hangzatos mmm című makrót. -
Delila_1
veterán
Írtam egy makrót, de több dolog tisztázatlan. Úgy vettem, hogy mindkét füzetben az első lapon vannak az adatok. Nem írtam bele hibakezelést arra az esetre, ha a főtábla.xls-ben nem szerepel a segédtábla.xls valamelyik adata.
Továbbá nem tudom, a főtáblában melyik "a főtábla adott mezője", ahova át kell másolni a segédtábla B oszlopában található értéket. A makró a megtalált adat sorának a B oszlopába írja a segédtábla B mezőjét.
Ha ezeket a dolgokat tisztáztuk, megmondom, mi(ke)t kell átírni a makróban, és egyáltalán hogy kell alkalmazni. Ha nem leszek itt, biztosan kisegít valaki.
Sub Javit()
Dim talal As Variant, usor As Integer, sor As Integer
Dim nev, szam
Windows("segédtábla.xls").Activate
Sheets(1).Select
usor = ActiveSheet.UsedRange.Rows.Count
For sor = 2 To usor
nev = Cells(sor, 1): szam = Cells(sor, 2)
Windows("főtábla.xls").Activate
Sheets(1).Select
talal = Columns("A:A").Find(nev, LookIn:=xlValues).Row
Workbooks("főtábla.xls").Sheets(1).Cells(talal, 2) = szam
Windows("segédtábla.xls").Activate
Next
End Sub -
Delila_1
veterán
válasz
Fehér Mancs
#11072
üzenetére
Sokkal egyszerűbb, mint az én megoldásom. Annyit viszont tévesztettél, hogy a végén -2 helyett -1 kell.
zhari magyar Exceljéhez
=OFSZET($A$2;0;OSZLOP()*2-1) -
Delila_1
veterán
-
Delila_1
veterán
válasz
Fire/SOUL/CD
#11060
üzenetére
Nem figyelted, hogy az első sor nem a következő oszlopból veszi a 2. sor értékét – csak a B oszlopban –, az oszlopra történő hivatkozás cellánként nő eggyel.
-
Delila_1
veterán
válasz
Fire/SOUL/CD
#11048
üzenetére
Csodálkoztam volna, ha egyformán értjük a dolgot.

-
Delila_1
veterán
válasz
Fire/SOUL/CD
#11043
üzenetére
Ez csak akkor igaz, ha a további oszlopokban is össze vannak vonva hármasával az oszlopok.
Szerintem a nem nevet tartalmazó sorokat jobbra kellene tolni egy cellával, a nevek oszlopában pedig minden így keletkezett "lyukat" fel kellene tölteni a fölötte lévő értékkel. Akkor lehet rendezni. A két újonnan bevitt név karaktereit a háttér színére állítanám.
A jobbra toláshoz segít a Ctrl és a plusz billentyű.A "lyukak" feltöltéséről volt már itt szó, a Ctrl+g kulcsszóval meg lehet találni.
-
Delila_1
veterán
válasz
b.bone
#11005
üzenetére
A tól-ig tartományt így határozhatod meg a feltételes formázásnál:
=AND(E1>=TODAY();E1<=TODAY()+7)
Látod, a zárójelbe nem kell a nulla érték.
Szerk.
Az utolsó példádnál a mai napot, és az ezt követő 7. napot akarod formázni?
Akkor =OR(E1=TODAY();E1=TODAY()+7) a képlet.A feltételes formázásokat az Excel a bevitel sorrendjében hajtja végre. Ha elsőként a felső képletet adtad meg mondjuk sárga háttérrel, ez fog érvényesülni, mert a második képlet szintén a mai, és a +7 napi dátumot tartalmazó cellákat formázná meg. Itt az első parancs az érvényes, nem az utolsó, mint a katonaságnál.
Végrehajtja a többi formázó képletet is, ha nem ugyanazokra a dátumokra vonatkoznak.
-
Delila_1
veterán
Az összesítő lap F oszlopában az INDIREKT(F$1&"!A:G") függvény adja meg az FKERES függvény keresési tartományát, a B1ny lap A:G oszlopát.
Az F1 cellában van a lap neve, ahol keressen.A következő oszlop indirekt függvénye a G1 cellában szereplő lap (B2ny) A:G tartományában keres.
-
Delila_1
veterán
válasz
mr.nagy
#10984
üzenetére
Most látom, hogy még délelőtt hozzáírtál.

Az 5. sor a címsor? Ha igen, nem kell módosítanod a kódon, ha az már adatsor, akkor a For kezdetű sorban a 6-ot írd át 5-re.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim usor%, sor%
usor% = Range("A65536").End(xlUp).Row
If Not Intersect(Range("A1"), Target) Is Nothing Then
If Target = "" Then
Rows("5:50000").Hidden = False
Else
For sor% = 6 To usor%
If Cells(sor%, 1) <> Cells(1) Then Rows(sor%).Hidden = True
Next
End If
End If
End SubAz A1 cellába történő beíráskor elrejti azokat a sorokat, amik nem egyenlőek annak a tartalmával. A cella törlésekor minden sort felfed.
Abban az esetben, mikor az oszlopban nem található adatot írsz az A1-be, minden sort elrejt, de ekkor is láthatóvá teheted újra a sorokat az A1 tartalmának a törlésével. -
Delila_1
veterán
válasz
mr.nagy
#10982
üzenetére
Igen, megoldható. A laphoz kell rendelned a kódot.
Private Sub Worksheet_Change(ByVal Target As Range)
Range("A5").Select
If Intersect(Range("A1"), Target) = "" Then Exit Sub
If Not Intersect(Range("A1"), Target) Is Nothing Then _
Selection.AutoFilter Field:=1, Criteria1:=Range("A1")
End Sub -
Delila_1
veterán
válasz
medvezsolt
#10965
üzenetére
Ezt ennyi információval, hogy "lehet, hogy A2öt ki akarom vonni belőle, A11-et nem", nem lehet leprogramozni.
Mikor már PONTOSAN tudod, mit akarsz összeadni, vagy kivonni, mit milyen formátumban akarsz megjeleníteni, akkor újra tedd fel a kérdést.
-
Delila_1
veterán
válasz
Pityke78
#10971
üzenetére
A kijelölt területnek ezres csoportosítást ad tizedesek nélkül, és nem "írja rá" a cella jobb oldalára, hanem egy L betű szélességgel beljebb teszi a számokat:
Sub Szamformatum()
Selection.NumberFormat = "#,##0_L"
End SubA personalba másold be, majd tegyél ki hozzá a gyorselérési eszköztárra egy ikont.
A personalról már többször volt szó itt a fórumon. -
Delila_1
veterán
válasz
repvez
#10947
üzenetére
Tettem ide egy füzetet.
A jelenléti lapokra két megoldás van benne, az "Anna éves" és "Anna é" nevű lapokon (ugyanez Rékával is), nem kívánt törlendő.
Az Összesítő lapon az órák szerepelnek, míg az egyéni jelenléti lapokon minden, ami egy-egy emberhez tartozik a hónapok adatait tartalmazó lapokon.
1 füzetbe tehetsz mindent. 12 hónap, 7 ember 1-1 lapja, plusz egy összesítő nem túl sok lap egy füzetben.
-
Delila_1
veterán
válasz
Fire/SOUL/CD
#10944
üzenetére
Annál is írja a négyszöget, ha van, ha nincs engedélyezve a sortörés.
-
Delila_1
veterán
válasz
m.zmrzlina
#10935
üzenetére
Hivatkozhatsz cellára is. Próba - cseresznye.
Bocs, nem tudom most kipróbálni, szörnyű rabszolgamunkám van. -
Delila_1
veterán
válasz
m.zmrzlina
#10933
üzenetére
"=ÉRTÉK(BAL(indirekt("B" & 27;8))>=$F$24" legyen a feltétel
-
Delila_1
veterán
válasz
m.zmrzlina
#10924
üzenetére
Próbálj meg egy indirektet adni a $B27-hez.
-
Delila_1
veterán
Egy érdekesség ehhez a SORSZÁM függvényhez:
Egyforma értékek (dátumok) esetén azonos sorszámot ad – eddig rendben van – és nem ad következő sorszámot annyiszor, ahány egyforma értéket talál.
Kicsit érthetőbben: ha háromszor szerepel egy dátum, ami az 5. a sorrendben, nem lesz 6-7. helyezés, a következő a 8. lesz.
-
Delila_1
veterán
válasz
cousin333
#10920
üzenetére
Az eredeti kérdésben nem szerepelt, hogy a képletet tartalmazó oszlop sorrendet is tartalmazzon.
Van beépített függvény erre is, a SORSZÁM, aminek ha az utolsó paramétere nulla, vagy lemarad, csökkenő lesz a számozás, bármilyen más értéknél emelkedő.
=HA(A1=0;"";SORSZÁM(A1;$A$1:$A$10;1))
Szerk.: a DARABÜRES él a 2003-as verzióban.
-
Delila_1
veterán
válasz
copperhead
#10901
üzenetére
Nincs mit.
-
Delila_1
veterán
válasz
copperhead
#10893
üzenetére
-
Delila_1
veterán
válasz
Baboka
#10883
üzenetére
Az EO-t tedd idézőjelek közé, ha ez az oszlop betűjele. Ha nem, akkor egész számnak kell lennie.
Az mo1-nek, mo2-nek, és mo3-nak is egész szám értéket kell képviselnie.Az említett hibajelenség még akkor szokott előfordulni, ha a Bővítménykezelőben nincs bekapcsolva az Analyzis ToolPak - VBA. A nem VBA-sat is kapcsold be, az a munkafüzetekhez ad egy halom új, jól használható függvényt.
-
Delila_1
veterán
válasz
csela1
#10865
üzenetére
Nem kell ehhez makró. A B1 (vagy másik oszlop első cellája) képlete:
=HA(SZÁM(A1);1;"szöveg")
a második sor képlete: =HA(SZÁM(A2);MAX(B$1:B1)+1;"szöveg")Ez utóbbi végig másolható.
Ha a szöveget akarod látni a képleteket tartalmazó oszlopban, akkor a "szöveg" helyett legyen A1, ill. a második sorban A2.
-
Delila_1
veterán
válasz
dellfanboy
#10855
üzenetére
Sub mm()
Range("A1") = 100: Range("B1") = 50: Range("C1") = Range("A1") / Range("B1")
Range("C1").Copy
Range("F1:F50").Select
Selection.PasteSpecial Paste:=xlPasteValues
End Sub -
Delila_1
veterán
válasz
Lompos48
#10851
üzenetére
Alapjában véve egyetlen sor a makró
Növelésre:
Sub Nov()
Selection = Selection + 10
End SubCsökkentésre:
Sub Csokk()
Selection = Selection - 10
End SubLehet aztán cifrázni, pl. ne az éppen aktuális cella értékét módosítsa, hanem kérje be a cella címét, és a változtatás mértékét.
-
Delila_1
veterán
válasz
Fire/SOUL/CD
#10837
üzenetére
A csúf leírás m.zmrzlina kérdésére volt a válasz, nem tetszett neki a dupla With abban a makróban, amit letöltött valahonnan.
Szerintem nincs igazad az F1-gyes mondatoddal.
![;]](//cdn.rios.hu/dl/s/v1.gif)
Más volt a cél, ő a címsort színezi, ha aktív a szűrő, Te üzenetet küldesz. -
Delila_1
veterán
Folytatva az előbb elkezdettet, az eredeti makró
Function FilterOn(myCell As Range) As Boolean
On Error Resume Next
With myCell.Parent.AutoFilter
With .Filters(myCell.Column - .Range.Column + 1)
If .On Then FilterOn = True
End With
End With
End FunctionAz első With kezdősorában szerepel a myCell.Parent.AutoFilter, vagyis a megadott cella szülőjének (a munkalapnak) az autofiltere.
A With és End With közötti ponttal kezdődő hivatkozásokat úgy kell értelni, mint a kezdősorában lévő adat folytatása.A második With első sora [.Filters(myCell.Column - .Range.Column + 1)] a fenti autofilterre vonatkozik, az If-es sor pedig erre a filterre.
Mindent kiírva ez a belső sor így nézne ki:If myCell.Parent.AutoFilter.Filters(myCell.Column - myCell.Parent.AutoFilter.Range.Column + 1).On Then FilterOn = True
és akkor a teljes makró ennyi lenne:
Function FilterOn(myCell As Range) As Boolean
Application.Volatile
On Error Resume Next
If myCell.Parent.AutoFilter.Filters(myCell.Column - myCell.Parent.AutoFilter.Range.Column + 1).On Then FilterOn = True
End FunctionEzzel csak az a baj, hogy nehezen követhető.
Új hozzászólás Aktív témák
- One otthoni szolgáltatások (TV, internet, telefon)
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- Telekom mobilszolgáltatások
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Nothing Phone (3a) Lite – mennyit ér a név?
- Milyen routert?
- A fociról könnyedén, egy baráti társaságban
- Elemlámpa, zseblámpa
- 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
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Keresem a Barkács Balázs Játékokat
- BLACK FRIDAY! - Jogtiszta Windows - Office & Vírusirtó licencek- Azonnal - Számlával - Garanciával
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
- HP 14 Elitebook 640 G10 FHD IPS i5-1345U vPro 10mag 16GB 512GB SSD Intel Iris XE Win11 Pro Garancia
- Új és használt laptopok , üzletitől a gamerig , kedvező áron. Garanciával !
- HP Thunderbolt 4 kábel
- BESZÁMÍTÁS! Asus B150-Pro i5 6500 8GB DDR4 250GB SSD 1TB HDD GTX 1050Ti 4GB Rampage SHIVA 450W
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi



. Úgy formázd a cellá(ka)t, hogy csakis a dátumot mutassa.


![;]](http://cdn.rios.hu/dl/s/v1.gif)
Fferi50
