-
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
veterán
Pirit28 válasza tökéletes.
Feltettem egy másik megoldást, mert ez kevéssé ismert. -
Delila_1
veterán
válasz
Attila7298
#25929
üzenetére
Szívesen.

-
Delila_1
veterán
válasz
Attila7298
#25923
üzenetére
Az aljáról haladj felfelé.
For sor= 40 to 1 Step-1
-
-
Delila_1
veterán
válasz
sedyke
#25843
üzenetére
Képet tegyél fel az "egy datumra 3 kulonbozo oszlopban mutatja az ertekeket, de mindegyik oszlop ketto adatreszbol allna ossze, vagyis minden oszlop osztva lenne ketfele" diagram kinézetéről!
Szegényes a fantáziám, látnom kell, miről van szó. Gondolom, azért nem kaptál eddig választ, mert esetleg más is így van vele.
Az sem baj, ha mutatod az adataid elhelyezkedését, és egy kézzel rajzolt diagramot.
-
Delila_1
veterán
válasz
Wasquez
#25839
üzenetére
Ha az Űrlapok eszköztárról viszed be a legördülőt, akkor jobb klikk, Vezérlő formázása, Vezérlő fül.
Vezérlők eszköztáráról történő bevitelnél az eszköztáron található Tulajdonságok ikont hívd be, ott a ListRow-nál állíthatod be. Szintén itt, a ListFillRange rovatban adhatod meg a bemenő adatokat, pl. Munka1!A1:A20. -
Delila_1
veterán
-
Delila_1
veterán
-
Delila_1
veterán
Akkor jön az összefűzés.
="Tegnap " & A1
Ilyenkor természetesen nem tudsz számolni az értékekkel.
Az összefűzés után értékké alakíthatod a képleteket. Kijelölöd a tartományt, Ctrl+c-vel másolod. Marad a kijelölés, jobb klikk, irányított beillesztés, Értéket. Az eredeti értékeket tartalmazó tartományt törölheted.
Úgy is jó, hogy kijelölöd és másolod a képleteket, kijelölöd az eredeti tartományt, és oda illeszted be értékként. Ekkor a képleteket tartalmazó tartományt törölheted.
-
Delila_1
veterán
válasz
hhheni
#25801
üzenetére
Az első kép a szűretlen tartományt mutatja, plusz a szűrő beállításait. A második a szűrt állományt. Ott nem látszik a kritérium tartomány 2. sora, mert az a sor rejtett, ott nem a kritériumnak megfelelő adat van az A oszlopban.


