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.
Gyorskeresés
Legfrissebb anyagok
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
- Tudástár AMD Radeon undervolt/overclock
Általános témák
LOGOUT.hu témák
- [Re:] PLEX: multimédia az egész lakásban
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [MasterDeeJay:] Volta a bányából azaz CMP 100-210 kisteszt (Tesla V100 mining)
- [Re:] [Sub-ZeRo:] Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- [Re:] [sziku69:] Szólánc.
- [Re:] [antikomcsi:] Való Világ: A piszkos 12 - VV12 - Való Világ 12
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] [sh4d0w:] Rebel Moon - Ne nézd meg!
- [Re:] [gban:] Ingyen kellene, de tegnapra
- [Re:] [bitpork:] Fogyasztásra ítélve
Szakmai témák
PROHARDVER! témák
Mobilarena témák
Téma összefoglaló
- Utoljára frissítve: 2023-11-13 08:31:56
LOGOUT.hu
Hozzászólások
Fferi50
őstag
Szia!
A hiba ebben az esetben "természetes", hiszen most abból indultam ki, hogy a keresési feltételben a fájl neve szerepel. Ha ez nem így van, akkor a Target.Value a Filename paraméterből elhagyandóWorkbooks.Open Filename:=Range("$H$1:$H$5").Find(What:=Target.Value, LookIn:=xlValues, lookat:=xlWhole).Offset(0, 1).Value
Ennyi marad - bár nyilván azt, hogy hol tárolod a fájlnevet és az elérési utat, Te tudod igazán, a példából én azt látom, hogy egy cellában van, a keresési feltétel mellett.
Üdv.
Ps: "Ez nem lenne gond, de ez egy .pdf"
Bocsi, de ezt honnan kellett volna tudnom?
Ebben az esetben hyperlink követést kell programozni, most éppen nincs időm rá, hogy pontosan megnézzem.
[ Szerkesztve ]
"Bocsi, de ezt honnan kellett volna tudnom?"
Sehonnan, ezért is írtam az előzőben szerkesztve, hogy rosszul írtam le, nem volt benne minden infó, én csesztem el. Köszönöm a tippet és a segítségedet!
Fferi50
őstag
Szia!
Ebben az esetben azActiveWorkbook.FollowHyperlink Address:=Range("$H$1:$H$5").Find(What:=Target.Value, LookIn:=xlValues, lookat:=xlWhole).Offset(0, 1).Value
formát próbáld meg.
Üdv.
Köszönöm szépen, tettem egy kört Google-ben időközben, ugyanezt találtam, és frankón működik is!
Köszi még egyszer, ez életmentő volt!
Declare
őstag
Erre esetleg ötlet?[link] Ugy erzem, nem lehet nagyon nagy különbseg, de nem tudtam atirni, pedig probalkoztam a net segitsegevel
Meg meg egy kerdes ugy mindenkihez:
Szeretnek egy makro gombot kesziteni magamnak a következö müvelethez:
Valahol all a kijelöles egy sorban, cellaban (Pl: D10)
- Szurjon be egy teljes sort föle (ez az ujjonan beszurt sor lesz most már a 10-ik sor)
- Masolja ide a teljes 9 sort (azaz ami a beszurt sor fölött van)
- "K" cellájába (K10) be irja be, hogy "Gyár",
- M10 be irja be a következö kepletet =M9*0,1
Probaltam most ezt is kisakkozni, egy egy rész össze is jön, de egy makroba nem sikerül megoldanom A gombot mar meg tudtam csinalni, csak a makro hianyzik mögüle
Esetleg erre egy megoldás?
[ Szerkesztve ]
Declare
őstag
jajj, pici modositas....rosszul irtam...pont ez a bajom....
szoval amit leirtam az csak egy pelda arra, amikor mondjuk az excel 10-ik soraban all a kijelöles. Nekem ugye az kellene, hogy ez mindig müködjön es mindig az eppen aktualis sor föle szurja be az uj sort, masolja az eggyel fölötte levö sort es a keplet "=M9*0,1
is mindig az eppen aktualisan beszurt sor fölötti M cellaja szorozva 0,1 el (szoval ha epp a 120-ik sorban beszur egy uj sort a makro, akkor ennek a sornak az M cellajaba (M120) =M119*0,1
kerüljön.
Bocs ha kicsit hosszu, de belezsibbadtam picit ebbe es pont ez a bajom, ez az aktualis sor dolodg
[ Szerkesztve ]
Delila_1
Topikgazda
A lap moduljába másold a makrót (lásd a Téma összefoglalót).
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Selection.EntireRow.Insert
Rows(Target.Row - 2).EntireRow.Copy Range("A" & Target.Row - 1)
Cells(Target.Row - 1, "K") = "=M" & Target.Row - 2 & "*0.1"
End Sub
Jobb klikkre indul.
Ugyanez duplaklikkhez:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
b
Cancel = True
Selection.EntireRow.Insert
Rows(Target.Row - 2).EntireRow.Copy Range("A" & Target.Row - 1)
Cells(Target.Row - 1, "K") = "=M" & Target.Row - 2 & "*0.1"
End Su
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
Declare
őstag
Köszönöm!
Viszont ez igy nekem nem igazan jo, hogy eger kattintasokra indul.
Olyat talaltam, hogy ilyen egyedi toolbarba lehet berakni egyedi gombot, ami mögött egy makro van (tehat fent ahol pl a mentes ikon van, oda egy sajat ikon). Elvileg a gomb resze mar megy, csak a makro nem.
Szoval csak a makro kellene, hogy all egy sorban valahol a kijelöles es ott lefuttatom a makrot. (amit irtam, beszur, masol, kepletet illeszt be....). Amit leirtam tegnap, az lenne egy makro, de azt picit atalkakitva több ilyen jellegü kis makrot szeretnek kesziteni.
Csak sajna ez nem megy, hogy valahol all a kijelöles, es akkor attol felfele/lefele szurjon be, a beszurt sorba ide meg oda irjon ezt meg azt
Dr V
őstag
Sziasztok!
Hogy tudom beállítani, h egy excel fájl a külső adatkapcsolatait mikor frissítse?Az Adat fülön a kapcsolat tulajdonságai gomb nálam inaktív, pedig több, querys lekérdezés is a táblám része.
Delila_1
Topikgazda
Sub Beszur()
Selection.EntireRow.Insert
Rows(Selection.Row - 1).EntireRow.Copy Range("A" & Selection.Row)
Cells(Selection.Row, "K") = "=M" & Selection.Row - 1 & "*0.1"
End Sub
Bemásolod modulba a makrót.
A Gyorselérési eszköztár jobb szélén katt a lefelé nyílra, További parancsok.
A "Választható parancsok helye" legyen Makrók. Az alatta lévő listából a Beszur nevűt átmásolod a jobb oldali listába. Ott a Módosítás gombbal rendelhetsz hozzá csilli-villi képet, megváltoztathatod a hozzá rendelt, megjelenő szöveget.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
Declare
őstag
Kesz es szuper!!! (ez ilyenkor megirva mindig annyira egyszerünek es logikusnak latszik.... )
Köszönöm! A következö 2 napi munkamat segitettel/segitettetek meggyorsitani es könnyebbe tenni! (meg valszeg kesöbbi hasonlo feladataimnal is ujra elökerül)
Majd esetleg meg ha erre a kodra ra tudsz nezni valamikor:
If Range("H" & Selection.Row).Value = "p" Then Range("F" & Selection.Row).Value = Application.Sum(Range("F" & Selection.Row - 1, Cells(Range("H" & Selection.Row).EntireColumn.Find(what:="p", LookIn:=xlValues, SearchDirection:=xlPrevious, lookat:=xlWhole).Row, "F")))
Fferi50 segitett multkor ebben (irta le ezt nekem), szuperül müködik, csak annyi a bajom vele, hogy ez a szumma erteket kiirja a cellaknak (azaz szamkent ott az ertek amit összead). Ezt kellene ugy modositani, hogy ne szam erteket irja ki, hanem magat a szumma függvenyt.
Ez is jo most egyelöre, csak kesöbbi tovabbfejlesztgeteshez lenne szüksegem erre a modositasra.
Fferi50
őstag
Szia!
Íme a képletet beíró sor:
If Range("H" & Selection.Row).Value = "p" Then Range("F" & Selection.Row).Formula = "=Sum(" & Range("F" & Selection.Row - 1).Address & ":" & Range("F" & Range("H" & Selection.Row).EntireColumn.Find(what:="p", LookIn:=xlValues, SearchDirection:=xlPrevious, lookat:=xlWhole).Row).Address & ")"
Üdv.
Delila_1
Topikgazda
Szívesen. Fferi már válaszolt is a feltett kérdésedre.
d@minator 3187: szívesen.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
Declare
őstag
Tuti, most mar kiirja a szumm függvenyt, köszönöm
Viszont, most kiprobaltam konkret szamokkal is es nem jo valami
Szoval ez a teljes kod:
Sub FormatText()
Dim i As Integer
For i = 1 To Range("A" & "55").End(xlUp).Row Step 1
If Application.WorksheetFunction.CountIf(Range("H" & i & ":H" & i), "w") > 0 Then
Range("A" & i & ":H" & i).Select
Selection.Font.Name = "Calibri"
Selection.Font.FontStyle = "Italic"
Selection.Font.Underline = xlUnderlineStyleSingle
Range("E" & i).Value = Range("A" & i).Value & " " & Range("D" & i).Value
Range("E" & i).HorizontalAlignment = xlRight
Range("A" & i & ":D" & i).ClearContents
On Error Resume Next
If Range("H" & Selection.Row).Value = "p" Then Range("F" & Selection.Row).Formula = "=Sum(" & Range("F" & Selection.Row - 1).Address & ":" & Range("F" & Range("H" & Selection.Row).EntireColumn.Find(what:="p", LookIn:=xlValues, SearchDirection:=xlPrevious, lookat:=xlWhole).Row).Address & ")"
If Err <> 0 Then If Range("H" & i).Value = "p" Then Range("F" & i).Value = Application.Sum(Range("F" & i - 1, Cells(1, "F")))
On Error GoTo 0
End If
Next i
End Sub
az "On Error..." tol indul, amit irtal. Azzal valami gubanc van.
Szoval azt kellene csinalnia, hogy amelyik sorban megtalalta a "w" erteket a "H" oszlopban, annak a sornak az "F" cellajaba szummazza az "F" oszlop cellainak ertekeit felfele, egeszen addig, amig "p" erteket nem talal a "H" oszlopban.
Aztan megy tovabb, megint talal egy "w" erteket, formaz, szummaz felfele....ez igy blokkonkent nagyon sokszor
Vagy valahogy mashogy kellene, hogy a "p" ertekek az I oszlopban legyenek mondjuk?
Aztan lassan befejezem, mert nem akarom teljesen kisajatitani a topicot
[ Szerkesztve ]
Plero
tag
Segítséget szeretnék kérni.
Kell csinálnom egy excel munkalapot. Ezen lennie kell egy nyomtatás gombnak. Ha megnyomják a nyomtatás gombot akkor kinyomtatja a munkalapot a rajta lévő információkkal és a munkalapon egy cellában megnöveli az értéket eggyel. Azaz sorszámot növel.
Szájbarágósan le tudja nekem ezt írni valaki vagy egy példát mutatni?
"Olyan nincs, hogy nincs" + www.plenter.atw.hu
Delila_1
Topikgazda
Rögzítesz egy makrót, amiben az Exel megfelelő ikonjával indítasz egy nyomtatást.
Ehhez annyit teszel hozzá az End Sub fölé, hogy Range("X1")= Range("X1")+1
A makró a nyomtatás után az X1 cella értékét növeli minden nyomtatás után 1-gyel, mindig azt mutatja, hányszor volt kinyomtatva a lap tartalma.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
Szia Fferi50!
Bocs, hogy megint zargatlak, de elakadtam...
A tegnapi szkripted teljesen jól működik, de egy dolgot sehogyan sem tudok benne megoldani, pedig fél nap ezzel foglalkoztam. Az lenne a jó, ha a kereső mező egy "GUI" nevű excel fájlban lenne, míg az adatok egy másik, mondjuk DATA nevű excel fájlban kapnának helyet. Ha ez így túl összetett, tulajdonképpen az is rendben lenne, ha egy fájlban lenne a felület és a forrás is, két külön munkalapon.
Alapvetően az oszlopok / sorok elrejtése is opció lenne, de attól meg kidől a szkript.
Köszönöm a segítséget előre is!
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2")) Is Nothing Then
Application.EnableEvents = False
ActiveWorkbook.FollowHyperlink Address:=Range("$A$7:$A$1000").Find(What:=Target.Value, LookIn:=xlValues, lookat:=xlWhole).Offset(0, 1).Value
Application.EnableEvents = True
Range("B2").Select
End If
End Sub
[ Szerkesztve ]
Declare
őstag
Ahogy Delila_1 is irta, en is igy oldottam meg hasonlo problemat, ami Neked van
Makro rögzitese gombbal szepen meg lehet csinalni.
Nekem van egy ilyen gomb ( nyomtato valasztas)
Sub Nyomtato valasztas()
Application.Dialogs(xlDialogPrinterSetup).Show
End Sub
A nyomtatas gomb meg igy nez ki nalam (nyilvan a nyomtatasi terület, nalad mas lesz).
Sub Nyomtatas()
ActiveWorkbook.RefreshAll 'Frissiti az excel munkafüzetet /kihagyhato/
With ActiveSheet.PageSetup '/lap elrendezes/
.Orientation = xlLandscape
.CenterHorizontally = True
.CenterVertically = False
.PaperSize = xlPaperA4
End With
With ActiveSheet.PageSetup '/ egy lapra illeszti a nyomtatast + a lablecbe beteszi a lapszamot
.FitToPagesWide = 1
.RightFooter = "Seite &P/&N"
End With
Application.Dialogs(xlDialogPrinterSetup).Show '/nyomtato beallitas ablak
ActiveSheet.PageSetup.PrintArea = "$AU$1:$BI$22" '/nyomtatasi terület
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, Preview:=True, _
IgnorePrintAreas:=False
End Sub
Nezd meg a makro rögzitest, meg nezd meg ami nekem van, szerintem talalsz benne hasznos dolgokat a sajat problemadhoz is
[ Szerkesztve ]
Plero
tag
Megcsináltam a "Nyomtatás" gombot hozzárendeltem ezeket:
Sub Nyomtatas()
ActiveWorkbook.RefreshAll 'Frissiti az excel munkafüzetet /kihagyhato/
With ActiveSheet.PageSetup '/lap elrendezes/
.Orientation = xlLandscape
.CenterHorizontally = True
.CenterVertically = False
.PaperSize = xlPaperA4
End With
With ActiveSheet.PageSetup '/ egy lapra illeszti a nyomtatast + a lablecbe beteszi a lapszamot
.FitToPagesWide = 1
.RightFooter = "Seite &P/&N"
End With
Application.Dialogs(xlDialogPrinterSetup).Show '/nyomtato beallitas ablak
ActiveSheet.PageSetup.PrintArea = "$AU$1:$BI$22" '/nyomtatasi terület
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, Preview:=True, _
IgnorePrintAreas:=False
Range("K3") = Range("K3") + 1
End Sub
de nem csinál semmit és hibaüzenet sincs.
A K3 cellában sem növekszik a szám.
[ Szerkesztve ]
"Olyan nincs, hogy nincs" + www.plenter.atw.hu
Delila_1
Topikgazda
Gomb a gyorselérési eszköztárra
Vigyázz, más lesz a nyomtatási területed, mint a makróban.
[ 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.
bsasa1
csendes tag
Szia, nálam így működik:
Sub FormatText()
Dim i As Integer
For i = 1 To Range("A55").End(xlUp).Row
If Application.WorksheetFunction.CountIf(Range("H" & i), "w") > 0 Then
Range("A" & i & ":H" & i).Select
Selection.Font.Name = "Calibri"
Selection.Font.FontStyle = "Italic"
Selection.Font.Underline = xlUnderlineStyleSingle
Range("E" & i).Value = Range("A" & i).Value & " " & Range("D" & i).Value
Range("E" & i).HorizontalAlignment = xlRight
Range("A" & i & ":D" & i).ClearContents
End If
On Error Resume Next
If Range("H" & i).Value = "p" Then Range("F" & i).Formula = "=Sum(" & Range("F" & Range("H1:H" & i - 1).Find(what:="p", LookIn:=xlValues, SearchDirection:=xlPrevious, lookat:=xlWhole).Row + 1).Address & ":" & Range("F" & i - 1).Address & ")"
If Err <> 0 Then If Range("H" & i).Value = "p" Then Range("F" & i).Formula = "=Sum(" & Range("F1:F" & i - 1).Address & ")"
On Error GoTo 0
Next i
End Sub
De pl ha az első sorban van a "p", vagy több van egymás után akkor azt nem tudja túl jól kezelni.
Plero
tag
Mégis csak működik
Sub Nyomtatas()
ActiveWorkbook.RefreshAll 'Frissiti az excel munkafüzetet /kihagyhato/
With ActiveSheet.PageSetup '/lap elrendezes/
.Orientation = xlLandscape
.CenterHorizontally = True
.CenterVertically = False
.PaperSize = xlPaperA4
End With
Application.Dialogs(xlDialogPrinterSetup).Show '/nyomtato beallitas ablak
ActiveSheet.PageSetup.PrintArea = "$A$1:$K$54" '/nyomtatasi terület
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, Preview:=True, _
IgnorePrintAreas:=False
Range("K3") = Range("K3") + 1
End Sub
Annyi szépséghibával, hogy nekem fekvő A4 papírt hoz és álló kellene.
Ezt kellene "Orientation = xlLandscape" módosítani ""Orientation = xlPortrait" ?
[ Szerkesztve ]
"Olyan nincs, hogy nincs" + www.plenter.atw.hu
Delila_1
Topikgazda
Igen, az orientáció xlPortrait legyen.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
Plero
tag
Köszönöm a gyors segítséget Delila_1 és Declare fórumtársaknak.
"Olyan nincs, hogy nincs" + www.plenter.atw.hu
Fferi50
őstag
Szia!
Akkor "csak" annyi a gond, hogy a feltételben a "p" helyett "w" amit be kell írni:
Csak az eleje változik:
If Range("H" & Selection.Row).Value = "w" then stb.
Mivelhogy eddig a w csak érintőlegesen szerepelt. Hiba eseténIf Err <> 0 Then If Range("H" & i).Value = "p" Then Range("F" & i).Value = Application.Sum(Range("F" & i - 1, Cells(1, "F")))
helyett is nyilván képletet szeretnél:If Err <> 0 Then If Range("H" & i).Value = "w" Then Range("F" & i).Formula = "=Sum(" & Range("F" & i - 1, Cells(1, "F")).Address & ")"
Üdv.
Fferi50
őstag
Szia!
Azt gondolom, hogy a két külön fájl megbonyolítaná a helyzetet. Ugyanazon fájlban két külön (akár elrejtett) munkalapon kétféle módon is működhet:
1. A cím megadásánál beírod azt a munkalapot, ahová az adatok kerültek:Address:=Sheets("Munka2").Range("$A$7:$A$1000").Find(What:=Target.Value, LookIn:=xlValues, lookat:=xlWhole).Offset(0, 1).Value
2. Elnevezed az adatok tartományt (a keresőértéket tartalmazó oszlopot elég) a másik munkalapon, pld. kereso néven. Ebben az esetben:Address:=ActiveWorkbook.Names("kereso").Referstorange.Find(What:=Target.Value, LookIn:=xlValues, lookat:=xlWhole).Offset(0, 1).Value
Az adatokat tartalmazó munkalapot elrejtheted úgy, hogy nem is jelenik meg a listábanSheets("Munka2").Visible=xlSheetVeryhidden
Ezt csak kódból tudod láthatóvá tenni:Sheets("Munka2").Visible=xlSheetVisible
Üdv.
[ Szerkesztve ]
bteebi
veterán
Nagyon köszönöm!
Cancel all my meetings. Someone is wrong on the Internet.
ShadowX
őstag
Sziasztok!
Lenne egy olyan kérdésem, hogy az alábbit hogyan tudnám kivitelezni:
Van egy tábla, amit majd fel kell tölteni adatokkal. A kollégák előszeretettel csinálják azt, hogy valahonnan copy/paste-el másolnak be egy vagy több értéket a cellákba. A celláknak szeretnék egyenformázást adni, és ez mindaddig működik is, amíg nem használják a copy/paste funkciót (tehát csak beleírnak a cellába).
Tehát a celláimat szeretném egységesen Arial Narrow 11-es betűtípusra formázni, közép-középrezártan. És ez működik is, ha csak szimplán elkezdik kézzel feltölteni a cellákat. Amint viszont mondjuk egy másik helyről (webhely, más szakmai rendszer, stb.) elkezdenek vágólapra helyezni, majd bemásolni, az én általam megadott cellaformázás megváltozik arra, ahonnan másolták az értéket és így oda az egységes kinézet, utólag pedig nem tudom mindig kézzel formázni.
Meg lehet oldani valahogy azt, hogy a bemásolt (eltérő formátumú) értéket automatikusan az én általam preferált (lásd fent) formátumra módosítsa az Excel?
Köszönöm.
Delila_1
Topikgazda
Rendeld a laphoz a leni, eseményvezérelt makrót.
Private Sub Worksheet_Change(ByVal Target As Range)
With Range(Target.Address)
.Font.Name = "Arial Narrow"
.Font.Size = 11
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
End Sub
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
Részemről szívesen.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
Szia!
Köszönöm a megoldást! Ki fogom próbálni még délelőtt, azután jelentkezem!
Szia!
Nagyon frankón üzemel! Hálám üldözni fog!
Fferi50
őstag
Szia!
"Hálám üldözni fog!"
Az nem baj, csak utol ne érjen... Mert elég gyorsan kifáradok....
További szép napot!
[ Szerkesztve ]
Declare
őstag
Valami nem jo. Csak az utolso esetben csinalja azt, amit kell, az összes többiben nem.
Igy nez ki ugye a kodSub FormatText()
Dim i As Integer
For i = 1 To Range("A" & "100").End(xlUp).Row Step 1
If Application.WorksheetFunction.CountIf(Range("H" & i & ":H" & i), "w") > 0 Then
Range("A" & i & ":H" & i).Select
Selection.Font.Name = "Calibri"
Selection.Font.FontStyle = "Italic"
Selection.Font.Underline = xlUnderlineStyleSingle
Range("E" & i).Value = Range("A" & i).Value & " " & Range("D" & i).Value
Range("E" & i).HorizontalAlignment = xlRight
Range("A" & i & ":D" & i).ClearContents
On Error Resume Next
If Range("H" & Selection.Row).Value = "w" Then Range("F" & Selection.Row).Formula = "=Sum(" & Range("F" & Selection.Row - 1).Address & ":" & Range("F" & Range("H" & Selection.Row).EntireColumn.Find(what:="p", LookIn:=xlValues, SearchDirection:=xlPrevious, lookat:=xlWhole).Row).Address & ")"
If Err <> 0 Then If Range("H" & i).Value = "w" Then Range("F" & i).Formula = "=Sum(" & Range("F" & i - 1, Cells(1, "F")).Address & ")"
On Error GoTo 0
End If
Next i
End Sub
Feltöltöttem egy par sorra leegyszerüsitett excelt a dropboxba, benne van ez a makro is [link] .
Ha esetleg valamikor lesz idötök/kedvetek ranezni, akkor ebben latszik, hogy hogy nez ki a nyers tabla, amin le kell futnia a makronak. Az utolso "tömbnel" jol müködik, ott jol szummaz. A többinel nem.
Ez most nem különösebben sürgös, a korabbiakkal böven kisegitettetek, ez csak majd a tovabb lepeshez lenne jo
Declare
őstag
Köszi szepen, de ez sem jo, itt a "p" ertekeknel is szummaz.
(#31874) Plero szivesen, klassz, hogy en is tudtam egy kicsit legalabb segiteni itt, nem csak mindig kerni
lappy
őstag
semmi
[ Szerkesztve ]
Bámulatos hol tart már a tudomány!
Fferi50
őstag
Szia!
Menni fog, csak egy pici türelmedet kérem, mert most éppen mással foglalkozom.
Addig is próbálj annyit ki, hogy az első összesítendő csoport elé is tegyél egy p betűt a h oszlopba (kb. 12 sor) és ezt a sort másold be a régi helyére:If Range("H" & Selection.Row).Value = "w" Then Range("F" & Selection.Row).Formula = "=Sum(" & Range("F" & Selection.Row - 1).Address & ":" & Range("F" & Range("H" & Selection.Row).EntireColumn.Find(what:="p", LookIn:=xlValues, SearchDirection:=xlPrevious, lookat:=xlWhole, After:=Range("H" & Selection.Row)).Row).Address & ")"
Annyi változott, hogy bekerült az After paraméter.
Üdv.
Ps: a ciklusod helyett egy find metódus használata sokkal gyorsabb lenne, ezt is próbálom majd.
Fferi50
őstag
Szia!
Közben megszületett az új verzió:
Sub FormatText2()
Dim i As Double, mycell As Range, myfind As Range, elso As String
Set myfind = Range("H:H").Find(what:="w", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlNext)
If Not myfind Is Nothing Then
elso = myfind.Address
Do While True
Set mycell = Range("H:H").Find(what:="p", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious, after:=myfind)
If Not mycell Is Nothing Then
i = myfind.Row
With Range("A" & i & ":H" & i)
.Font.Name = "Calibri"
.Font.FontStyle = "Italic"
.Font.Underline = xlUnderlineStyleSingle
End With
Range("E" & i).Value = Range("A" & i).Value & " " & Range("D" & i).Value
Range("E" & i).HorizontalAlignment = xlRight
Range("A" & i & ":D" & i).ClearContents
Range("F" & i).Formula = "=Sum(" & Range("F" & i - 1).Address & ":" & Range("F" & mycell.Row).Address & ")"
End If
Set myfind = Range("H:H").Find(what:="w", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlNext, after:=myfind)
If myfind.Address = elso Then Exit Do
Loop
End If
End Sub
Ennek az az előnye, hogy nem kell végigpörgetni az összes cellát, hogy megtaláld a w betűket, ezt rá kell bízni az Excelre - azért találták ki.
Feltétlenül fontos, hogy az első csoportösszesítés kezdetéhez is tegyél egy p betűt.
Üdv.
PeLa87
aktív tag
Delila_1!
Szeretném megkérdezni, hogy amit segítettél kiíratni, hogy MA xy éves. Azt meglehet oldani, holnap, a következő napon, ezen a héten, a következő héten, ebben a hónapban valamint a következő hónapban külön-külön cellákban? Kerestem képleteket, de nem találtam.
Annyiban segítenél, hogy ezeket a hivatkozásokat leírod? Akkor már majd próbálgatom az előző függvénybe beillesztgetni.
Megbízható és olcsó tárhely: https://cweb.hu/ugyfeladmin/aff.php?aff=99
Delila_1
Topikgazda
Írd át a G2 dátumát a holnapi napra, majd 7 nappal többre, majd 1 hónappal későbbire a mai helyett.
A megfelelő oszlopokban megjelenik a szöveg.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
PeLa87
aktív tag
WOW! Fantasztikus vagy!
Nagyon szépen köszönöm! Remélem a kérdéseim másoknak is hasznára válnak majd!
Megbízható és olcsó tárhely: https://cweb.hu/ugyfeladmin/aff.php?aff=99
sz.j
nagyúr
Szevasztok!
Egy árkalkulátort szeretnék a weboldalamra feltenni és ebben kérném a segítségeteket.
Azt hogy lehet megcsinál, hogy ha van például 5 termék amiknek az egységára (Ft/m2) különböző, akkor a tetszőleges szélesség × magasság (méterben beírva) megadásával/beírásával az oldalra látogató maga tudja kiszámolni a kiválasztott termék árát.
Tudnátok nekem ebben segíteni?
Előre is köszönöm a segítséget.
Műanyag, alumínium és motoros redőnyök, valamint szúnyoghálók készítése, szerelése. www.szaboredony.hu
PeLa87
aktív tag
Delila_1!
Itt valami rosszat csináltam? 1 hét múlva ugye +7 de ha 2 hét múlva szeretném akkor +14 nem? Mert ezt adja ki a táblázat:
=HA(ÉS(HÓNAP(MA())=HÓNAP($G386);NAP(MA()+14)=NAP($G386));"Két hét múlva lesz " & ÉV(MA())-ÉV($G386) & " éves";"")
Megbízható és olcsó tárhely: https://cweb.hu/ugyfeladmin/aff.php?aff=99
Delila_1
Topikgazda
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
Feltettem ide egy füzetet.
Ha még soha nem foglalkoztál érvényesítésekkel és táblázatokkal, kell némi idő, míg ráérzel. Utána megy, mint a karikacsapás.
Némi magyarázat a Munka1 lapon.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
sz.j
nagyúr
Köszönöm az infót, délután lesz (talán) időm és akkor letöltöm, illetve megnézem.
Műanyag, alumínium és motoros redőnyök, valamint szúnyoghálók készítése, szerelése. www.szaboredony.hu
Delila_1
Topikgazda
Írd majd meg, hogy sikerült az értelmezés, és a saját adataidra való átírá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.
sz.j
nagyúr
Oké, majd jelentkezem.
Műanyag, alumínium és motoros redőnyök, valamint szúnyoghálók készítése, szerelése. www.szaboredony.hu
Declare
őstag
Mar az elözö hsz edben amit irtal, az is jol müködik, de ez a masodik, ez meg....
Megprobalom ezeket ertelmezni es eltanulni a trükköket, köszi a segitseget...Neked is!
Mai Hardverapró hirdetések
prémium kategóriában
- LG NanoCell 55NANO766QA Halvány píxel csík
- Philips 58PUS8545/12 1 ÉV GARANCIA Játék üzemmód
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!
- The Last of Us Part I Ps5