Hirdetés
- 
			
						PROHARDVER!
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
- 
			
			
						m.zmrzlina
senior tag
válasz
							
							
								irodakukac
							
							
								#29599
							
							üzenetére
						Egy kicsit más megoldás, ha az eredeti munkafüzetben elnevezed a megnevezés oszlopot pl "original"-nak
A visszaküldött fájl egy szabad oszlopába pedig mehet a következő képlet: /persze csak ha a visszaküldöttben A1-ben kezdődik a megnevezés oszlop.
=HA(DARABTELI(EredetiMunkafüzet2.xlsx!original;A1)=1;"egyezik";"nem egyezik")
 - 
			
			
						m.zmrzlina
senior tag
válasz
							
							
								irodakukac
							
							
								#29599
							
							üzenetére
						Van képletes megoldás is.
Pl ha egymás mellé tudod másolni a két oszlopot /ha egyáltalán két oszlopról van szó/ akkor a C1 képlete lehet mondjuk:
=HA(A1=B1;"Egyezik";"Nem egyezik")
Ha volna egy szenzitív adatoktól mentes mintafájlod (vagy kettő) akkor többet lehetne mondani.
 - 
			
			
						m.zmrzlina
senior tag
válasz
							
							
								irodakukac
							
							
								#29588
							
							üzenetére
						Az én egyik munkafüzetemben egy nagyon hasonló feladatot a következő pár sor oldja meg. Ebben a formájában csak gondolatébresztő, egy az egyben nyilván nálad nem használható /még csak azt sem állítom, hogy hibátlan/.
Dim arr_Analist()
Dim arr_Digilist()
Dim int_Hibakszama As Integer
Dim str_Hibahely As String
Dim intI As Integer
' egyik listát tömbbe ír
arr_Analist() = ws_Kabelo.range(Cells(2, 1), Cells(int_usor, 1))
' másik listát tömbbe ír
arr_Digilist() = ws_Kabelo.range(Cells(2, int_uoszlop + 1), Cells(int_usor, int_uoszlop + 1))
'ciklus 1-től a tömb végéig(nálam ugyanannyi elemből áll a két tömb
For intI = 1 To UBound(arr_Analist)
'ha a két tömbelem nem egyezik akkor
If Trim(arr_Analist(intI, 1)) <> Trim(arr_Digilist(intI, 1)) Then
'változó értékét növeli
int_Hibakszama = int_Hibakszama + 1
'megjegyzi hanyadik sorban van a különbség
str_Hibahely = str_Hibahely & intI + 1 & ".sor, "
End If
Next
'ha talált hibát kiírja, hogy mennyit és mely sorokban
If int_Hibakszama > 0 Then
MsgBox "Összesen " & int_Hibakszama & " különbség a következő helye(ke)n: " & str_Hibahely
Else
'egyébként mindenki örül :-)
MsgBox "A kétlista azonos."
ws_Script.Activate
End If - 
			
			
						Delila_1
veterán
válasz
							
							
								irodakukac
							
							
								#29236
							
							üzenetére
						Ny.janos javaslatára megírtam az új makrót.
Az Összes... lapodon jelöld ki a tartományodat. Beszúrás | Táblázat. A neve legyen Összes. A másik lapon a W1-be másold be az első lap H oszlopának a címét, a W2-be írd be: készpénz.
A makró (modulban) ennyi
Sub Spec_Szures()
Sheets("házipénztár").Select
Sheets("Összes könyvelési adat").Range("Összes[#All]").AdvancedFilter Action _
:=xlFilterCopy, CriteriaRange:=Range("W1:W2"), CopyToRange:=Range("A1:T1"), _
Unique:=False
End SubAhányszor indítod ezt a makrót, a házipénztár lapodon mindig a friss, kp-s sorok jelennek meg.
Ha az Összes... lapodra teszel indítógombot, azt is mindig átmásolja, ezért nem érdemes oda tenni. Tedd inkább a másik lapra. - 
			
			
						Delila_1
veterán
válasz
							
							
								irodakukac
							
							
								#29236
							
							üzenetére
						Szívesen. Nehogy hamar megöregedj!
 - 
			
			
						Delila_1
veterán
válasz
							
							
								irodakukac
							
							
								#29233
							
							üzenetére
						A modulba írtat kiegészítettem azzal, hogy a házipénztár lap előző adatait törölje az új másolás előtt.