Szerk.: kis kezdőbetűkkel is jól működik.
-
Delila_1
veterán
válasz
Smogus
#25790
üzenetére
A makrót rendeld a lapodhoz.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Shapes(1).Left = Target.Left + 5
ActiveSheet.Shapes(1).Top = Target.Top + 5
End SubHa túl közel jelenik meg a szövegdoboz az aktuális celládhoz, az+ 5-öket írd át nagyobb értékre.
Ha nevet adtál a szövegdobozodnak, vagy nem csak 1 van belőle, a Shapes(1)-nél az 1 helyére idézőjelek között add meg a nevét.
-
Delila_1
veterán
válasz
TrollBalint
#25713
üzenetére
Itt azt mondja Horváth Imre, hogy a munkanapra cserélt szombattal nem nagyon lehet számolni.
Összesen 2 ilyen lesz az évben (aug.8. és dec.12.), ennek a 2-nek a közelében figyelj, és "gyalog" írd be a dátum+Xnap eredményét. -
Delila_1
veterán
válasz
sedyke
#25712
üzenetére
Azt nem ismerem, de olvastam tőle a "Makróhasználat Excelben" című könyvet, és olyanok vannak benne, amik nem igazak. Például:
"Minden változónak van egy neve és egy értéke. (Más programnyelvekben típusa is, amely meghatározza,
hogy milyen jellegű adat tárolható a változóban. Itt a típust többnyire nem szükséges definiálni, azt az első értékadás határozza meg.)""...az FKERES függvény csak ábécébe rendezett listában működik..."
Legtöbben Kovalcsik Géza Az Excel programozása című könyvét javasolják. Krizsák Lászlónak van egy az azonos című könyve, amit kezdők jobban tudnak használni.
-
-
Delila_1
veterán
válasz
TrollBalint
#25708
üzenetére
Az Office telepítésénél lehet a gond.
-
Delila_1
veterán
válasz
TrollBalint
#25684
üzenetére
Engedélyezned kell a beállításoknál a két Analysis kezdetű bővítményt az Excelben.
-
Delila_1
veterán
válasz
TrollBalint
#25678
üzenetére
Megnyitod a füzetet. Alt+F11-gyel átváltasz a VBA editorba (VBE). Bal oldalon kijelölöd a füzetedet. Insert menü, Module. Jobb oldalon kaptál egy nagy üres területet, oda másold be a makrót. Lépj vissza a füzetbe, mentés makróbarátként.
-
Delila_1
veterán
válasz
TrollBalint
#25674
üzenetére
Ha xls a kiterjesztés, akkor 2003-as, vagy régebbi verziójú az Exceled. Ezeknél a füzet sima mentése menti a benne lévő makró(ka)t is.
Ahhoz, hogy lássam, mi lehet a hiba, a füzetet is látnom kellene.
-
Delila_1
veterán
válasz
slashing
#25672
üzenetére
Eszerint félreértettem a kérdést.
A saját függvényeket a függvények között (Alt+F8) PERSONAL.XLSB!FüggvényNeve címen találod meg, így kell hivatkozni rá.
Sub mm()
Range("B1:B10") = "=personal.xlsb!FüggvényNeve(A1)"
End SubB1-től B10-ig beírja a függvényedet, aminek a hivatkozása az A oszlop azonos sora.
-
Delila_1
veterán
-
Delila_1
veterán
válasz
mikroli
#25663
üzenetére
Semmi akadálya.
Sub Paratlanok()
Dim sor As Long
sor = 2
Do While Cells(sor, 1) > ""
If Application.CountIf(Range("A:B"), Cells(sor, "A")) = 1 Then _
Range("D" & Application.CountA(Columns(4)) + 1) = "'+" & Cells(sor, 1)
sor = sor + 1
Loop
sor = 2
Do While Cells(sor, 2) > ""
If Application.CountIf(Range("A:B"), Cells(sor, "B")) = 1 Then _
Range("D" & Application.CountA(Columns(4)) + 1) = "'-" & Cells(sor, 2)
sor = sor + 1
Loop
End Sub -
Delila_1
veterán
válasz
mikroli
#25659
üzenetére
Arra az esetre
Sub Paratlanok()
Dim sor As Long
sor = 2
Do While Cells(sor, 1) > ""
If Application.CountIf(Range("A:B"), Cells(sor, "A")) = 1 Then _
Range("D" & Application.CountA(Columns(4)) + 1) = Cells(sor, 1)
sor = sor + 1
Loop
sor = 2
Do While Cells(sor, 2) > ""
If Application.CountIf(Range("A:B"), Cells(sor, "B")) = 1 Then _
Range("D" & Application.CountA(Columns(4)) + 1) = Cells(sor, 2)
sor = sor + 1
Loop
End Sub -
Delila_1
veterán
válasz
mikroli
#25657
üzenetére
Makró arra az esetre, mikor az A és B oszlopban azonos mennyiségű szám van, és az adatok a 2. sorban kezdődnek (címsor az első).
Sub Paratlanok()
Dim sor As Long
sor = 2
Do While Cells(sor, 1) > ""
If Application.CountIf(Range("A:B"), Cells(sor, "A")) = 1 Then _
Range("D" & Application.CountA(Columns(4)) + 1) = Cells(sor, 1)
If Application.CountIf(Range("A:B"), Cells(sor, "B")) = 1 Then _
Range("D" & Application.CountA(Columns(4)) + 1) = Cells(sor, 2)
sor = sor + 1
Loop
End Sub -
Delila_1
veterán
Ezt nem írtad, de hamarosan átírom ennek megfelelően.
Most éhes vagyok.Szerk.: befért az ebéd elé.

