-
Fototrend
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Kobe
veterán
mivel ugyanaddig a sorig jut el a makró, ezért ugyanúgy néz ki:
ezt rakja be visual basicbe:
Dim lngLastRow
lngLastRow = Cells(Rows.Count, "A").End(xlUp).Row
Columns("X:X").Select
Selection.Insert Shift:=xlToRight
Range("X1").Select
ActiveCell.FormulaR1C1 = "common_id"
Range("X2").SelectEzt meg hozzácsapja alulra:
Private Sub Worksheet_Change(ByVal Target As Range)
End SubAz access meg runtime error 40063 at dob
-
Delila_1
Topikgazda
válasz pirit28 #17744 üzenetére
Bár nem vagyok "úr", azért megpróbálok válaszolni.
Hozd létre a Sheet1 lapon a fényképezőgéppel az objektumot. Ezt másold a Sheet2-re (Ctrl+c, Ctrl+v), és nevezd el Foto2-nek. Kijelölve az új objektumot, a szerkesztőlécen az =$B$1 helyett ezt írd be: =Sheet1!$B$1
A Sheet2 laphoz rendeld a makrót:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Target = Sheets("Sheet1").Range("A1") Then
F_mutat
Else
F_rejt
End If
End If
End SubÚj modulba másold a lenti 2 makrót:
Sub F_mutat()
Sheets("Sheet2").Shapes("Foto2").Visible = True
End SubSub F_rejt()
Sheets("Sheet2").Shapes("Foto2").Visible = False
End SubHa a Sheet2 lap A1 cellájába beírt név megegyezik a Sheet1 lap A1 cellájának értékével, a Sheet2 lapon látható lesz a fotó, egyébként nem.
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
Legyen nyitva a makró(ka)t tartalmazó füzeted.
A "Gyorselérési eszköztár" jobb oldalán van egy lefelé mutató nyíl. Erre kattintva a megjelenő menüből hívd elő a "További parancsok" nevűt. A "Választható parancsok helye" legördülőben kiválasztod a "Makrók" nevűt, a többi már látszik.
Mikor átteszel egy makrót a jobb oldali listába, érvényes lesz a "Módosítás" gomb, amivel az alkotók ízlése szerinti gombképet rendelhetsz az ikonodhoz.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
csferke
senior tag
Sziasztok!
Elakadtam az alábbi táblázat IF ágaiban:B3 = B2 - B1
B4 = =IF(HOUR(B3)<8;DAY(B3);IF(AND(HOUR(B3)>=8;HOUR(B3)<=12);DAY(B3)+0.5;DAY(B3)+1))[ Szerkesztve ]
-
csferke
senior tag
Közben volt egy tel.hívásom és lejárt a szerkesztési időm.
Itt a folytatása a kérdésnek.
Azt kellene elérnem, hogy B4 értéke a következőképen változzon
ha B3 0nap 08:00 vagy kevesebb akkor B4=0
ha B3 0nap 08:01 és 0nap 12:00 között van akkor B4=0,5
ha B3 0nap 12:01 vagy nagyobb akkor B4=1
ha B3 Xnap 08:00 akkor B4=X
ha B3 Xnap 08:01 és Xnap 12:00 között van akkor B4=X+0,5
ha B3 Xnap 12:01 vagy nagyobb akkor B4=X+1Remélem ki lehet hámozni, hogy mit is szeretnék.
köszönettel
-
dellfanboy
senior tag
fkeres-el kapcsolatban lenne egy kérdésem.
a tábla ahol keresem az értéket duplikálva vannak a sorok.
országok plussz hozzá lakosság száma (pl Ausztria 2 sorral szerepel)
arra a fv-re lenne szükségem ami pl Ausztria esetén a maximumot tehát a 2 sorból az egyiket ahol az érték magasabbeladó dolgok:mondd az árát és vidd http://hardverapro.hu/tag/dellfanboy#aprohirdetesei
-
alfa20
senior tag
válasz dellfanboy #17760 üzenetére
nem tudom tud-e ilyet az fkeres, mert az első találatot keresi, majd a hozzá értők meg mondják a tutit, de addig rendezd sorba előbb a lakosság számára majd az országra, addig is jó lesz míg nem kapsz más választ
"Az agy olyan, mint az ejtőernyő: csak akkor működik, ha nyitott." (Thomas Dewar)
-
Delila_1
Topikgazda
válasz dellfanboy #17760 üzenetére
Az Adatok | Rendezés és szűrés | Speciális menüpont segítségével a kép szerint tedd ki az egyedi értékeket egy új oszlopba, ami nálam az E. Régebbi verzióban a menüt az Adatok | Szűrő | Irányított szűrő cím alatt találod meg.
Az F2 cella képlete
=MAX(INDIREKT("B"&HOL.VAN(E2;A:A;0)&":B" & HOL.VAN(E2;A:A;1)))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
válasz csferke #17759 üzenetére
A C3 képlete =NAP(B2)-NAP(B1)
B4
=HA(ÉS(C3=0;ÓRA(B2)<8);0;HA(ÉS(C3=0;ÓRA(B2)>8;ÓRA(B3)<=12);0,5;HA(ÉS(C3=0;ÓRA(B2)>12);1;HA(ÉS(C3>0;ÓRA(B2)<8);C3;HA(ÉS(C3>0;ÓRA(B3)>8;ÓRA(B3)<=12);C3+0,5;C3+1)))))Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
dellfanboy
senior tag
válasz Delila_1 #17764 üzenetére
köszi szépen, ez jónak tűnik de az első lépést nem tudom abszolválni mert azt a hibát kapom hogy aA kivonatolt tartományban egy mezőnév hiányzik??
próbálkoztam avval, hogy a mező formátuma nem jó, értsd létrehoztam magam az ország neveket de nem lett jó. mi lehet a hibA?eladó dolgok:mondd az árát és vidd http://hardverapro.hu/tag/dellfanboy#aprohirdetesei
-
Delila_1
Topikgazda
válasz dellfanboy #17767 üzenetére
A szűrés behívása előtt jelöld ki a tartományt, ahogy a képen látod. Panaszkodni fog, hogy nem tudja megkülönböztetni az adatokat a címtől, mert mindegyik szöveges. Ne törődj vele, menj tovább, vagy írd be előre az E1-be az A1 értékét.
[ 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.
-
Delila_1
Topikgazda
válasz Delila_1 #17766 üzenetére
Elnézést, hellyel-közzel B2 helyett B3-at írtam a képletben.
Kijavítva:
=HA(ÉS(C3=0;ÓRA(B2)<8);0;HA(ÉS(C3=0;ÓRA(B2)>8;ÓRA(B2)<=12);0,5;HA(ÉS(C3=0;ÓRA(B2)>12);1;HA(ÉS(C3>0;ÓRA(B2)<8);C3;HA(ÉS(C3>0;ÓRA(B2)>8;ÓRA(B2)<=12);C3+0,5;C3+1)))))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
válasz csferke #17758 üzenetére
Nem voltak jók az előző képletek. Az időknél a perceket, és másodperceket is figyelembe kell venni, még akkor is, ha nem látszanak.
Irgalmatlan hosszú képlet kell hozzá, pedig a napok különbségét külön, a C3 cellában számoltatom ki a =NAP(B2)-NAP(B1) képlettel.
B4:
=HA(ÉS(C3=0;IDŐ(ÓRA(B2);PERC(B2);MPERC(B2))<=IDŐ(8;0;0));0;HA(ÉS(C3=0;IDŐ(ÓRA(B2);PERC(B2);MPERC(B2))>IDŐ(8;0;0);IDŐ(ÓRA(B2);PERC(B2);MPERC(B2))<=IDŐ(12;0;0));0,5;HA(ÉS(C3=0;IDŐ(ÓRA(B2);PERC(B2);MPERC(B2))>IDŐ(12;0;0));1;HA(ÉS(C3>0;IDŐ(ÓRA(B2);PERC(B2);MPERC(B2))<=IDŐ(8;0;0));C3;HA(ÉS(C3>0;IDŐ(ÓRA(B2);PERC(B2);MPERC(B2))>IDŐ(8;0;0);IDŐ(ÓRA(B2);PERC(B2);MPERC(B2))<=IDŐ(12;0;0));C3+0,5;C3+1)))))Remélem, ez már jól működik.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Kobe
veterán
A code3 nevu beillesztett kod tartalmatol fuggetlenul mindig ugyanazzal a hibaval fut le, es Sub / End sub okat mindig kulon rakja be, eloszor a kod majd utana a sub/ end sub, es accessben elakad a korabban irt sornal
amit baromira nem ertek hogy van egy ugyanilyen makrom, az egy excelbe importalt adatlistan hajt vegre muveletet ott tokeletesen mukodik, itt meg hogy egy elore letrehozott filbe akarom, nem megy
-
Telda
addikt
Hali!
A lenti függvényben a dupla idézőjeleknek van valami különleges jelentése?
=HA(L265="";"";L265/60)
Tehát ha L265="" akkor az eredmény "" máskülönben az L265 értékét ossza 60-nal?
Mi lenne ez a "" ?[ Szerkesztve ]
-
Delila_1
Topikgazda
Azt jelenti, hogy ha az L265 cella üres, akkor a képletet tartalmazó cella is legyen (látszólag) üres, egyébként pedig a L265 értékének 60-ad része legyen az eredmény.
Azért "látszólag", mert a képlet ott van benne továbbra is.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
alfa20
senior tag
makró-ban tudna valaki segíteni?
Sorba rendezést szeretnék előbb "B" oszlopra majd "A"-ra, próbáltam makrórögzítéssel, de ott mindig megadja a munkalap nevét, de az nekem minden nap más."Az agy olyan, mint az ejtőernyő: csak akkor működik, ha nyitott." (Thomas Dewar)
-
alfa20
senior tag
válasz Delila_1 #17777 üzenetére
Így kell?
ActiveWorkbook.Worksheets("Active.Sheet").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Active.Sheet").Sort.SortFields.Add Key:=Range( _
"A2:A376"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Active.Sheet").Sort.SortFields.Add Key:=Range( _
"B2:B376"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Active.Sheet").Sort
.SetRange Range("A1:Z376")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End Withennek a helyén
Range( _
"A2:A376")működhet usor-al:
Range( _
"A2:A" & usor)Ez az eredeti:
ActiveWorkbook.Worksheets("0416-kp").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("0416-kp").Sort.SortFields.Add Key:=Range( _
"A2:A376"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("0416-kp").Sort.SortFields.Add Key:=Range( _
"B2:B376"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("0416-kp").Sort
.SetRange Range("A1:Z376")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With[ Szerkesztve ]
"Az agy olyan, mint az ejtőernyő: csak akkor működik, ha nyitott." (Thomas Dewar)
-
pirit28
csendes tag
Szia Delila_1 !
a 17756-os válaszodra
Kössz a gyors reagálást..Egy kicsit ,hogy is mondjam elakadtam.
1. Hol tudom Foto2 -nek elnevezni amit kell ?
Vagy jól csináltam vagy nem , de folyton run time error üzenet fogad.
'-2147024809 (80070057)'
debuggolva ezt mutatja
Sheets("Sheet2").Shapes("Foto2").Visible = FalseKöszönöm
-
mr.nagy
tag
Sziasztok!
Egy cella értékét kellene vizsgálni, hogy egész vagy tört szám. Egy másik cellában mellette pedig megjeleníteni, ha egész egy 1-set, ha tört egy 2-est (vagy igaz vagy hamis eredmény is jó lenne). Van erre függvény?
[ Szerkesztve ]
HMNote10Pro
-
Kobe
veterán
na, 1 kicsit hegesztettem a kódon 1-2 apróságot, így ebben a formában már sikerült elérnem hogy az Excel VBA-jába a Sheet 1 -re Private Sub / End Sub közé teszi be a Code3 tartalmát.
Az egyetlen gondom az, hogy a sub nem fut le automatikusan, pedig jó lenne ha azt beinsertálás után automatikusan futtatná is.
Van tippetek mit kellene hozzáadni, változtatni hogy az is menjen ?
Function OpenformatSWP()
Dim objexcel As Object
Dim objworkbook As Object
Dim CodeMod As Object
Dim LineNum As Long
Dim Code3 As String
Dim destination2 As String
destination2 = "C:\Access programmer\test.xls"
Set objexcel = CreateObject("Excel.Application")
objexcel.Visible = True
objexcel.DisplayAlerts = False
Set objworkbook = objexcel.Workbooks.Open(destination2)
'Set CodeMod = objworkbook.VBProject.VBComponents("Sheet1").CodeModule
Set CodeMod = objworkbook.VBProject.VBComponents("Ark1").CodeModule
Code3 = ""
Code3 = Code3 & " Dim lngLastRow" & vbNewLine
Code3 = Code3 & " lngLastRow = Cells(Rows.Count, ""A"").End(xlUp).Row" & vbNewLine
Code3 = Code3 & " Columns(""X:X"").Select" & vbNewLine
Code3 = Code3 & " Selection.Insert Shift:=xlToRight" & vbNewLine & vbNewLine
Code3 = Code3 & " Range(""X1"").Select" & vbNewLine
Code3 = Code3 & " ActiveCell.FormulaR1C1 = ""common_id""" & vbNewLine & vbNewLine
Code3 = Code3 & " Range(""X2"").Select" & vbNewLine
With CodeMod
LineNum = .CreateEventProc("Change", "Worksheet")
' .VBE.MainWindow.Visible = False
LineNum = LineNum + 1
.InsertLines LineNum, Code3
End With
objworkbook.Save
objworkbook.Close
'reopen Excel to run autostart
objexcel.Workbooks.Open (destination2)
End Function -
Mutt
aktív tag
Hello,
A hibát a
LineNum2 = .VBE.MainWindow.Visible = False sor okozza.
Mivel ez egy parancs a VBA editornak ezért csak így lesz jó:Application.VBE.MainWindow.Visible = False
Nekem így már lefut .xls-en is, látszólag .xlsx-en is megcsinálja, de mivel az makrómentes ezért mentéskor eldobja.
üdv.
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Mutt
aktív tag
Hali,
Ugyanarra jutottunk.
Az egyetlen gondom az, hogy a sub nem fut le automatikusan...
Mivel a Sheet1 Change eseményébe szúrod be ezért nem fut le, Workbook Open esemény kell, de meg kell oldanod hogy ne minden megnyitáskor, hanem csak változáskor fusson le.
LineNum = .CreateEventProc("Open", "Workbook")
Esetleg csinálhatod azt hogy
If Thisworkbook.Sheets("Sheet1").Range("A1") = "" Then
<ide az eredeti kód>
Thisworkbook.Sheets("Sheet1").Range("A1") = 1
End ifüdv.
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Kobe
veterán
hello mester köszi a tippeket mint mindig
igen, próbálkoztam azzal, hogy átírom így, ahogy te is javasoltad:
LineNum = .CreateEventProc("Open", "Workbook")
de ilyenkor valamiért összeakadt a kód többi sorával - általában elakadt ennél a sornál, és accessben egy "Event handler is invalid" hibaüzenetet kaptam.
Igazából az lenne a cél, hogy az adott makró csak 1 fusson le, és többször ne, gondolom akkor ez az If amit írtál, azt csinálja hogy csak akkor futtatja, ha A1 üres, ha bármilyen érték van benne, akkor már nem fut le. Ez tök jó lenne, mert A1 általában mindig ki van töltve, csak amint átakarnám írni Open eventprocedurre a dolgot, onnantól kezdve borul a bili
pedig van egy hasonló makró ami létrehoz és emgformáz egy táblázatot excelben, az ugyanezzel a kóddal perfektül működik. Nem tudom, hogy az xls tartalmának lehet e közze hozzá, ez a file amit használni akarok annyiban komplikáltabb hogy általában 3 munkalap van rajta:
Sheet1 (INT)
Sheet2 (excl INT)
Sheet3 (All)én igazából ezt a makrót mindig csak az INT nevű munkalapon szeretném futtatni, gondolom akkor ezt valahogy a Code = Code & .... részben definiálni kellene
[ Szerkesztve ]
-
Mutt
aktív tag
válasz dellfanboy #17760 üzenetére
Hello,
Delila_1 mintájára építve ez a CSE függvény is műkődik erre:
{=MAX(HA(A2:A7=E2;B2:B7))}
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Mutt
aktív tag
válasz csferke #17759 üzenetére
Hello,
Szerintem ez a képlet megteszi B4-ben:
=INT(B3)+HA((B3-INT(B3))>0,5;1;HA((B3-INT(B3))<1/3;0;0,5))
B3-ban gondolom egy sima B2-B1 van egyéni számformátummal.
Az első fele megadja a napok számát, a második fele pedig attól függően, hogy a napból hány óra telt el 0; 0,5 vagy 1-et ad még hozzá.
üdv.
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Mutt
aktív tag
Hello,
A létező xls-ben van-e már workbook open event?
Ha tőled függetlenül már van, akkor meg van az indok hogy miért hasal el.
Ha azt nem tudod/mered változtatni, akkor Auto_Open névvel kell egy module-ba a kódódat beszúrni.'új module beszúrása
Set VBComp = VBProj.VBComponents.Add(vbext_ct_StdModule)
VBComp.Name = "NewModule"
Set CodeMod = VBComp.CodeModule
'Auto_Open sub létrehozása
With CodeMod
LineNum = .CountOfLines + 1
.InsertLines LineNum, "Sub Auto_Open()"
LineNum = LineNum + 1
.InsertLines LineNum, Code3
LineNum = LineNum + 1
.InsertLines LineNum, "End Sub"
End WithEsetleg az Auto_Close sub-ba pedig tehetsz egy olyat, hogy az Auto_Open-t törölje ha az már lefutott.
üdv.
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
őstag
Helló !
Egy olyan kérdésem lenne,hogy van egy táblázatom, melynél az első munkalapon viszem be az adatokat, (Név, Cim, és több oszlopon keresztül tulajdonságok számokkal értékelve). A 2.Munkalapra kerülnek ezek az adatok, de a számokból egy súlyozott indexet csinálok, és ezen indexek szerint szeretném csökkenő sorrendbe tenni őket.
Tehát amint írok be az első munkalapon új céget, a 2. munkalapon amint bekerül a sorok közé az új adat, automatikusan csökkenő sorrendben jelenjen meg.
Makróval kell, arra rájöttem, de az istenért nem akar működni :\Köszönöm.
-
-
Caipi
tag
Sziasztok,
Kérdésem lenne:
Adott két táblázat (lásd kép). Bal oldaliba függvénnyel kerülnek az adatok, jobb oldaliba kézi rögzítéssel.
Szeretném valahogy levizsgálni, hogy a kézi rögzítés a bal oldali táblázatnak megfelelő oszlopba/oszlopokba történik-e.
(Azaz, ha egy adott sorban egy vagy több oszlopban van érték, akkor a kézi rögzítésnek is az annak megfelelő oszlopokba kellene történnie. Pl: bal oldal A3;D3, akkor jobb oldal H3;K3 cellákba kell értéket bevinni)Köszönöm előre is :-)
A vizsgálat külön oszlopba menne, mondjuk az F-be.
[ Szerkesztve ]
Új hozzászólás Aktív témák
- Eredeti Windows, telepítéssel! Digital Doctor Számítógép Szerviz
- Steames kulcsok jó áron eladóak!
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! LEGOLCSÓBB! Automatikus 0-24
- Warhammer Online - Age of Reckoning (DE) Collectors Box (Figurával!)