Sub Hó_Eleji_KpMásolás()
Dim usor As Long, ter As Range
usor = Range("A" & Rows.Count).End(xlUp).Row
'Előző adatok törlése a házipénztár lapon
Set ter = Sheets("házipénztár").Range("A1").CurrentRegion
ter.Offset(1, 0).Resize(ter.Rows.Count - 1, ter.Columns.Count - 1).ClearContents
'Szűrés készpénzre
ActiveSheet.Range("$A$1:$T$" & usor).AutoFilter Field:=8, Criteria1:="készpénz"
'Szűrt sorok másolása
Range("A2:T" & usor).SpecialCells(xlCellTypeVisible).Copy Sheets("házipénztár").Range("A2")
'Szűrés megszüntetése
ActiveSheet.Range("$A$1:$T$" & usor).AutoFilter Field:=8
End Sub - 
			
			
						Delila_1
veterán
válasz
							
							
								irodakukac
							
							
								#29233
							
							üzenetére
						Szia!
Írtam egy másik makrót, ami megoldja a hóeleji másolást. Ezt a makrót modulba tedd (a Téma összefoglaló szerint). Most írtam bele néhány megjegyzést, hogy tudd, melyik sor mire való.
Sub Hó_Eleji_KpMásolás()
Dim usor As Long, usorHP
usor = Range("A" & Rows.Count).End(xlUp).Row
usorHP = Sheets("házipénztár").Range("A" & Rows.Count).End(xlUp).Row + 1
'Szűrés készpénzre
ActiveSheet.Range("$A$1:$T$" & usor).AutoFilter Field:=3, Criteria1:="készpénz"
'Szűrt sorok másolása
Range("A2:T" & usor).SpecialCells(xlCellTypeVisible).Copy Sheets("házipénztár").Range("A" & usorHP)
'Szűrés megszüntetése
ActiveSheet.Range("$A$1:$T$" & usor).AutoFilter Field:=3
End SubÉrdemes kitenni egy gombot. Lehet ez egy csinos alakzat a felső sorban. Jobb klikk rajta, Makró-hozzárendelés, majd kiválasztod – ha van választék
 – a Hó_Eleji_KpMásolás-t. Ez a kényelmesebb módszer, de gomb nélkül is indíthatod pl. az Alt+F8-as megoldással.Szerk.: A laphoz rendelt makróban lesz egy apró változás, hogy ne fusson hibára, mikor hó elején a sok adatot egyszerre bemásolod. A csillagos sor új.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ide As Long, sor As Long
If Target.Count > 1 Then Exit Sub '**********
If Target.Column = 20 Then
sor = Target.Row
If Range("H" & sor) = "készpénz" Then
ide = Application.WorksheetFunction.CountA(Sheets("házipénztár").Columns(1)) + 1
Range("A" & sor & ":T" & sor).Copy Sheets("házipénztár").Range("A" & ide)
End If
End If
End Sub - 
			
			
						FozzieBear
csendes tag
válasz
							
							
								irodakukac
							
							
								#29188
							
							üzenetére
						Szia, bár azt nem írtad, milyen verzió az excel, de ha Excel 2016, akkor ez kb két egérkattintással, mindenféle makró nélkül megoldható. Ha korábbi (excel 2010 vagy 2013) , akkor is, de akkor fenn kell lennie a Power Query bővítménynek. Ha érdekel a makró nélküli megoldás, írj

 - 
			
			
						Delila_1
veterán
válasz
							
							
								irodakukac
							
							
								#29204
							
							üzenetére
						Nagyon szívesen.
A T oszlopot a
If Target.Column = 20 Then
sor figyeli, a 20 helyett annak az oszlopnak a számát írd be, amelyikre reagálnia kell az eseményvezérelt makrónak. A=1, B=2, .... T=20.
 - 
			
			
						Delila_1
veterán
válasz
							
							
								irodakukac
							
							
								#29201
							
							üzenetére
						A házipénztárban megmarad a rongyos régi (azt manuálisan kell törölnöd), a módosított bekerül az első üres sorba. Persze csak akkor, mikor a sorban a T oszlop adatát leenterezed a szerkesztőlécen.
Mindig csak az a sor kerül át a másik lapra, ahol a T oszlopba viszel be adatot.
 - 
			
			
						Delila_1
veterán
válasz
							
							
								irodakukac
							
							
								#29196
							
							üzenetére
						Akkor másol, mikor az utolsó (T) oszlopba beírod az adatot. Míg nincs kitöltve a teljes sor, addig nem érdemes másolni.
Jól csináltál mindent. A füzetet makróbarátként kell mentened.
 - 
			
			
						Delila_1
veterán
válasz
							
							
								irodakukac
							
							
								#29196
							
							üzenetére
						Az Összes...-be viszed be az adatokat, innen másolja a házipénztár lap első üres sorába azt az újonnan bevitt sort, ahol a H oszlopban készpénz szerepel. Azt írtad, az előzőleg bevitt sorokat már átmásoltad. Ha mégsem, legalább fejléc legyen a házipénztár lapon.
 - 
			
			
						irodakukac
csendes tag
válasz
							
							
								irodakukac
							
							
								#29194
							
							üzenetére
						Hozzárendeltem a programot a laphoz. (ahogy az elején az összefoglalóban leírtad.
Vittem be új sort az összes munkalapra, hogy lássam az eredményt, de a házipénztár munkalapra nem került át az új készpénzes sor.Gondolkodom, hogy mi lehet a hiba.
1. Összesen munkalaphoz rendeltem a makrót.
2. Ellenőriztem, h. a kifejezések biztosan megegyeznek-e. "készpénz"; házipénztár..... Egyeznek.Amikor a laphoz rendelésnél bemásolom a makrót, kell még vmit csinálni? Én visszamentem az Excel nézetbe (view microsoft excel)
Illetve, ha jól értem, akkor ha az összesen lapon bekerül egy új sor, amiben a H oszlopban készpénz szó szerepel, akkor ez a sor másolásra kerül a házipénztár munkalap első üres sorába? Vagy mindig az összes készpénzes kerül bemásolásra felülírva a korábbit?
Várom válaszod.
 - 
			
			
						Delila_1
veterán
válasz
							
							
								irodakukac
							
							
								#29194
							
							üzenetére
						A Rows(sor).Copy Sheets("házipénztár").Range("A" & ide) helyett inkább írj
Range("A" & sor & ":T" & sor).Copy Sheets("házipénztár").Range("A" & ide) -t.
Később jöttem rá, hogy a házipénztár lapod U oszlopában valami képlet szerepelhet.
Az első a teljes sort másolja, kitörölve ezzel az U képletét. - 
			
			
						Delila_1
veterán
válasz
							
							
								irodakukac
							
							
								#29192
							
							üzenetére
						A lenti makrót az Összes könyvelési adat lapodhoz rendeld. Ennek a módja szerepel a Téma összefoglalóban.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ide As Long, sor As Long
If Target.Column = 20 Then
sor = Target.Row
If Range("H" & sor) = "készpénz" Then
ide = Application.WorksheetFunction.CountA(Sheets("házipénztár").Columns(1)) + 1
Rows(sor).Copy Sheets("házipénztár").Range("A" & ide)
End If
End If
End Sub - 
			
			
						Delila_1
veterán
válasz
							
							
								irodakukac
							
							
								#29190
							
							üzenetére
						Még azt add meg, melyik az utolsó oszlop, amit az egyes sorokban kitöltötök.
Mikor ide beírjátok az adatot, a H oszlop tartalmától függően automatikusan átmásolódik majd a teljes sor a házipénztár lap első üres sorába. Melyiket (átutalás, vagy készpénz) másoljuk?
 - 
			
			
						Delila_1
veterán
válasz
							
							
								irodakukac
							
							
								#29188
							
							üzenetére
						Az Összes ... lap melyik oszlopa tartalmazza a fizetés módját?
A szöveg így szerepel: készpénz/átutalás , vagy készpénz, vagy átutalás?
 - 
			
			
						Fferi50
Topikgazda
válasz
							
							
								irodakukac
							
							
								#28276
							
							üzenetére
						Szia!
Ha legalább 2007-es exceled van, akkor adatok - szövegből oszlopok , elválasztójelnek beírod a / jelet, kijelölöd, hogy hova tegye és enter.
Ha ennél korábbi, akkor a bal(A2; szöveg.keres(A2,"/")-1) és a közép(A2,szöveg.keres(A2;"/")+1;20) a két szétválasztó képlet.
Üdv.
 
Új hozzászólás Aktív témák
- Vivo X200 Pro - a kétszázát!
 - Xiaomi: Android 16 zápor, zivatar
 - Apple iPhone 16 - ígéretek földje
 - Dacia topic
 - Milyen okostelefont vegyek?
 - One mobilszolgáltatások
 - Spórolós topik
 - „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
 - BestBuy ruhás topik
 - ASZTALI GÉP / ALKATRÉSZ beárazás
 - További aktív témák...
 
- GYÖNYÖRŰ iPhone 12 Pro 256GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS3438, 94% Akkumulátor
 - Vállalom FRP Lock os telefonok javítását ingyen kiszálással és akár helyszíni javittással
 - Bomba ár! HP EliteBook 745 G6 - Ryzen PRO 5 I 8GB I 256GB SSD I HDMI I 14" FHD I Cam I W10 I Gari!
 - Gamer PC-Számítógép! Csere-Beszámítás! R5 5600X / RX 7600 / 32GB DDR4 / 1TB M.2 SSD
 - 8Gb DDR3L 1,35V 12800u 1600Mhz RAM-ok, több db
 
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest
						
								
							
								
 – a Hó_Eleji_KpMásolás-t. Ez a kényelmesebb módszer, de gomb nélkül is indíthatod pl. az Alt+F8-as megoldással.
								
								
								
 Fferi50