Sub Szetdob()
Dim sor As Long, ide As Long, oszlop As Integer
sor = 3
Do While Cells(sor, 1) > ""
oszlop = Cells(sor, 1) * 3 + 2
Cells(2, oszlop) = Cells(sor, 1)
ide = Cells(Rows.Count, oszlop).End(xlUp).Row + 1
Range(Cells(sor, 2), Cells(sor, 4)).Copy Cells(ide, oszlop)
sor = sor + 1
Loop
End SubJó étvágyat!
-
Delila_1
veterán
A Forrásadatok az A2 cellában van (formázással az A2:D2 közepére lehet tenni a vízszintes elrendezés menüpontban).
Sub Szetdob()
Dim sor As Long, ide As Long, oszlop As Integer
sor = 3
Do While Cells(sor, 1) > ""
Select Case Cells(sor, "A")
Case 1
oszlop = 5
Case 2
oszlop = 8
Case 3
oszlop = 11
End Select
ide = Cells(Rows.Count, oszlop).End(xlUp).Row + 1
Range(Cells(sor, 2), Cells(sor, 4)).Copy Cells(ide, oszlop)
sor = sor + 1
Loop
End Sub -
Delila_1
veterán
válasz
TrollBalint
#25647
üzenetére
If Weekday(Application.WorkDay(Cella, Napok_szama, Range("G2:G14")), 2) = 1 Then
helyett
If Weekday(Application.WorkDay(Cella, Napok_szama, Sheets("MásikLapNeve").Range("G2:G14")), 2) = 1 Then
A két "maradék" szombat 08.08, és 12.12.
-
Delila_1
veterán
válasz
TrollBalint
#25645
üzenetére
Próbálgatom különböző plusz napokkal, és sajnos nem mindig 101-es az eredmény.

Az idén összesen 3 szombat lesz (volt) munkanap. Annak a maradék 2-nek a környékén figyelj!

-
Delila_1
veterán
válasz
TrollBalint
#25635
üzenetére
Összehoztam (nagy nehezen) egy felhasználói funkciót, a neve XNap.
Első paramétere a cella, ahol a dátum van, második a napok száma, amennyivel későbbi dátum kell az eredményben.Ha a kezdő dátumod az A2-ben van, és 3 munkanappal későbbi dátumot szeretnél kapni, a függvény
=XNap(A2;3)A G2:G14 tartományban vannak az idei ünnepnapok, az I oszlopban pedig a munkanapokká lefokozott szombatok.
Function XNap(Cella, Napok_szama As Integer)
Dim datum As Date, nap As Integer, x As Integer
datum = Cella
For x = 1 To Napok_szama
If Application.CountIf(Columns(9), Cella + x) > 0 Then
nap = nap + 1
Exit For
End If
Next
If nap = 1 Then
If Weekday(Application.WorkDay(Cella, Napok_szama, Range("G2:G14")), 2) = 1 Then
XNap = Application.WorkDay(Cella, Napok_szama, Range("G2:G14")) - 2
Else
XNap = Application.WorkDay(Cella, Napok_szama, Range("G2:G14")) - 1
End If
Else
XNap = Application.WorkDay(Cella, Napok_szama, Range("G2:G14"))
End If
End Function -
Delila_1
veterán
válasz
TrollBalint
#25628
üzenetére
A csatolt füzetben a H és J oszlop tartalmát elneveztem Ünnepek, ill. Munkanapok névvel.
Az A oszlop feltételes formázását nézd meg. Fontos a két feltétel sorrendje.
-
Delila_1
veterán
válasz
grondby
#25623
üzenetére
Az I oszlopban lévő adatokból is hozz létre listát. Az eredeti makró a laphoz rendelve, kibővítve
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sor As Variant
If Target.Column = 2 Then
sor = Application.Match(Target, Columns(8), 0)
If IsError(sor) Then Range("H" & Application.WorksheetFunction.CountA(Columns(8)) + 1) = Target
End If
If Target.Column = 3 Then
sor = Application.Match(Target, Columns(9), 0)
If IsError(sor) Then Range("I" & Application.WorksheetFunction.CountA(Columns(9)) + 1) = Target
End If
End Sub -
Delila_1
veterán
válasz
poffsoft
#25624
üzenetére
Mindkét makró az A oszlopra vonatkozik.
Összefűzött cellák szétválasztása:
Sub Szetvalaszt()
Dim sor As Long, usor As Long
usor = Range("A" & Rows.Count).End(xlUp).Row
For sor = usor To 2 Step -1
If Range(Cells(sor, "A"), Cells(sor - 1, "A")).MergeCells Then
Range(Cells(sor, "A"), Cells(sor - 1, "A")).MergeCells = False
Cells(sor, "A") = Cells(sor - 1, "A")
End If
Next
Range("A1:A" & usor).SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C"
Columns("A:A").Copy
Range("A1").PasteSpecial Paste:=xlPasteValues
End SubAzonos tartalmú cellák összevonása:
Sub Osszevon()
Dim sor As Long, usor As Long
usor = Range("A" & Rows.Count).End(xlUp).Row
For sor = usor To 2 Step -1
If Cells(sor, "A") = Cells(sor - 1, "A") Then
Cells(sor - 1, "A") = ""
Range(Cells(sor, 1), Cells(sor - 1, 1)).MergeCells = True
End If
Next
End Sub -
Delila_1
veterán
válasz
kacsaesokos
#25619
üzenetére
Nincs mit.

