- lezso6: Miért is jó, ha dohányzol?! Megéri rászokni!
- gban: Mentett Pentium 1 alaplapok
- sellerbuyer: Milyen laptopot vegyek? Segítek: semmilyet!
- petipetya: Nagy chili topic. :)
- sziku69: Fűzzük össze a szavakat :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- btz: Internet fejlesztés országosan!
- Brogyi: CTEK akkumulátor töltő és másolatai
- Luck Dragon: Asszociációs játék. :)
- ldave: New Game Blitz - 2025
Aktív témák
-
Renegate
csendes tag
'' - nem tudod belinkelni a táblát? '' ----> a táblát sajna nem tom belinkelni, mivel oian adatokat tartalmaz, ami személyes jellegűek / nem az én adataim, hanem 3. személy adatai./
- '' gondolom van vmi furmány képlet a 2. munkalapon, amit aztán vissza kéne írogatni. mi akadályoz meg abban, hogy ezt a képletet 1. munkalap B3 cellájába írd be'' -----> a kérdéses adatok egy 1200 személyt tartalmazó adathalmazbol kerülnek ki..
igy ezt beirogatni kicsit huzos lenne.
asszem mindkét kérdésre válaszoltam -
matekmatika
tag
''ha nem select-eled a fület hanem csak sheets(''összegzés'').cells(i,1) =''mittomén''-ként írod be nem telik el több idő.''
No igen, ha az a sheet ugyanabban a munkafüzetben lenne, mint amelyikben az adatok vannak akkor nem is töprengtem volna ennyit rajta. De az egy másik munkafüzetben van, és az ugrálást e két munkafüzet között értettem.
Végül is sikerült imigyen:
Private Sub CommandButton6_Click()
Dim munkalap(1 To 31) As Integer
Dim de(1 To 31) As Integer
Dim du(1 To 31) As Integer
a = 0
For Each Worksheet In ActiveWorkbook.Worksheets
Set nev = Worksheets(Worksheet.Name)
If IsNumeric(Worksheet.Name) Then
a = a + 1
munkalap(a) = Worksheet.Name
....
de(a) = nev.Cells(b - 1, 1)
....
du(a) = nev.Cells(b - 1, 1)
End If
Next
End Sub
Köszi a segítséget.
[Szerkesztve] -
matekmatika
tag
Pontosan: Elöször végigmegyek sorba minden munkalapon közben egy változóban sorra eltárolom:
1. A munkalap nevét
2. A munkalapon található még két adatot egy-egy változóban
[munkalap(i), adat1(i),adat2(i)]
Majd mikor végigment a ciklus minden munkalapon, és begyüjtöttew mindegyikről az adatokat, akkor nyit egy új munkafüzetet és az adatokat oda beírja, majd készít róluk egy grafikont. -
MartinIsti
csendes tag
Köszi a segítséget Lapa, viszont azóta sikerült nekem is kitalálni egy lehetséges megoldást. Igaz, kicsit barkácsolós, de íme:
Ugye volt egy ilyenem:
''=volan!R2C3:R57C3''
És lett egy ilyen:
''=volan!R2C'' & intOszlopszam & '':R57C'' & intOszlopszam
Ez az & karakter igen hasznos stringek összefűzésére, még képletekben is!
[Szerkesztve] -
da.mage
csendes tag
Még egy kérdés: hogy lehet e függvényemet igazi beépülövé tenni? Ez alatt azt értem, hogy jelenjen meg az Excel saját fügvény listájában, és az Excel ne kérdezősködjön megnyitáskor hogy engedélyezni akarom e a makrókat. A biztonsági beállítások módosítása nélkül.
Valamikor réges rég olvastam erről de természetesen már fogalmam sincs milyen forrásban. -
n3ur0
csendes tag
Hat van egy nyomtato patron tablazatom hol fel vannak sorolva a nyomtatok es a patron tipusok. es ha en rakeresek akarmilyen nyomtatora nekem mutassa ki hogy milyen patronok tartozzanak hozza. hogy ne kelljen ott egerrel vegigvezetni hogy hova van x-elve a patrontipushoz. Megvalosithato ez ?
-
matekmatika
tag
Szia! Ehhez mit szólsz?:
Private Sub CommandButton1_Click()
Dim objNameSpace
Dim objOutlookApp
Dim objItem
Set objOutlookApp = CreateObject(''Outlook.Application'')
Set objNameSpace = objOutlookApp.GetNameSpace(''MAPI'')
Set objItem = objOutlookApp.CreateItem(0) 'MailItem
objItem.To = ''cím@freemail.hu''
objItem.Attachments.Add ''C:\Windows\Asztal\proba.txt'', 1, , _
''Próba fájl''
objItem.Subject = ''Próba fájl''
objItem.Display
objItem.Send
End Sub
Ezt találtam, azaz majdnem ezt, volt az eredetiben több hiba is. Ez excelből tökéletesen működik, még win98 alatt is. Viszont lenne egy kérdésem. Az End Sub előtt még volt egy ilyen: ''Wscript.Quit''. Ennél hibajelzéssel leállt. Ezt kivettem így jó. Szükséges hogy az benne legyen? Ha nem akkor jó, de ha igen, akkor miként kellene átalakítani ezt az utasítást hogy jó legyen? Lehet ebben is csak valami elírás van.
Köszi. -
matekmatika
tag
-
matekmatika
tag
Ilyet találtam, ami tetszik is mert értem
, de mégse jó mert az utolsó előtti utasításnál hibaüzenettel leáll.
Dim ObjSendMail
Set ObjSendMail = CreateObject(''CDO.Message'')
ObjSendMail.Configuration.Fields.Item(''http://schemas.microsoft.com/cdo/configuration/sendusing'') = 1
ObjSendMail.Configuration.Fields.Item(''http://schemas.microsoft.com/cdo/configuration/smtpserver'') = ''mail.pr.hu''
ObjSendMail.Configuration.Fields.Item(''http://schemas.microsoft.com/cdo/configuration/smtpserverport'') = 25
ObjSendMail.Configuration.Fields.Item(''http://schemas.microsoft.com/cdo/configuration/smtpusessl'') = False 'Use SSL for the connection (True or False)
ObjSendMail.Configuration.Fields.Item(''http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout'') = 60
ObjSendMail.Configuration.Fields.Update
ObjSendMail.To = ''kinek@pr.hu''
ObjSendMail.Subject = ''Proba''
ObjSendMail.From = ''kitől@freemail.hu''
ObjSendMail.TextBody = ''Tartalom''
ObjSendMail.Send
Set ObjSendMail = Nothing
A hibaüzenet pedig: ''Run-time error '-2H7220958 (80040222)':
A felvételi könyvtár elérési útvonalának megadása kötelező,de jelenleg nincs meghatározva.''
Hogy határozzam meg?Főleg hogy nem is mentett fájlt akarok küldeni, hanem aktív munkalapot.
Mivel nem látszik a teljes kód ezért: [link]
[Szerkesztve] -
-
matekmatika
tag
Köszi szépen, így jó, igaz egy kilóméter hosszú lett, de jó
.
ActiveWorkbook.Sheets(''Adatok'').Cells(ActiveWorkbook.Sheets(''Adatok'').Cells(14,3).Value, ActiveWorkbook.Sheets(''Adatok'').Cells(16,5).Value) = ActiveWorkbook.Sheets(''Adatok'').Cells(22,5).Value
[Szerkesztve] -
matekmatika
tag
Köszi szépen, erre gondoltam. A végén az ''új adat'' helyére beraktam a Cells(22, 5)-t vagyis a beviteli mező '' LinkedCell''-jét (hogy hivatott ezt mondani magyarul?). És jól is működik, csak egy baj van vele. Biztos nagyon amatőr kérdés, de ez csak akkor jó a ha a parancsgomb is ezen a munkalapon van. Márpedig nekem egy másik munkalapon van, hogy lehet ezt kiegészíteni úgy hogy amit csinál, azt egy meghatározott (másik) munkalapon tegye.
Köszi szépen. -
matekmatika
tag
Hát nem tudom, és akkor mi lesz a rossz gép adataival, amit törölni kellene. Meg így rohamosan meghízna a táblázat.
Amit végül is szeretnék, abszolut leegyszerűsítve: Adott egy adat egy cellában, ezt az adatot valahogyan be kellene íratni - egy parancsgomb megnyomásával - abba a cellába, amelynek a hivatkozási helyét szintén tartalmazza egy cella.
Az eredeti munkafüzet most benn van a cégnél, de készítettem valami lényegében ahhoz hasonló, persze ez sokkal egyszerűbb. Gép is több van, azok csoportok szerint vannak rendezve, és általában adat is 3 van hozzárendelve minden géphez. De a lényeget jól mutatja ez is.
A főoldalon választókapcsoló segítségével kiválasztom melyik gépről van szó (a kapcsolók linkedCell-jei a gépek munkalapon van. Illetve szintén a főoldalon kiválasztom hogy milyen alkatrészének a milyét szeretném megváltoztatni.(leltáriszám, vagy gyáriszám). A gépek munkalapon, ezek adatok alapján az E20-as cellába meghatározom azt a cellahivatkozást, ahol az adatot módosítani szeretném.
Azt az adatot amire módositani szeretném a cella tartalmát a főlapon egy beviteli mezőbe írtam, LinkedCell-jét az egyszerűség kedvéért szintén a gépek munkalapra raktam a kikeresett cellahivatkozás alá.
Szóval ott van, adott a beírni való adat, és egy hivatkozás ahová való lenne. De hogyan?
[link]
hopp a parancsgombot lehagytam, de a lényeg látható a táblázaton igy is
[Szerkesztve] -
matekmatika
tag
Bátor? Nem én csináltam, hanem a makrorögzítő
Szóval, megpróbálom még érthetőbben. Van egy munkalap amelyen gépek gyári számai, leltári számai, stb. szerepelnek. Az elrendezés most lényegtelen.Illetve van egy másik munkalap, ami végül is a munkafüzet főlapja. Itt tudom kiválasztani különböző kategóriák szerint a már említett másik munkalap éppen aktuális cellaadatait. (Pl. csak valamelyik géptipus összes darabját, persze a már említett számokkal, vagy egyébb szűrés szerint (pl.adott csarnokban milyen gépek vannak) stb. Ez már kész van és tökéletesen működik. A probléma ott kezdődik, hogy ha valamelyik gép elromlik és le kell cserélni másikra. Ekkor ugye megváltozik az adott helyen levő gép minden adata.
Ezt látszólag egyszerűen meg lehetne oldani mondjuk a ctrl+h (keresés-csere) kombinációval, csak azért nem kivitelezhető, mert több olyan gép is van amelyiknek eredetileg sincs pl. gyári száma. Ezek nálam a táblázatban ''0''-t kaptak. Na mármost ha egy olyan gép kerül a rossz helyére amelyiknek van olyan adata, ami az előtte lévő meghibásodottnak nem volt, akkor ezzel a ctrl+h kombinációval az összes olyan cellát felülírom amelyikben ''0'' volt. Na meg persze kicsit fapados is lenne így csinálni.
Ezt úgy próbálom megoldani, hogy a főlapon választókapcsolókkal, ill. legördülőlista segítségével, létrehozok egy cellahivatkozást, amely pont arra a cellára mutat amelyben az adatot ki szeretném cserélni. Ez is meg van. A példában ez lenne az ''AF2''. Ezenkívűl szintén a főlapon egy beviteli mezőbe kell beírni azt az adatot amelyre ki szeretném cserélni a régit. Ez lehet bonyolultnak tűnik, de csak két kattintás + beírom az adatot. Na itt akadtam el. Adva van a cellahivatkozás is, és az adat is, de nem tudom hogyan íródjon be. Makrorögzítővel vágólapra tettem a cellahivatkozást, átmentem a másik munkalapra, ahol a gépek adatai vannak, a NÉV mezőbe ctrl+v majd ENTER, így kijejöldött a cella amelyiket módosítani szeretném, vissza a főmunkalapra, a beviteli mezőbe beírt adatot kijelöl, majd ctrl+c, vissza a géplistás munkalapra, ctrl+v és ENTER.
A parnacsgombhoz pedig hozzáadtam ezt az elkészített makrót. Ezt copyztam be az előző hozzászólásomban. De nem jó mert hibaüzenettel leáll.
Remélem így már kicsit érthetőbb voltam -
alexnowan
aktív tag
OKok!
Igazságod van lusta voltam és rövidítettem....
Szóval a ''tábla'' amiben linket kell cserélni valójában 15 sheet és sheetenként kb 30 cella van. Nem akartam túlragozni, azt gondoltam majd megoldom hogy minden sheeten működjön.....(tényleg lehet egyáltalán másképp, úgyértem hogy csak pl 2 sheet módosuljon a 15-ből....á ezt biztos nem, de nem is kell.)
Szóval mindenféleképp a gombos megoldás kéne.
Meg csini is -
picsu
csendes tag
Lapa!
Én is ebből indultam ki, hogy minden megfelel a programban csak az irányt kellene megváltoztatni. Nem ki hanem befele mennének az adatok....
Namost az, hogy most fordított a (forras) meg fordított a (cel) az nem jelenthet problémát?Hagyhatom így ahogy van? Vagy ahogy írtad fordítva legyen az egyenletben?
Workbooks(forras).Sheets(1).Cells(1, 1) = ''ezaaegyescella'' --> ez az ezaaegyescella mit takar?
Akkor írhatom így?:
Workbooks(forras).Sheets(1).Cells(1, 1) = Workbooks(cel).Sheets(1).Cells(1, 1)
Hmmmm?
Köszönöm segítséged előre is....
Üdv.Picsu -
lapa
veterán
no én meg a vaktyúk:
Sub getdate()
Dim cn As ADODB.Connection
Dim sql As String
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
cn.Open ''DSN=dsn;UID=juzer;PWD=pass''
Set rs = New Recordset
sql = ''SELECT mezo FROM tabla WHERE pk = 'PK'''
rs.Open sql, cn
If rs.EOF = False Then
MsgBox rs(0)
Else
MsgBox ''nemvan ilyen pk''
End If
cn.Close
Set cn = Nothing
End Sub
ja, be kell pippantani hozzá a vba tools --> references --> ms activex data objects 2.5-öt.
[Szerkesztve] -
kraftxld
félisten
Köszi, hogy foglalkozol a dologgal
Közben kicsit pontosabban rájöttem a hibára.
Tehát nem az a gondom, hogy a makrók nem működnek, hanem ha kirakom a makrókat mint nyomógombok mindig az eredeti file-ra hivatkozik.
Tehát ha van mondjuk c:\x\alap606.xls, és ezt megnyitva megcsinálom az összes makró nyomógombját, a file-t áthelyezve, átnevezve a gombok nem működnek. Ezt hogyan lehetne megoldani? -
picsu
csendes tag
Lapa!
Tökéletes lett!!
Működik a szummázás! Nagyon örülök...
Mostmár csak az nem megy, hogy az 5. sorban kezdje a beírást.
Ez van:
Workbooks(cel).Sheets(1).Cells(fajllistaindex, 1) = Workbooks(forras).Sheets(1).Cells(3, 2)
Ezt írtam helyette:
Workbooks(cel).Sheets(1).Cells(5,1) = Workbooks(forras).Sheets(1).Cells(3, 2)
De nem müxik.. -
picsu
csendes tag
Lapa!
Na ez az elhelyezéses dolgo menni fog úgy néz ki...
Viszont ez a szummázós dolgog nagyon kellene...Sajnos..
Kreáltam valamit de nem megy...megnéznéd?
Workbooks(cel).Sheets(1).Cells(fajllistaindex, 3) = ''=SUM (Workbooks(forras).Sheets(1)(R3C1116C11)''
a bólógatós az : R
[Szerkesztve] -
picsu
csendes tag
Lapa!
Felraktam egy új excelt és most működik!!
Azt írja:
Köszönjük, hogy minket választott!
Készen vagyunk. Összesen x fájlból importáltunk adatokat
Szupeeerrrr...
Na megvannak az adatok...
Egy utolsó kérdés! Ha olyan kellene, hogy egy szummát hozzon át, az is megy?
Pl: A1-A12-ig szumma..
[Szerkesztve] -
picsu
csendes tag
Szia Lapa!
Nagyon rendes vagy, hogy próbáltál segíteni....
Elvileg ha adatot akarok átvinni külső excel táblából az megy, csak az a baj, hogy mindet meg kell nyitogatni....
Ezzel van bajom ezzel a külső táblából való adatkivétellel...
Na még azért próbálkozom....
Valaki esetleg mégnem jutott messzebb.....
Utálok segítséget kérni...de most nagyon kellene -
lapa
veterán
végülis baj nem lehet belőle...
1.) A második legnagyobb
Töltse fel az A1: B15 tartományt véletlenszámokkal
( 0 <= r <= 100 ). Készítsen makrót amely megkeresi és megadja
a második legnagyobb szám értékét. A keresés eredményét a
D1-es cellában piros színnel jelenítse meg!
itt a tábla [link]. ha alt+f11-et nyomsz kijönnek az okosabbnál okosabb makrók. ha alaposan végigolvasod a kommenteket hasznos lehet. nekem kicsit elfáradt már a végére az excel, dobott ilyeneket, hogy [link] de ez van. a másikat majd megnézem valamikor, de inkább dobd be ide mert nemtom mennyi időm lesz.
[Szerkesztve]
[Szerkesztve] -
gErYoN
tag
-
jeges
senior tag
ha string array-ed van, nem jó összehasonlításkor az eval/val függvényeket használni?
egyébként tömbkezelés téma 4-5 hsz-szel följebb...
szerk: egész pontosan #51-ben volt szó róla
(vagy nagyon félreértettelek volna?)
szerk2: hü vazze...ez a hsz mán vagy 2 hetesazóta bizonyára megoldódott a probléma
[Szerkesztve] -
jeges
senior tag
''no csak összehozok egy értelmes kérdést. szeretnék egy kódot sokszor futtani, melynek egy változót kéne átadnom, ami alapján az eredményt adná''
nos, a fenti definíció a ''függvény'' (function) definíciója. a bemeneti változó(k)ból kiszámolja a kimeneti változó(ka)t. a sub épp abban különbözik, hogy nem szükségesek változók, ''csak'' csinál valamit. (legalábbi lényegében, pongyolán fogalmazva)
pl. a #48:
Sub masik(x, y As Long)
MsgBox ''x: '' & x
y = x + 1
End Sub
helyett:
function masik(x)
masik=x+1
end function
a message box-ot meg masik(x) értékétől függően átpakolod az egyik sub-ba
pl.
sub egyik
...
if masik(3)=0 then msgbox ''x: '' & x
...
end sub
[Szerkesztve] -
jeges
senior tag
most látom csak a témát.
alapvetően az ilyen konverterhez én nem sub-ot, hanem function-t használtam. egyszerű, viszonylag gyors, csak a hibakezelést kell jól megoldani...
a tömbkezelési kérdéshez: nem egyszerűbb pl. cellaértékekben tárolni a bemeneti számsort? excelben ez szokott lenni a ''sztenderd''. pl:
for i=1 to 10
cells(2, i)=cells(1, i)/2
next
ha tömböt akarsz definiálni:
dim tomb(10)
for i=1 to 10
tomb(i)=cells(1, i)
cells(2, i)=tomb(i)/2
next
de excelben általában nehézkesebb a tömbök használata, hiszen ezért vannak a cellák, ráadásul a tömb hossza kötött (legalábbis a definiálás után), a cellák száma meg ''csak'' maximált. -
lapa
veterán
ilyet is találtam hozzá de még mindig nemtom hogyan kapható vissza vagy visszakapható-e egyáltalán. Bővebben: link
-
Gh0sT
addikt
Nézegettem a súgót. Biztos, hogy ez megoldható?
Nem tudok nagyon angolul, és a makrókhoz sem értek, de nézd csak ezt meg:
''procedure
A named sequence of statements executed as a unit. For example, Function, Property, and Sub are types of procedures. A procedure name is always defined at module level. All executable code must be contained in a procedure. Procedures can't be nested within other procedures.''
Hiányos tudásommal én arra következtetek, hogy egymásból nem futtathatók... Bár ez meg annyira abszurd, hogy szerintem hülyeséget mondtam... -
update
csendes tag
Sziasztok!
Engem Excelben készített stratégiai játékok érdekelnének!
Illetve az, hogy egy ilyet hogyan lehetne csinálni! Lehetséges-e egyáltalán!
Már belefogtam egy ilyenbe, de VBA és makrókból kicsit gyengus vagyok...
Szóval, ha valaki készített ilyett, az plz küldje el nekem, érdekelne pár megoldás!
Ha excelben nem kivitelezhető, akkor hol lehetne egyszerűen összerakni egy ilyen játékot hiányos programozási ismeretekkel...
Olyasmire gondolok, mint a Hódító, Lemuria stb... csak nem on-line, hanem off-line...
KÖSZI!!!
Aktív témák
- LG 34GS95UE - 34" Ívelt OLED / QHD 2K / 240Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- Xbox Series X 1 TB + kontroller 6 hó garancia, számlával!
- HIBÁTLAN iPhone 12 Pro Max 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3109
- iKing.Hu - Nubia Z70 Ultra 5G Black Teljes kijelzős zászlóshajó, AI-erejű teljesítmény
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest