Hirdetés
- Real Racing 3 - Freemium csoda
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- urandom0: Száműztem az AI-t az életemből
- eBay-es kütyük kis pénzért
- Brogyi: CTEK akkumulátor töltő és másolatai
- Elektromos rásegítésű kerékpárok
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- hcl: Poco F2 Pro facepalm
-
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
-
-
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.
-
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.
-
Fferi50
Topikgazda
válasz
Declare
#31884
üzenetére
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 SubEnnek 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.
-
Fferi50
Topikgazda
válasz
Declare
#31884
üzenetére
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.
-
Declare
őstag
válasz
Fferi50
#31875
üzenetére
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 SubFeltö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

-
-
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.
-
Fferi50
Topikgazda
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).Value2. 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).ValueAz 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.
-
Fferi50
Topikgazda
válasz
Declare
#31864
üzenetére
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.
-
Plero
aktív tag
válasz
Delila_1
#31870
üzenetére
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 SubAnnyi szépséghibával, hogy nekem fekvő A4 papírt hoz és álló kellene.
Ezt kellene "Orientation = xlLandscape" módosítani ""Orientation = xlPortrait" ?
-
bsasa1
csendes tag
válasz
Declare
#31864
üzenetére
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 SubDe 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.
-
Delila_1
veterán
Gomb a gyorselérési eszköztárra
Vigyázz, más lesz a nyomtatási területed, mint a makróban.
-
Plero
aktív tag
válasz
Declare
#31868
üzenetére
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 Subde nem csinál semmit és hibaüzenet sincs.

A K3 cellában sem növekszik a szám. -
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 SubA 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 SubNezd meg a makro rögzitest, meg nezd meg ami nekem van, szerintem talalsz benne hasznos dolgokat a sajat problemadhoz is

-
válasz
Fferi50
#31853
üzenetére
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 -
Delila_1
veterán
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. -
Plero
aktív 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? -
Declare
őstag
válasz
Fferi50
#31862
üzenetére
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 Subaz "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

-
Fferi50
Topikgazda
válasz
Declare
#31861
üzenetére
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.
-
Declare
őstag
válasz
Delila_1
#31860
üzenetére
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.

-
Delila_1
veterán
válasz
Declare
#31858
üzenetére
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 SubBemá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. -
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.
-
Declare
őstag
válasz
Delila_1
#31857
üzenetére
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

-
Delila_1
veterán
válasz
Declare
#31856
üzenetére
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 SubJobb 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 -
Declare
őstag
válasz
Declare
#31855
üzenetére
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,1is 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,1kerüljön.Bocs ha kicsit hosszu, de belezsibbadtam picit ebbe
es pont ez a bajom, ez az aktualis sor dolodg 
-
Declare
őstag
válasz
Fferi50
#31853
üzenetére
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,1Probaltam 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?

-
Fferi50
Topikgazda
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. -
válasz
Fferi50
#31849
üzenetére
Szia!
Nagyon szépen köszönöm, sokat segítettél ezzel! Még egy kis probléma van vele, de az én hibám, rosszul írtam le: nem minden esetben azonos a filenév a keresési feltétellel, és ez okozhat jelen állapotban hibát. A link és a keresési feltétel viszont minden esetben össze van rendelve. A gond az, hogy jelen állapotban beírom kézzel a keresési mezőbe, hogy (teszem azt) 11, akkor olyan linket próbál megnyitni, hogy \\VALID_URL\osszerendelt_filenev.akarmi\11, és erre nyilván hibát dob. Persze, az is lehet, hogy a két dolognak semmi köze egymáshoz.
SZERK.: Kivettem a " & Target.Value" részt a szkriptedből, így már nem dob hibát, viszont a fájlt Excel-ben szeretné megnyitni. Ez nem lenne gond, de ez egy .pdf

-
Fferi50
Topikgazda
Szia!
Túlságosan is excelesen gondolkodsz, ezt VBA (makró) sokkal egyszerűbben oldja meg.
A kiválasztott fájlnévhez tartozó elérési út alapján a Workbook.Open eljárással meg tudod nyitni az adott fájlt.
Tehát: van egy táblázatod, ami tartalmazza a kiválasztható fájlneveket és a hozzájuk tartozó elérési utakat. Egy cellára - keresőcella - csinálsz adatérvényesítést, ami a kiválasztható fájlneveket tartalmazza - csak ebből lehet választani, így nem lehet elrontani a keresést.
Pl: H1-H5 tartalmazza a listát, I1-I5 tartalmazza az elérési utat.
A1 legyen a kereső mező.
A1 adatérvényesítése lista - forrása $H$1:$H$5
Worksheet change eseménybe kerül a következő makró:Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Application.EnableEvents = False
Workbooks.Open Filename:=Range("$H$1:$H$5").Find(What:=Target.Value, LookIn:=xlValues, lookat:=xlWhole).Offset(0, 1).Value & Target.Value
Application.EnableEvents = True
End If
End SubNe felejtsd el, hogy az elérési út végére kell egy backslash \
Az adott munkalaphoz úgy viheted be, hogy a munkalap fülre állva jobb egérgomb, kód megjelenítése, majd bemásolod a megjelent ablakba.Ha választható listát másik munkalapon szeretnéd tárolni, akkor el kell nevezned és a nevet kell beírni az adatérvényesítés forrásaként - valamint a makróba is.
Üdv.
-
válasz
d@minator
#31847
üzenetére
Sziasztok!
Makróban kérném a segítségeteket, mert nem vagyok a téma szakértője. Ezért is kezdtem makró rögzítéssel, de az eredmény nem tökéletes, sőt.
A probléma: adott egy cella, amibe az érték egy FKERES függvény révén kerül be. A konkrét érték egy URL hivatkozás. Ezt a hivatkozást kellene (és nem magát az FKERES-t, ugye) átmásolnom egy másik cellába, amelybe már jó lenne, ha linkelt hivatkozásként kerülne be. Ha ez megtörtént, ugyanezen cellán kellene ütnie a makrónak egy entert, majd a kurzort egy másik cellába (az FKERES érték mezőjébe) ugratnia, majd törölni a már benne lévő értéket.
A feladat, amire szánom: adott fájlok nevére keresve kolléga beüti a fájl nevét az FKERES keresőmezőjébe, ami kikeresi egy rejtett lapfülről (vagy még inkább jobb lenne, ha egy másik táblázatból az adott fájlnévhez tartozó hálózati elérési utat, amelyről automatikusan megnyílik az adott fájl.
A felvétellel már ott gondba kerültem, hogy a rögzítés során a cellában lévő adatot másolja át és illeszti be egy másik cellába, tehát nem veszi figyelembe, hogy az FKERES eredménye már régen lecserélte az adott cella értékét.
Ha tudnátok segíteni, hálás lennék! Köszi előre is!
-
Fferi50
Topikgazda
válasz
bteebi
#31845
üzenetére
Szia!
A függvényed első paramétere ne Range legyen, hanem Variant. Ebben az esetben tudsz tartományt és számot is beadni paraméternek, mindkettőt elfogadja.
A vezető ill. követő 0 számjegyeket az Excel cellaformázás egyéni számformátumban tudod beállítani, amit a Range.NumberFormat tulajdonsággal lehet makróban állítani, pl.Range("A2").NumberFormat="000000.000000"
a tizedesvessző előtt és után is 6-6 számjegyet jelenít meg, az üres helyiértékekre 0 kerül.Mivel a FIX függvény alapból szöveget ad vissza, ezért szám csak akkor lesz belőle, ha a VAL függvénnyel átalakítod számmá.
Function Sigdig(number As Variant, SigDigits As Integer) As Double
Sigdig = Val(WorksheetFunction.Fixed(number, SigDigits - Int(WorksheetFunction.Log10(Abs(number))) - 1, True))
End FunctionÜdv.
-
bteebi
veterán
Sziasztok!
Talán már többször is előjött Excelben az értékes jegyekkel való számolás, értékes jegyre való kerekítés problémája. Rákerestem, de nem találtam rá igazi leírást itt a fórumban, úgyhogy írok egyet én. Legalább háromféle módszerrel találkoztam, amit szoktak rá használni. Abból a legelső egyértelműen rossz (azt végül inkább nem írom le, mert tutira azt találná meg mindenki
), a második majdnem jó (a 0-kat nem teszi be értékes jegynek, tehát pl. a 0,01 három értékesre is 0,01 marad, nem pedig 0,0100), a harmadik pedig teljesen jó - "csak" annak a végeredménye nem szám, hanem szöveg (eggyel megszorozva természetesen szám lesz, csak akkor a fentebb írt probléma szintén megmarad). A képletek (A2-ben van a kerekítendő szám, a SignificantDigits pedig az értékes jegyek száma):=KEREKÍTÉS(A2;SignificantDigits-INT(LOG(ABS(A2)))-1)
=FIX(A2; SignificantDigits-INT(LOG10(ABS(A2)))-1;IGAZ)Az első képlet a második módszer, a második pedig a harmadik
. Remélem érthető. Ez utóbbira írtam egy egyszerű függvényt is:Function Sigdig(number As Range, SigDigits As Integer)
Sigdig = WorksheetFunction.Fixed(number, SigDigits - Int(WorksheetFunction.Log10(Abs(number))) - 1, True)
End FunctionEz pedig úgy működik, hogy:
=Sigdig(A2;3)Egy problémám van vele. Azt hogy lehet megoldani, hogy számot és tartományt is meg lehessen adni a képletben? Mert vagy ez működik, vagy az. Meg hogy lehetne azt megcsinálni, hogy szám legyen a végeredmény (ez esetben a fenti megjelenítési hiba nem zavarna), ne pedig szöveg? Előre is köszönöm a javaslatokat!

-
d@minator
addikt
Sziasztok! Segítség kellene.
Van egy oszlopom amiben számok vannak. Legyen "E" oszlop.
A mellette lévő oszlopban (F) néhány szám mellett van "A" betű.
Össze kellene adni az "E" oszlopban lévő számokat de csak azokat amelyek mellett a "A" karakter szerepel.
Ezért egy másik cellába az alábbi képletet írtam és működik:
=HA(F2="A";E2)+HA(F3="A";E3)+ .......... + HA(F800="A";E800)A bajom az, hogy több számot kell majd összeadni. Hogyan tudom egyszerűen?
-
DeFranco
nagyúr
válasz
Delila_1
#31837
üzenetére
nagyon köszönöm

az érdekelt volna első körben, hogy ezt függvénnyel meg lehet-e oldani (van-e olyan függvény, ami egy logikai feltételnek (pl. <>0 vagy NEM(ÜRES) ) megfelelő cellát keres amíg meg nem találja, majd annak megadja valamilyen hivatkozását)
második körben ha ez nem, akkor jön a makró amit írtál, köszönöm még egyszer

@bsasa1: köszi ez a "favágó" módszer megvolt, de nyilván valami elegáns keresőfüggvényes megoldást kerestem volna
@Delila_1: köszönöm még egyszer.

-
bsasa1
csendes tag
válasz
DeFranco
#31836
üzenetére
Szia!
Szerintem függvénnyel maximum jópár segédoszloppal oldható meg.
Kell mellé egy másik ugyanakkora mátrix, bele mindenhova üres képlettel, így az üres cellák IGAZ, az adatot tartalmazó cellák HAMIS értéket kapnak. Erre már rá tudsz keresni a HOL.VAN függvénnyel, de minden találat után el kell csúsztatni a hivatkozást, amiben keresel pl ELTOLÁS függvénnyel.
Így sorban mindet meg tudod találni, de makróval szerintem egyszerűbb......közben érkezett is egy

S.
-
Delila_1
veterán
válasz
DeFranco
#31836
üzenetére
Az A1:T20 (20×20-as) mátrixodhoz tedd modulba a lenti makrót, majd indítsd.
Sub Matrixos()
Dim cella As Range, oszlop As Integer, sor As Long
Dim terulet As Range
Set terulet = Range("A1:T20")
oszlop = 21: sor = 1
For Each cella In terulet
If cella.Row > sor Then
oszlop = 21: sor = sor + 1
End If
If cella <> "" Then
Cells(cella.Row, oszlop) = cella.Address
Cells(cella.Row, oszlop + 1) = cella.Value
oszlop = oszlop + 2
End If
Next
End Sub -
DeFranco
nagyúr
van egy mátrixom, legyen 20 sor 20 oszlop
adat elég gyéren van benne, a mátrix egy-egy sorában lehet 1, 2, 3 adat (tehát 19-18-17 cella üres)
minden sor végére ki szeretném íratni, a 21. 23. 25. oszlopba, hogy hol (melyik oszlopban) talált adatot (értelemszerűen ha csak egy van, akkor a 23-25 üresen marad, stb.) a 22. 24. 26. oszlopokba pedig az adatot magát, amit megtalált (értelemszerűen ha csak egy van, akkor 24-26 üres stb.).
HOL.VAN függvénnyel estem neki, de annak pontos egyezés kell, így nem tudtam használni.
arra volnék kíváncsi, hogy ez függvénnyel megoldható-e, és ha igen, hogyan?
-
-
PeLa87
aktív tag
-
-
Delila_1
veterán
válasz
PeLa87
#31822
üzenetére
Feltettem a ide a füzetedet.
Az A oszlop a név, a B ennek az angol karakteres megfelelője + egy hozzá fűzött alsó kötjel + 5 db véletlen karakter. A harmadik oszlopban a B oszlop bárkódja. Ehhez csak annyi kell, hogy a B oszlopra hivatkozva hozd be a nevet, és egy bárkód típusú karakterkészletet rendelj hozzá. Az én füzetemben a "3 of 9 Barcode" nevű van.
A második oszlop adatait egy saját, Karaktercsere nevű függvény állítja elő. Ebben az oszlopban véletlen-szerűen előállított karakterek vannak. Hogy megmaradjon az egyes nevekhez rendelt pár karakter, a cellát másold, és saját magára adj értékbeillesztést.
-
PeLa87
aktív tag
Sziasztok!
Találtam egy excel táblázatot ami code128 vonalkódot készít az adott szövegből. Találtam egy ékezettelenítőt is:
=HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(B2;"Á";"A");"É";"E");"Í";"I");"É";"E");"Ó";"O");"Ö";"O");"Ő";"O");"Ú";"U");"Ü";"U");"Ű";"U");"á";"a");"é";"e");"í";"i");"é";"e");"ó";"o");"ö";"o");"ő";"o");"ú";"u");"ü";"u");"ű";"u")
ha új excel táblába akarom beilleszteni akkor működik, ha az említett vonalkód generátoros excel-be akkor azt írja ki, hogy túl sok egye ágyazott a képlet vagy valami hasonló.
Úgy szeretném megoldani, hogy
A1: név
B1: ékezettelenített név
C1: vonalkód kiírása szöveggel
D1: vonalkód elkészítéseEsetleg a névhez egyedi azonosító ami A-Z és a-z és 0-9 (10karakteres) rendel hozzá és 2 azonos név esetén is különböző lesz az egyedi azonosító. Ez nagyon bonyolult? Mert akkor lemondok róla...
csak az első rész lenne a fontos, a vonalkódos rész. Viszont a makrókhoz nem értek, ezért kerestem képleteket... -
#92888064
törölt tag
sziasztok!
találam egy megfelelő pénztárköny excelt, amit egy kis szerkesztéssel a papír alapúhoz hasonlóvá szeretnék tenni. az volna a kérdésem, hogy nyomtatásnál hogy lehetne rávenni az excel, hogy a felső 3 rögzített sort minden oldalon megjelenítse?
alapvetően a felső 3 rögzített soron kívül még 25 sor kell oldalanlént.
az volna a legjobb, ha az áthozat sort is megjelenítené 4. rögzített sorként, a két összesen és az egyenleg oszlopra.
a válaszokat előre is köszönöm
-
PeLa87
aktív tag
Sziasztok!
Ha a G2 cellában van egy születési dátum (1919.12.05) és H2-be kiszámoltattam, hogy 96 éves az alábbi képlettel: =HA(DÁTUM(ÉV(MA());HÓNAP(G2);NAP(G2))>MA();ÉV(MA())-ÉV(G2)-1;ÉV(MA())-ÉV(G2))
Hogy lehet azt megoldani, hogy I2-be kiírja, hogy ma van a születésnapja?
Köszönöm előre is a segítséget!
-
róland
veterán
Szeretnék egy táblázatkezelős munkalaphoz űrlap adatbeviteli kezdőlapot készíteni. Az adatok nagyjából a mellékelt képernyőkép szerintiek:

[link]Hogy induljak neki Excel 2007-ben?
Lehetőleg makró nélküli megoldást szeretnék!
-
Sziasztok!
Van egy adatsorom, aminek a celláira egy-egy képlet hivatkozik. Az adatok egy sorban vannak, de a képletek egy oszlopban kell, hogy legyenek. Hogyan tudom úgy másolni a képleteket, hogy másolás közben a képletben az oszlop értéke változzon, ne a sorszám? Sokáig tartan egyesével beírni...
-
Fferi50
Topikgazda
válasz
Declare
#31802
üzenetére
Szia!
Ezt a sort írd be a makróba:
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")))Ha a "h" feltétellel együtt kell teljesülnie, akkor az End If sor elé.
Ha csak a "p" feltételnek kell teljesülnie, akkor egy kicsit átalakítva az End If utánIf Range("H" & i).Value = "p" Then Range("F" & i).Value = Application.Sum(Range("F" & i - 1, Cells(Range("H" & i).EntireColumn.Find(what:="p", LookIn:=xlValues, SearchDirection:=xlPrevious, lookat:=xlWhole).Row, "F")))Az első p esetében hibát okozhat, hogy nincs előtte még másik p az oszlopban, ebben az esetben a hibakezelésben az első sortól kell az összeadást csinálni.
On Error Resume Next
ide jön a képlet
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Üdv.
-
RAiN91
őstag
szerk: semmi
-
alfa20
senior tag
Aha, szóval válogasson addig a számokból míg nem a kívánt eredményt kapja

makróval megoldható, igaz nem egyszerű de talán...
szerintem el kellene tárolni a számokat egy tömb-be, majd random függvénnyel egy ciklusban kiszedni a tömb egyes elemeit, addig míg nem = az új tömb elemei összege a kívánt értékkel
Bár a ciki az, ha pont egy olyan szám kell a végére, amit egyszer már kivettünk, mert akkor újra kezdheti a ciklus a gyűjtögetést.
de lehet csak túl bonyolítóm
#31801: ha megoldódott az jó, az ilyet sokan szeretik

-
Declare
őstag
Sziasztok!
Megint egy kis Macros kerdes

Van egy ilyen makrom:
Sub FormatText()
Dim i As Integer
For i = 1 To Range("A" & "1353").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
End If
Next i
End SubA H oszlopban vannak megjelölt cellak (egy ha függvennyel ezt megcsinalom), amik "h" es "p" erteket tartalmaznak.
Lenyeg az, hogy a H oszlopot vizsgalja es ha annak egyik sorában "h" erteket talal, akkor elvegzi azokat a formazasokat, amiket kerek töle. Ezt kellene meg egy dologgal böviteni, hogy:- Az éppen vizsgált sorban, az F cellába összegezze az F oszlop értékeit felfele, egeszen addig amig a H oszlopban nem talal "p" erteket. (Tehat manualisan ezt ugy kell elkepzelni, hogy belekattintok a vizsgalt sor F cellajaba, nyomok egy SZUM fügvenyt es felfele kijelölessel felhuzom az összegzendö tartomanyt addig a sorig, amig a H oszlopban meg nem talalom a "p" erteket")
Aztan igy menne tovabb szepen lefele.
Remelem erthetö, mit szeretnek, nem tudom, mennyire bonyolult ez. Ha valaki segit, azt nagyon köszönnem ismet

mod: a macro alap reszeben mar segitettetek, meg tanacsoltatok is par egyszerüsitest, egyelöre direkt nem akartam egyszerüsiteni, mert igy könnyen atlatom mit csinal.....majd ahogy idöm engedi tanulgatom jobban a macrot es egyszerüsitem is

Új hozzászólás Aktív témák
- Real Racing 3 - Freemium csoda
- Call of Duty: Modern Warfare III (2023)
- Az SK Hynix elárulta, hogy meddig nem lesz elég memória
- SörcsaPH!
- EU-s vám vethet véget a nagyi temus vásárlási lázának
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- AMD Navi Radeon™ RX 9xxx sorozat
- Vicces képek
- További aktív témák...
- Keresem a Barkács Balázs Játékokat
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- 10 Darab ÚJ PC Játékszoftver
- MEGA AKCIÓ! - Jogtiszta Windows - Office & Vírusirtó licencek- Azonnal - Számlával - Garanciával
- ÚJ AKKU! Ár/ÉRTÉK BAJNOK! Dell Latitude 5330 i3-1215U 6mag! 16GB 512GB 13.3" FHD 1 év gar
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5060 Ti 8GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone XR 128GB Red-1 ÉV GARANCIA - Kártyafüggetlen, MS3984, 100% Akkumulátor
- Telefon felvásárlás!! Xiaomi Redmi Note 12, Xiaomi Redmi Note 12 Pro, Xiaomi Redmi Note 12 Pro+
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



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





), a második majdnem jó (a 0-kat nem teszi be értékes jegynek, tehát pl. a 0,01 három értékesre is 0,01 marad, nem pedig 0,0100), a harmadik pedig teljesen jó - "csak" annak a végeredménye nem szám, hanem szöveg (eggyel megszorozva természetesen szám lesz, csak akkor a fentebb írt probléma szintén megmarad). A képletek (A2-ben van a kerekítendő szám, a SignificantDigits pedig az értékes jegyek száma):
![;]](http://cdn.rios.hu/dl/s/v1.gif)