-
Delila_1
veterán
válasz
kacsaesokos
#25617
üzenetére
=DARABTELI($M$2:$M2;M2)
Így írd be (ügyelj a $ jelekre!), akkor az 1-nél nagyobb értékekre szűrve csak a duplán, triplán beírt értékeket kapod meg.
-
Delila_1
veterán
válasz
kacsaesokos
#25613
üzenetére
A következő oszlopban a DARABTELI függvény megadja, melyik tétel hányszor szerepel. Rászűrsz az 1-nél többször előfordulókra.
-
Delila_1
veterán
válasz
grondby
#25611
üzenetére
A lapodhoz rendelve a lenti makrót automatikus lesz a H oszlop bővítése, mikor új adatot viszel fel a B oszlopba.
A füzetedet makróbarátként kell mentened.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sor As Integer
If Target.Column = 2 Then
On Error GoTo Uj
sor = Application.Match(Target, Range("H:H"), 0)
End If
Exit Sub
Uj:
Range("H" & Application.WorksheetFunction.CountA(Columns(8)) + 1) = Target
End Sub -
Delila_1
veterán
válasz
grondby
#25609
üzenetére
Én sem írtam érthetően.

1. Először tedd ki a színeket a H oszlopba, mindegyikből 1-et az említett speciális szűréssel.
2. Hozd létre a H oszlopban az adatokból a listát, majd a B oszlopba vidd be az érvényesítéseket.
3. Új színt a H oszlopban kell majd megadni, akkor ez az érték is szerepel automatikusan a B oszlop érvényesítéseiben. -
Delila_1
veterán
válasz
grondby
#25607
üzenetére
Adj címet a H1-be, majd a tartományban állva Ctrl+R-rel listává alakítod. Kijelölöd a beírt színeket, és nevet adsz a tartománynak. Ezt a nevet adhatod a B oszlopban az érvényesítéseknek.
A H oszlopba újonnan beírt színek automatikusan szerepelni fognak az érvényesítésekben, erre (is) jó a listává alakítás.
-
Delila_1
veterán
válasz
total_tobi
#25601
üzenetére

A D2 cella képlete:
=HA(ÉS(B2="g";E2="Ft/kg");C2/A2*1000;HA(ÉS(B2="dkg";E2="Ft/kg");C2/A2*100;HA(ÉS(B2="kg";E2="Ft/dkg");C2/A2*0,01)))
Ezt aztán folytathatod, az Excel verziódtól függő hosszúságban.
-
Delila_1
veterán
válasz
total_tobi
#25598
üzenetére
=HA(B1="g";CONVERT(A1;"g";"kg");CONVERT(A1;"g";"kg")/100)
-
Delila_1
veterán
válasz
total_tobi
#25591
üzenetére
Tedd idézőjelek közé a mértékegységeket.
-
Delila_1
veterán
válasz
benjoe1
#25572
üzenetére
Szűröd az A oszlopot, majd indítod a lenti makrót.
Sub Rejt()
Dim sor As Integer, oszlop As Integer
Application.ScreenUpdating = False
sor = Range("A" & Rows.Count).End(xlUp).Row
For oszlop = 2 To 200
If Cells(sor, oszlop) = "" Then
Columns(oszlop).Hidden = True
Else
Columns(oszlop).Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub -
Delila_1
veterán
válasz
Arcsi_ortega
#25557
üzenetére
Szívesen.

