Hirdetés

2024. április 28., vasárnap

Gyorskeresés

Útvonal

Fórumok  »  OS, alkalmazások  »  Microsoft Excel topic (kiemelt téma)

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-11-13 08:31:56

LOGOUT.hu

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.

Összefoglaló kinyitása ▼

Hozzászólások

(#31851) Fferi50 válasza Timer (#31850) üzenetére


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 ]

(#31852) Timer válasza Fferi50 (#31851) üzenetére


Timer
veterán

"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!

(#31853) Fferi50 válasza Timer (#31852) üzenetére


Fferi50
őstag

Szia!

Ebben az esetben az
ActiveWorkbook.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.

(#31854) Timer válasza Fferi50 (#31853) üzenetére


Timer
veterán

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! ;)

(#31855) Declare válasza Fferi50 (#31853) üzenetére


Declare
őstag

Erre esetleg ötlet?[link] Ugy erzem, nem lehet nagyon nagy különbseg, de nem tudtam atirni, pedig probalkoztam a net segitsegevel :B

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 :U

Esetleg erre egy megoldás? :B

[ Szerkesztve ]

(#31856) Declare válasza Declare (#31855) üzenetére


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 :D es pont ez a bajom, ez az aktualis sor dolodg :U

[ Szerkesztve ]

(#31857) Delila_1 válasza Declare (#31856) üzenetére


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)
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
b

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#31858) Declare válasza Delila_1 (#31857) üzenetére


Declare
őstag

:R 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 :(

(#31859) Dr V


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.

(#31860) Delila_1 válasza Declare (#31858) üzenetére


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.

(#31861) Declare válasza Delila_1 (#31860) üzenetére


Declare
őstag

Kesz es szuper!!! (ez ilyenkor megirva mindig annyira egyszerünek es logikusnak latszik.... :B )

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) :R :R

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. :)

(#31862) Fferi50 válasza Declare (#31861) üzenetére


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.

(#31863) Delila_1 válasza Declare (#31861) üzenetére


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.

(#31864) Declare válasza Fferi50 (#31862) üzenetére


Declare
őstag

:R Tuti, most mar kiirja a szumm függvenyt, köszönöm :R

Viszont, most kiprobaltam konkret szamokkal is es nem jo valami :B

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? :F

Aztan lassan befejezem, mert nem akarom teljesen kisajatitani a topicot :B

[ Szerkesztve ]

(#31865) Plero


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

(#31866) Delila_1 válasza Plero (#31865) üzenetére


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.

(#31867) Timer válasza Fferi50 (#31853) üzenetére


Timer
veterán

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 ]

(#31868) Declare válasza Plero (#31865) üzenetére


Declare
őstag

Ahogy Delila_1 is irta, en is igy oldottam meg hasonlo problemat, ami Neked van :K

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 ]

(#31869) Plero válasza Declare (#31868) üzenetére


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

(#31870) Delila_1 válasza Plero (#31869) üzenetére


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.

(#31871) bsasa1 válasza Declare (#31864) üzenetére


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.

(#31872) Plero válasza Delila_1 (#31870) üzenetére


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

(#31873) Delila_1 válasza Plero (#31872) üzenetére


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.

(#31874) Plero válasza Delila_1 (#31873) üzenetére


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

(#31875) Fferi50 válasza Declare (#31864) üzenetére


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én
If 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.

(#31876) Fferi50 válasza Timer (#31867) üzenetére


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ában
Sheets("Munka2").Visible=xlSheetVeryhidden
Ezt csak kódból tudod láthatóvá tenni:
Sheets("Munka2").Visible=xlSheetVisible

Üdv.

[ Szerkesztve ]

(#31877) bteebi válasza Fferi50 (#31846) üzenetére


bteebi
veterán

Nagyon köszönöm! :R

Cancel all my meetings. Someone is wrong on the Internet.

(#31878) ShadowX


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.

(#31879) Delila_1 válasza ShadowX (#31878) üzenetére


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.

(#31880) Delila_1 válasza Plero (#31874) üzenetére


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.

(#31881) Timer válasza Fferi50 (#31876) üzenetére


Timer
veterán

Szia!

Köszönöm a megoldást! Ki fogom próbálni még délelőtt, azután jelentkezem! ;)

(#31882) Timer válasza Fferi50 (#31876) üzenetére


Timer
veterán

Szia!

Nagyon frankón üzemel! Hálám üldözni fog! ;)

(#31883) Fferi50 válasza Timer (#31882) üzenetére


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 ]

(#31884) Declare válasza Fferi50 (#31875) üzenetére


Declare
őstag

:( Valami nem jo. Csak az utolso esetben csinalja azt, amit kell, az összes többiben nem.

Igy nez ki ugye a kod
Sub 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 :R

(#31885) Declare válasza bsasa1 (#31871) üzenetére


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 :C :D

(#31886) lappy válasza Declare (#31884) üzenetére


lappy
őstag

semmi

[ Szerkesztve ]

Bámulatos hol tart már a tudomány!

(#31887) Fferi50 válasza Declare (#31884) üzenetére


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.

(#31888) Fferi50 válasza Declare (#31884) üzenetére


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.

(#31889) PeLa87


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

(#31890) Delila_1 válasza Fferi50 (#31888) üzenetére


Delila_1
Topikgazda

Fájl

Í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.

(#31891) PeLa87 válasza Delila_1 (#31890) üzenetére


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

(#31892) sz.j


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

(#31893) PeLa87 válasza Delila_1 (#31890) üzenetére


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

(#31894) Delila_1 válasza PeLa87 (#31893) üzenetére


Delila_1
Topikgazda

Újabb fájl

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#31895) Delila_1 válasza sz.j (#31892) üzenetére


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.

(#31896) sz.j válasza Delila_1 (#31895) üzenetére


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

(#31897) Delila_1 válasza sz.j (#31896) üzenetére


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.

(#31898) sz.j válasza Delila_1 (#31897) üzenetére


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

(#31899) Declare válasza Fferi50 (#31888) üzenetére


Declare
őstag

:Y :R

Mar az elözö hsz edben amit irtal, az is jol müködik, de ez a masodik, ez meg.... :Y :D

Megprobalom ezeket ertelmezni es eltanulni a trükköket, köszi a segitseget...Neked is! :R

(#31900) PeLa87 válasza Delila_1 (#31894) üzenetére


PeLa87
aktív tag

Ismét köszönöm a segítséged és hogy ilyen türelmes vagy hozzám! :)

Megbízható és olcsó tárhely: https://cweb.hu/ugyfeladmin/aff.php?aff=99

Útvonal

Fórumok  »  OS, alkalmazások  »  Microsoft Excel topic (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.