-
Delila_1
veterán
válasz
Arcsi_ortega
#25555
üzenetére
A csere funkcióval egyszerre ki tudod cserélni az összes hivatkozásban a régi füzet nevét az újra.
-
Delila_1
veterán
A próbálkozások között törölnöd kellett volna a Havi lap kigyűjtött adatait.
Beírtam a makróba, hogy tegye ezt meg.Sub Kigyujtes()
Dim usor As Long, sor As Long, lap As Integer, WSH As Worksheet
Dim WF As WorksheetFunction
Set WF = Application.WorksheetFunction
Set WSH = Sheets("Havi")
usor = WSH.Range("A" & WSH.Rows.Count).End(xlUp).Row
WSH.Range("A2:K" & usor).ClearContents
For lap = 2 To Worksheets.Count
With Sheets(lap)
.Range("A100:K200").Copy WSH.Range("A" & WF.CountA(WSH.Columns(1)) + 1)
End With
Next
End Sub -
Delila_1
veterán
válasz
Dr. Mózes
#25431
üzenetére
A G oszlopba kigyűjtöd a C egyedi rekordjait (régebbi verziókban Adatok | Szűrő | Irányított, 2007-től Speciális szűrés).
A kép szerinti képleteket beírod az E, F, és I oszlopokba. Azokat a cellákat törölheted, ahol az I oszlopban HAMIS érték van. Kijelölöd az E2:I2 cellákat, Ctrl+ mínusz jel, cellák eltolása felfelé.
Ez utóbbira lehet írni egy makrót. -
Delila_1
veterán
A
.Rows("2:" & usor).Copy WSH.Range("A" & WF.CountA(WSH.Columns(1)) + 1)sorban a félkövér helyére
Range("A100:K200")-at írj.
Az usor = .Range("A" & .Rows.Count).End(xlUp).Row sor nem kell.
Még a Dim kezdetű sorból is kimaradhat az usor As Long, de nem szükséges kitörölni, nem árt semmit.
-
Delila_1
veterán
Első lapnak betettem egy Havi nevűt, ahova bemásoltam a többi lap címsorát. Minden lapon az első a címsor.
Az összegző makró:
Sub Kigyujtes()
Dim usor As Long, sor As Long, lap As Integer, WSH As Worksheet
Dim WF As WorksheetFunction
Set WF = Application.WorksheetFunction
Set WSH = Sheets("Havi")
For lap = 2 To Worksheets.Count
With Sheets(lap)
usor = .Range("A" & .Rows.Count).End(xlUp).Row
.Rows("2:" & usor).Copy WSH.Range("A" & WF.CountA(WSH.Columns(1)) + 1)
End With
Next
End SubSzerk.: eddig nem szórta szét a fórummotor ilyen randán a sorokat.
-
Delila_1
veterán
válasz
pirit28
#25420
üzenetére
Makróval:
Sub Szetcincal()
Dim adat
If InStr(Selection, "*") > 0 Then
adat = Split(Selection, "*")
Selection.Offset(, 1) = adat(0)
Selection.Offset(, 2) = adat(1)
On Error Resume Next
Selection.Offset(, 3) = adat(2)
Else
Selection.Offset(, 1) = Selection.Value
End If
End SubRáállsz a szétszedendő cellára, és indítod a makrót.
Sajnos saját készítésű függvényt nem lehet rá írni, mert az nem tud a szomszédos cellákba rajzolni.
Új hozzászólás Aktív témák
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - 15% AKCIÓ
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most Ünnepi áron! :)
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Bomba ár! HP 250 G7 - i5-8GEN I 8GB I 256GB SSD I HDMI I 15,6" HD I HDMI I W11 I Cam I Garancia!
- HIBÁTLAN iPhone 13 Pro Max 256GB Sierra Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3958
- 3DKRAFT.HU - 3D NYOMTATÁS - AZONNALI ÁRAJÁNLAT - GYORS KIVITELEZÉS - 500+ POZITÍV ÉRTÉKELÉS
- 160 - 177 - 178 - Lenovo LOQ (15IRX9) - Intel Core i7-13650HX, RTX 4060
- ASTRO A50 5th gen LIGHTSPEED WIRELESS HEADSET + BASE STATION fejhallgató
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi










