- Fórumok
- OS, alkalmazások
- Microsoft Excel topic
- (kiemelt téma)
- Megújult mobilos felület, fórumos ráncfelvarrás a PROHARDVER! lapcsaládon
- Eladhatatlannak ítélt CPU-k eladásával javult az Intel node-ok kihozatala
- Az AI átformálja a Peugeot modelljeit is
- Ráműthető a Linux PlayStation 5-re, de csak egy boot erejéig
- Mindenféle környezeti behatásnak ellenállnak az ASUS új TUF tápjai
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Milyen TV-t vegyek?
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Melyik tápegységet vegyem?
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- OLED monitor topic
- NVIDIA® driverek topikja
- Billentyűzet gondom van
- OLED TV topic
- Milyen asztali médialejátszót?
-
6000 - 5901
54978 - 54001 54000 - 52001 52000 - 50001 50000 - 48001 48000 - 46001 46000 - 44001 44000 - 42001 42000 - 40001 40000 - 38001 38000 - 36001 36000 - 34001 34000 - 32001 32000 - 30001 30000 - 28001 28000 - 26001 26000 - 24001 24000 - 22001 22000 - 20001 20000 - 18001 18000 - 16001 16000 - 14001 14000 - 12001 12000 - 10001 10000 - 8001 8000 - 7901 7900 - 7801 7800 - 7701 7700 - 7601 7600 - 7501 7500 - 7401 7400 - 7301 7300 - 7201 7200 - 7101 7100 - 7001 7000 - 6901 6900 - 6801 6800 - 6701 6700 - 6601 6600 - 6501 6500 - 6401 6400 - 6301 6300 - 6201 6200 - 6101 6100 - 6001 6000 - 5901 5900 - 5801 5800 - 5701 5700 - 5601 5600 - 5501 5500 - 5401 5400 - 5301 5300 - 5201 5200 - 5101 5100 - 5001 5000 - 4901 4900 - 4801 4800 - 4701 4700 - 4601 4600 - 4501 4500 - 4401 4400 - 4301 4300 - 4201 4200 - 4101 4100 - 4001 4000 - 2001 2000 - 1
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2023-11-13 08:31 Téma összefoglaló
Új hozzászólás Aktív témák
-
Delila_1
veterán
-
Delila_1
veterán
-
ulrik19
tag
Az activeworkbook azért nem biztos, hogy jó, mert a makró nem abban a file-ban fut, aminek a dátuma kell, és nem biztos, hogy a dátum lekérdezésekor éppen az az aktív. Persze lehet úgy alakítani a kódot, de akkor már egyszerűbb egy direkthivatkozás: workbooks("filenév.xls")
-
ulrik19
tag
Hú, nem tudom, jól értem-e amire gondoltál. De szerintem az alap excel file-hoz nem tud "hozzányúlni", mert egy totál független programból jönnek szerintem az adatok (adat exportálás excel formátumban menüpontszerűségből), vagyis nemhogy makrót, de még csak képletet, értéket (totál semmit) nem tud beszúrni.
Az sem kizárt, hogy igazából egy html formátum jön ki xls kiterjesztéssel

(egyébként a Date() és Now() mindig az adatkiolvasás időpontját és/vagy napját mutatná, nem a file létrejöttét. vagyis azt hiszem)
-
Delila_1
veterán
-
ulrik19
tag
-
Delila_1
veterán
Sub dátum()
Workbooks("Munkafüzet1").Sheets("Munka1").Range("A1") = Date
End SubA Munkafüzet1 helyett beírod az állandó füzeted nevét, ami a makrót tartalmazza, és átírod a Munka1 lap nevét, no meg az A1 cellát is a megfelelőre.
Ha az idő is kell a dátumhoz, a Date helyére Now() kerüljön.Ui.: Mivel a keletkezési ideje kell, a Now() az igazi. Azt kell megoldani, hogy a másik füzet megnyitásakor hajtódjon végre.
-
Pulsar
veterán
Húúha.. kicsit félre értettétek a feladatot.
Amit szeretnék, hogy van egy file, amit egy makró megnyit (xls az is). Ezt a file-t bizonyos indőnként egy szerver generálja. a neve mindig ugyanaz, felülíródik. amikor ebből a file-ból kiolvasom az adatokat (sima egyszerű kijelölés másolás) akkor kellene még ennek a file-nak az keletkezési ideje, egy cellába, abba a file-ba ahonnan a makrót futtatom
remélem így értitek.
-
Delila_1
veterán
Hogy mind az első, mind az összes többi mentés korrekt legyen:
Sub MentésElőzőnévÉsDátumNévvel()
Dim FN, utvonal
utvonal = "C:\"
If Len(ActiveWorkbook.Name) > 15 Then
FN = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 15)
Else
FN = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)
End If
FN = FN & "_" & Date
ActiveWorkbook.SaveAs Filename:=utvonal & FN & "xls"
End SubEz a 2007-nél régebbi verziókra vonatkozik, 2007-nél a levonás 16, és 5, a 4 jegyű kiterjesztés miatt.
-
Delila_1
veterán
-
ulrik19
tag
húha, egyre inkább nem értem

ha mindig az abszolút eredeti file-ból futtatja ezt a kódot, akkor mindig ugyanazon a file-néven fogja elmenteni (mert ugye a létrehozási dátum nem változik)
ha mindig az újonnan létrejött file-ból futtatja, akkor meg egyre hosszabb filenév lesz, mert mindig hozzáfűzi a dátumot.
-
Delila_1
veterán
Erre az esetre
Sub MentésElőzőnévÉsMaidátumNévvel()
Dim FN, utvonal
utvonal = "C:\"
FN = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)
FN = FN & "_" & Date
ActiveWorkbook.SaveAs Filename:=utvonal & FN & "xls"
End SubBár ezzel az a baj, hogy az első ilyen mentés után a fájlnév tartalmazza a mentés dátumát, a következő mentésnél 2, majd 3, végül n db dátum lesz a névben. Hacsak az
FN = Left(...) sorban le nem vonjuk minden alkalommal az előző dátumot is. -
Delila_1
veterán
... és hogy a füzet előző neve se maradjon ki:
Sub MentésElőzőnévÉsDátumNévvel()
Dim FN, utvonal
utvonal = "C:\"
FN = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)
FN = FN & "_" & Left(ActiveWorkbook.BuiltinDocumentProperties("Creation date").Value, 11)
ActiveWorkbook.SaveAs Filename:=utvonal & FN & "xls"
End Sub -
ulrik19
tag
Persze-persze, az világos. Az logika nem világos nekem, hogy mire fog menni az így kialakított filenevekkel. (mármint azért, mert ugye egy adott file neve annak a file-nak a létrehozási dátuma lesz, amiből létrehozták. Mert ha mindig az aktuális dátum idő lenne benne, azt még érteném
) -
Delila_1
veterán
-
ulrik19
tag
-
Delila_1
veterán
-
VANESSZA1
őstag
-
ulrik19
tag
és hogy teljes legyen a kép, ezeket lehet lekérni

Title
Subject
Author
Keywords
Comments
Template
Last Author
Revision Number
Application Name
Last Print Date
Creation Date
Last Save Time
Total Editing Time
Number of Pages
Number of Words
Number of Characters
Security
Category
Format
Manager
Company
Number of Bytes
Number of Lines
Number of Paragraphs
Number of Slides
Number of Notes
Number of Hidden Slides
Number of Multimedia Clips
Hyperlink Base
Number of Characters (with spaces)(word-del együtt elvileg)
-
ulrik19
tag
Lehet: Beszúrás/objektum/Létrehozás fileból...
ott kiválasztod a file-t, és azt is, hogy csatolja (ha módosítod a word doksit, akkor az excelben is a módosított fog mindig látszódni), vagy ágyazza be (ilyenkor a beillesztéskori állapot megmarad, hiába írod át a .doc-ot később) -
ulrik19
tag
-
VANESSZA1
őstag
Az után érdeklődnék, hogy Excel fájl-ba be lehet-e illeszteni egy Word fájl-ban található adatot vagy magát az egész Word doksit?
-
Pulsar
veterán
Milyen szerények vagyrok, holott NAGY MESTEREK vagytok!

Még egy kérdés:
Segítettetek abban, hogy hogyan tudok a file nevére hivatkozni
excel_filename = ThisWorkbook.NameUgyanígy van mód a file create time-jára is hivatkozni?
-
Delila_1
veterán
-
ulrik19
tag
-
Delila_1
veterán
-
ulrik19
tag
-
Delila_1
veterán
-
ulrik19
tag
Még egy kis szőrözés
(bocsi érte)1) elegendő lenne így is:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If CheckBox1.Value Then
masolas_adat
End If
reogitesreceiving
reogitesvisual
reogitesquicktest
reogitesfct
Application.ScreenUpdating = True
End Sub2) de ha mégis szükséges az application.run, akkor nem muszáj zárójelet használni az argumentumnál, mert nincs visszatérési érték. (de ez már tényleg csak szőrszálhasogatás
) -
Delila_1
veterán
Még egy apróság:
Ha tabulátorokkal tagolod a makrót, sokkal áttekinthetőbb lesz, az esetleges hibákat is könnyebb megtalálni benne. Érdemes megjegyzéseket beírni az egyes sorokhoz a későbbi módosítás megkönnyítéséhez. Valahogy így:Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If CheckBox1.Value = True Then
Application.Run ("masolas_adat")
Application.Run ("reogitesreceiving")
Application.Run ("reogitesvisual")
Application.Run ("reogitesquicktest")
Application.Run ("reogitesfct")
Else
'Application.Run ("masolas_adat") Nem kell, ha a CheckBox1 jelöletlen
Application.Run ("reogitesreceiving")
Application.Run ("reogitesvisual")
Application.Run ("reogitesquicktest")
Application.Run ("reogitesfct")
End If
Application.ScreenUpdating = True
End Sub -
Delila_1
veterán
-
Delila_1
veterán
Az Application.ScreenUpdating=False sort még az If elé tenném (mert az nem függ a CheckBox állásától), az End Sub előtt pedig feltétlenül állítsd vissza True-ra. Másképp a makró futása után letiltva marad a képernyő frissítése, hacsak az utoljára futtatott makró nem a frissítés visszaállításával végződik. Mindenesetre elegánsabb, ha ott állítod vissza, ahol letiltottad.
Az innen futtatott makrókban nem kell külön tiltani, ill. engedélyezni. -
Pulsar
veterán
-
Pulsar
veterán
van nyomógombom

Tát ha így jó lenne:
Private Sub CommandButton1_Click()
If CheckBox1.Value = True Then
Application.ScreenUpdating = False
Application.Run ("masolas_adat")
Application.Run ("reogitesreceiving")
Application.Run ("reogitesvisual")
Application.Run ("reogitesquicktest")
Application.Run ("reogitesfct")
Else
Application.ScreenUpdating = False
' Application.Run ("masolas_adat") <--- vagy kitörlöm ezt a sor, mind1, csak így látványosabb
Application.Run ("reogitesreceiving")
Application.Run ("reogitesvisual")
Application.Run ("reogitesquicktest")
Application.Run ("reogitesfct")
End If
End Sub -
Delila_1
veterán
A CheckBox-ok segítségével kiválasztod, hogy mit akarsz tenni. Tegyél be egy gombot, és az hajtsa végre a feladatot a CheckBox-ok állásának megfelelően.
A primitív példa a CommandButton1 lenyomására az A1-be beírja a CheckBox1 állapotát.
A makrót a vezérlőket tartalmazó laphoz kell rendelni.Private Sub CommandButton1_Click()
If CheckBox1.Value = True Then
Cells(1) = "BE"
Else
Cells(1) = "KI"
End If
End Sub -
Pulsar
veterán
-
Delila_1
veterán
-
Delila_1
veterán
-
Pulsar
veterán
Sziasztok!
Chek boxot szeretnék alkalmazni, csak nem tudom, hogy hogyan.
A következőt szeretném megoldai:Van egy csomó hivatkozásom:
Sub futtat()
Application.ScreenUpdating = False
Application.Run ("masolas_adat")
Application.Run ("reogitesreceiving")
Application.Run ("reogitesvisual")
Application.Run ("reogitesquicktest")
Application.Run ("reogitesfct")Azt szeretném, hogyha a check box be van jelölve, akkor ne történjen semmi, de ha nincs bepipálva, akkor a Application.Run ("masolas_adat") nélkül fusson le a cucc.
Ilyen megoldható? -
Fire/SOUL/CD
félisten
-
Fire/SOUL/CD
félisten
-
Cuci3
tag
Hello-bello!
Tud valaki olyan honlapot, oldalt, ahonnan példákon keresztül jól el lehet sajátítani a VBA programozását? Olyan szájbarágósat, ami mondjuk nem a redimmel kezdi.
Amúgy én is inkább könyvet mondanék, de haverom még 6 hónapig Japánban van, és ő sem tudja elolvasni azokat a kriksz-krakszokat.
A honlap lehet magyar vagy angol. Köszi! -
Pulsar
veterán
-
Delila_1
veterán
-
Pulsar
veterán
Szia!
Működik, köszönöm!

Application.CutCopyMode = True 'Biztos kel ez a sor? Nekem tök felelslegesnek tűnik.
Hát szerintem igen. Mert elötte kikapcsolom a vágólapot (így küszöbölöm ki a "nagy méretű adat van a vágólapon, biztos hogy bezárja a file-t" ablakot. Vissza meg azért kapcsolom, mert ha még egyszer futtatom akkor is lefusson... vagy ez hülyeség?
-
Cuci3
tag
Annyi a gon, hogy nem a FullName-et kell használnod, csak a Name-et. FullName az elérési útvonalat is tartalmazza (c:\blblbla.xls), míg a Name csak a fájl nevét és kiterjesztését (blablabla.xls).
Lentebb az átírt kód, kommentált kód. Bocs, de az elérési utat, fájlneveket nem volt kedvem visszaírni.
Option Explicit 'deklarálás nélkül nem lehet változót használni
Sub masolas_adat()
Dim excel_filename, filename2 As String
excel_filename = ThisWorkbook.Name
Workbooks.Open Filename:="E:\Munkafüzet2.xls"
filename2 = ActiveWorkbook.Name
'én azért ide tennék valami kiválasztást, hátha megnyitás után rossz sheet az aktív
Columns("A:G").Select
Selection.Copy
Windows(excel_filename).Activate
Sheets("Munka2").Activate
'Workbooks(excel_filename).Sheets("Munka2").Activate
'én jobban szeretem a Workbooks(excel_filename) hivatkozást, de mind1
Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Windows(filename2).Activate
'vagy Workbooks(filename2).Activate
ActiveWindow.Close
Application.CutCopyMode = True 'Biztos kel ez a sor? Nekem tök felelslegesnek tűnik.
End Sub -
Pulsar
veterán
szóval most így néz ki a makró, de nem fut le. Mint bénáztam el?
Sub masolas_adat()
Excel_Filename = ThisWorkbook.FullName
Workbooks.Open FileName:="C:\Production_Daily.xls"
Columns("A:G").Select
Selection.Copy
Windows(Excel_Filename).Activate
Sheets("IDE_MASOLD").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Windows("Production_Daily.xls").Activate
ActiveWindow.Close
Application.CutCopyMode = True
End Sub -
Fire/SOUL/CD
félisten
Hali!
Excel_Filename = "d:\munkafüzet1.xlsx"
Workbooks.Open filename:=Excel_Filenamevagy akkor
Excel_Filename = ThisWorkbook.FullName
Aztán itt lefut a makró többi része, és az Excel_Filename-be megkapod a fájlnevet, ezzel meg létrehozhatsz egy munkalapot pl így
Sheets.Add.Name = Excel_Filename,
aztán meg így hivatkozol rá pl Worksheets(Excel_Filename).ActivateRemélem erre gondoltál.
Fire.
-
Ramius
őstag
-
Pulsar
veterán
hm... bár még nem nagyon értem, de kérdezek...
és hogyna tudok erre hivatkozni később?Illetve az excel files nevet te adod meg itt: ???
'értékadás
Excel_Filename = "c:\a\b\abcdefg.xlsx"Mert nekem az nem jó...
nekem arra van szükségem, hogy amikor lefuttatom a makrót akkor nézze meg mi a files neve, mint ez:Function FileOrFolderName(InputString As String, _
ReturnFileName As Boolean) As String
' returns the foldername without the last pathseparator or the filename
Dim i As Integer, FolderName As String, FileName As String
i = 0
While InStr(i + 1, InputString, Application.PathSeparator) > 0
i = InStr(i + 1, InputString, Application.PathSeparator)
Wend
If i = 0 Then
FolderName = CurDir
Else
FolderName = Left(InputString, i - 1)
End If
FileName = Right(InputString, Len(InputString) - i)
If ReturnFileName Then
FileOrFolderName = FileName
Else
FileOrFolderName = FolderName
End If
End Function
Sub TestFileOrFolderName()
MsgBox FileOrFolderName(ThisWorkbook.FullName, False), , _
"This Workbook Foldername:"
MsgBox FileOrFolderName(ThisWorkbook.FullName, True), , _
"This Workbook Filename:"
End Subés tök jó is, csak nem tudom hogyan hivatkozzak a files névre a Windows("Book1").Activate Book1 helyett!
-
Pulsar
veterán
-
Fire/SOUL/CD
félisten
Hali!
Ahhoz, hogy ezt megtehesd, az excel tábla útvonalából ki kell emelni a fájlnevet például. Az alábbi makró ezt teszi. (a fájl kiterjesztést törli) Aztán, hogy a kapott névvel új munkalapot hozol-e létre, vagy egy meglévőt átnevezel, az már rajtad áll.
Private Sub CommandButton1_Click()
Dim Excel_Filename As String
Dim Point As String
Dim BackSlash As String
Dim BackSlashPos As Integer
'értékadás
Excel_Filename = "c:\a\b\abcdefg.xlsx"
BackSlash = "\"
Point = "."
'található-e benne visszaper jel
BackSlashPos = InStr(1, Excel_Filename, BackSlash, vbTextCompare)
'jobbról balra megkeressük az első pontot(.), hisz addig tart a fájl kiterjesztése
'majd kitöröljük
For i = Len(Excel_Filename) To 1 Step -1
c = Mid(Excel_Filename, i, 1)
If c = Point Then
Exit For
End If
Next
Excel_Filename = Left(Excel_Filename, Len(Excel_Filename) - (Len(Excel_Filename) - i + 1))
'ha korábban nem találtunk benne visszaper jelet, akkor az azt jelenti
'hogy nem tartalmazott útvonalat, csak egy sima fájlnév, ez esetben nem kell
'megkeresni az első visszaperjelet ismét jobbról balra. (azaz magát a fájl nevét)
If BackSlashPos <> 0 Then
For i = Len(Excel_Filename) To 1 Step -1
c = Mid(Excel_Filename, i, 1)
If c = BackSlash Then
Exit For
End If
Next
Excel_Filename = Mid(Excel_Filename, i + 1, (Len(Excel_Filename) - i + 1))
End If
MsgBox (Excel_Filename)
End SubFire.
-
Ramius
őstag
Üdv. Segítséget szeretnék kérni.
A problémám a következő: egy munkafüzeten belül van több munkalapom ugyanazzal a sablonnal. Minden lapon ugyanabban a cellába olyan képlet kellene ami az előző lap egy adott cellájának értékét, és az aktuális lap egy adott cellájának értékét összeadja. Az értékeket szintén képlet számolja ki. Meg lehet ezt oldani valahogy? -
Pulsar
veterán
ha esetleg nem érthető amire gondolok...

ha mondjuk a files neve konyv.xls akkor a 4. sorban a Windows("konyv").Activate legyen, de ha lementem a file-t konyvek névre akkor Windows("konyvek").Activate legyen.
Gondolom ezt valami változóval lehet megcsinálni, ahol a változó értéke a files neve kiterjesztés nélkül. Csak azt nem tudom azt hogyan csinálom meg
-
Pulsar
veterán
Sziasztok!
van egy ilyen egyszerű kódom.
Workbooks.Open Filename:="R:\Dell\Reporting\Production_Daily.xls"
Columns("A:G").Select
Selection.Copy
Windows("Book1").Activate
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("L13").Select
Windows("Production_Daily.xls").Activate
ActiveWindow.Closeahol azt szeretném elérni, hogy a Windows("Book1").Activate részben a Book1 ne Book1 legyen hanem minddig az ahonnan futtatom a macrot. Tehát a filest mindig el van mentve különböző néven, és a gondom az, hogy nem tudom hogy hivatkozzak rá, ha mindig más a neve.
-
sonar
addikt
Köszi müxik!
Köszi ulrik19 -
Cuci3
tag
Csak annyit fűznék hozzá, hogy a CSE nem csak akkor kell, mikor a végösszegre vagyok kíváncsi. Például mátrixszorzásnál vagy tömbszorzásnál (MSZORZAT), ha nem akarok vacakolni képlettel, hanem függvénnyel akarom megoldani.
Legyen egy 2x3-as és egy 3x4-es mátrixom, ebben a sorrendben berakom az MSZORZAT-ba, majd az eredményt kijelölöm úgy, hogy egy 2x4-es mátrix/tömb első cellája legyen, F2+CSE, és fel van töltve az eredménymátrix.
Tudom, hogy ennél a bugyuta példánál jobb lenne a sima képlet.
-
ulrik19
tag
hmmm, én nem ismertem ezt a mókát, de jópofa dolog.
arról van szó, amikor egyszerre akarok sok sorban lévő adattal dolgozni, és kell mondjuk egy végösszeg (ami mondjuk összegez egy sorban néhány cellát, majd ezeket kell soronként összegezni).
pl. vannak termékek egymás alatt, az oszlopokban a heti forgalmak.
kell a totál árbevétel. akkor pl. csinálok minden sor végén egy összesítést, majd ezeket az utolsó sorban összegzem.
de, megy ez a CSE (cltr-shift-enter) módon, hogy az adatokat tömbként kezelem.
mondjuk így:
A oszlop: terméknevek
B oszlop: 1. hét
C oszlop: 2. hétösszegző képlet: =SZUM(B1:B100+C1:C100)
ha ennek a végén entert ütsz, hibát jelez, de ha CSE-t,
akkor ott az eredmény.
a szum() helyett lehet bármilyen összegző függvény
(átlag, szórás stb),
az argumentum lehet összetett is,
pl. =SZUM(B1:B100+C1:C100*D1:D100)
itt a B-hez hozzáadatom a C és a D szorzatát.
tovább lehet ezt bolondítani egy HA()-val is
pl.=SZUM(HA(A1:A100="bélyeg";B1:B100+C1:C100*D1:D100))
amikor csak a bélyeg-eket összesíti.
egyébként képletnél {=...} jelenik meg, ebből látszik,
hogy tömbről van szó. -
Delila_1
veterán
-
ArchElf
addikt
-
Cuci3
tag
-
Delila_1
veterán
Azért írtam.

-
kételkedem
addikt
-
Delila_1
veterán
Úgy gondolom, hogy mindegyik füzetben minden lapra tennék egy oszlopot (ha nincs), ami tartalmazza a hónap nevét. Azt biztosan tudod, hogy a lapokat együttesen kijelölve egyszerre mindre beviheted az azonos adatokat. Jelen esetben egyszerre szúrhatsz be egy oszlopot, és a hónap oszlop fejlécét. Az egyes lapokon szintén kijelölöd az oszlopot (ameddig kell), az aktuális cellába beírod a hónap nevét, majd Ctrl+Enterrel a teljes oszlop minden cellájába egyszerre viszed be.
Az összevont kimutatás egy-egy füzetben ilyen alapon 12 sort fog tartalmazni, ehhez az kell, hogy a dátum oszlop legyen az első a lapokon.
A kimutatásba Ne vedd bele az összegző sort!
Az egyes lapokon a táblázatod bármelyik celláján állva a Ctrl+t kijelöli a teljes táblát, ez is gyorsíthatja a munkát, mikor az egyes lapokat hozzáadod a kimutatáshoz. Vigyázz, a kimutatásba Ne vedd bele az összegző sort! -
kételkedem
addikt
-
Delila_1
veterán
Egy-egy füzeben az összes hónapról tudsz egy közös kimutatást készíteni [2003-as verzióban Adatok/Kimutatás vagy kimutatásdiagram/Több tartomány (összesítés)].
Ezeket összegyűjtöd 1 füzetben. Az is jó, ha az összesítő füzetbe értékként másolod be, és újabb közös kimutatást csinálsz belőlük.Milyen egyszerű leírni!

-
kételkedem
addikt
Szia!
Adott 5 üzlet. Az öt üzlet forgalmi adatait rendre a bolt1, bolt2...bolt5 fájlok tartalmazzák kb 6 évre visszamenőleg. Az egyes munkafuzetekben külön munkafüzet lapon vannak a hónapok. A táblázat sorait a hónap napjai adják, az oszlopokban a beszerzés, eladás, göngyöleg, selejt, forgalom stb vannak. Az oszlopok alján összeadva az egész hónap.
Kellett csinálnom egy éves összesítőt az elmult 3 évről évenkénti bontásban. A táblázatban a sorokat a boltok nevei adják, az oszlopokban pl az éves összes selejt van.
Manuálisan meg tudtam oldani, hogy adja össze az adott bolt havonkénti selejtjét, de ez nem igazán járható út, hiszen 3 év az 36 hónap, 5 bolt 10 forgalmi adatánál rengeteget kell kattintgatni.Makróval, vagy függvénnyel kellene megcsinálni, de sajnos pl makrót sosem írtam még és a függvényeknek is csak tördékét ismerem.
Remélem érthető amit összezagyváltam.

-
Delila_1
veterán
-
szavapart
csendes tag
-
Delila_1
veterán
Az A1 tartalmazza a dátumot és az időt.
A függvény, ami ezekből kiemeli az időt: =IDŐ(ÓRA(A1);PERC(A1);0)Mondjuk, hogy az A2-ben is van egy dátum és idő. A fenti függvény a B1-ben és a B2-ben kiemeli ezekből az időket.
Egy cellában tudsz számolni velük, például: =PERC(B2-B1)
Vagy: =IDŐ(ÓRA(B2-B1);PERC(B2-B1);0) -
ulrik19
tag
-
szavapart
csendes tag
Sziasztok!
Lenne nekem is egy kérdésem.
Tehát: Van egy oszlop, amely dátumot és időt tartalmaz ÉÉÉÉ.HH.NN ÓÓ
P formátumban, de csak az óra, percre lenne szükségem. Levágni (JOBB,BAL) nem sikerült, mert rögtön átalakítja számmá. IDŐ függvény látszólag megteszi, az oszlopban csak az óra perc látszik, de nem kereshető, mert valójában tartalmazza a dátumot is.
Bármi ötletet szívesen látok.
Előre is köszönöm. -
Delila_1
veterán
Ezt csak makróval lehet megoldani szerintem. Míg nem jön jobb megoldás, itt a makró hozzá:
Sub auto_open()
Dim dátum As Date
dátum = Date
Sheets("Munka1").Select
Cells.Find(What:=dátum, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
End SubFontos, hogy auto_open legyen a címe, mert az ilyen nevű makró a füzet behívásakor automatikusan indul.
A Sheets("Munka1").Select sorban a saját lapod nevét írd be. -
Z-Tom-ee
csendes tag
Sziasztok.
SOS szükségem lenne egy kis segítségre 2007-es excelben. Igazából nem tudom, hogyan lehetne rákeresni a problémára, ezért is próbálok itt informálódni. (pár kulcsszót kipróbáltam már, de nem találtam érdemi anyagot)
Egy naptárat kell készítenem, különböző funkciókkal. Ez nem is gond eddig. A hiba ott kezdődik, hogy az aktuális napot ki kell jelölni a teljes évből. Feltételes formázással ez megy is, de azt szeretném megoldani, hogy az excel ugorjon is rá erre a kijelölt cellára. Tehát ha már az év közepén tartunk, és az adott nap már nem látszana - mert olyan hosszú a lista, hogy "kilóg" a képernyőről - akkor is valahogy kerüljön az aktuális nap valahogy a képernyőre. Lehetőleg ne makróval, mert több kolléga gépén is futni fog majd a program, és sok helyen le vannak tiltva ezek a funkciók. (egy tavalyi excelben valahogy ezt megoldották, de nem tudom, hogy, és az még 2003-asban íródott)
Előre is köszönöm a segítséget!T
-
Cuci3
tag
Netes kutatás alapján én is ezt állapítottam meg, úgyhogy maradt a szétvágás.

Azért köszi! -
Fire/SOUL/CD
félisten
-
Cuci3
tag
Úgy érzem "jól" kezdődik az év. VBA-ban utolért a végzet, és ezt a bájos "Proceed too large" üzenettel közölte felém.
A kód széttördelésén kívül van valakinek egyéb megoldási javaslata? Előre is köszi! -
Aprósólyom
addikt
-
Fire/SOUL/CD
félisten
Hali!
Látom ulrik19 kolléga megelőzött, de ha már én is megírtam, akkor be is rakom.
Ez Microsoft ActiveX Data Objects 6.0 Library bővítménnyel és adatkapcsolattal, valamint mysql connector ODBC bővítménnyel megtámogatva van elkészítve. Természetesen kifogástalanul működik. Egy excel_mysql nevű adatbázis, test nevű tábláján megy végig és írja ki sorban a mezőket.Private Sub CommandButton1_Click()
Dim FSCD_SQLConnection As ADODB.Connection
Dim FSCD_Recordset As ADODB.Recordset
Dim FSCD_SQLConnectionString As String
Dim FSCD_SQLCommand As String
Dim FSCD_MYSQL_Table As String
On Error GoTo FSCD_ErrorHandler
FSCD_MYSQL_Table = "test"
FSCD_SQLConnectionString = "Provider=MSDASQL.1;Persist Security Info=True;" & _
"User ID=root;Extended Properties='';DSN=Excel_MySQL_Tutorial;" & _
"UID=root;SERVER=127.0.0.1;DATABASE=excel_mysql;PORT=3306;'';" & _
"Initial Catalog=excel_mysql;Initial Catalog=excel_mysql"
Set FSCD_SQLConnection = New ADODB.Connection
FSCD_SQLConnection.ConnectionString = FSCD_SQLConnectionString
FSCD_SQLConnection.Open
FSCD_SQLCommand = "SELECT * FROM " & FSCD_MYSQL_Table
Set FSCD_Recordset = New ADODB.Recordset
FSCD_Recordset.Open FSCD_SQLCommand, FSCD_SQLConnection
FSCD_Recordset.MoveFirst
While Not FSCD_Recordset.EOF
MsgBox FSCD_Recordset.Fields("mező1").Value
MsgBox FSCD_Recordset.Fields("mező2").Value
FSCD_Recordset.MoveNext
Wend
FSCD_Recordset.Close
FSCD_SQLConnection.Close
Exit Sub
FSCD_ErrorHandler:
MsgBox "Error:" & Err.Description, vbCritical, "Fire/SOUL/CD"
End SubFire.
-
ulrik19
tag
-
ulrik19
tag
Kell hozzá a Microsoft ActiveX Data Objects 2.8 Library (Tools/References).
Értelemszerűen adatbázisnév, felhasználónév és jelszó a ConnectionString-ben. Illetve ugyanitt meg kell adni az adott MySQL ODBC driver-t. (Nálam 5.1, de az adott gépen persze lehet más. Ha rosszat adtok meg, nem találja meg.)
Ebben a példában 3 mezőt ad vissza a lekérdezés, aztán minden visszaadott adatot kinyom az első sheet-re. Profin persze kellene bele hibakezelés stb.
Option Explicit
Public conn As ADODB.Connection
Public rs As Recordset
Public sh1 As Worksheet
Public SQL As String
Public Sub mySQL_kapcsolat()
Dim c As Integer
Set sh1 = Excel.Worksheets(1)
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost; DATABASE=adatbazisnev;UID=anonymus;PWD=; OPTION=3"
conn.Open
SQL = "select * from tbl_tablanev"
rs.CursorLocation = adUseServer
rs.Open SQL, conn
rs.MoveFirst
c = 1
Do Until rs.BOF Or rs.EOF
sh1.Cells(c, 1).Value = rs.Fields(0)
sh1.Cells(c, 2).Value = rs.Fields(1)
sh1.Cells(c, 3).Value = rs.Fields(2)
rs.MoveNext
c = c + 1
If rs.EOF Then
rs.MoveFirst
Exit Sub
End If
Loop
End Sub -
sonar
addikt
-
ulrik19
tag
-
sonar
addikt
Egy excel makróba irt mysql kapcsolódás és egy egyszerű query mintát tud vki becopyzni?
Amit eddig találtam azok nem igazán működnek.
-
Delila_1
veterán
Szívesen, de ha lehet, máskor gyorsabban reagálj!

A formázást nem akarod automatizálni a sok-sok lapon?
-
Aprósólyom
addikt
-
Delila_1
veterán
-
ulrik19
tag
Ti egyről beszéltek egyébként? Mert nekem úgy tűnik, Feltételes formázás vs. Makróikon a "téma". Vagy valamit rosszul olvasok?
-
Fire/SOUL/CD
félisten
Hali!
Nem használok 2003-at, a 2007 megjelenése pillanatától...

Csak érdekelt volna, hogy van-e ilyen lehetőség a 2007-ben, mert még nem találkoztam vele.(igaz, nem is kerestem)
2003-al dolgoztam persze, de teljesen elfelejtettem a menürendszerét, a 2007 új felépítéséből adódóan. Sajnos nem lehet párhuzamot vonni a kettő közt, pl testreszabás menü...
Fire.
-
Delila_1
veterán
A 2003-ban nem találod?
-
Fire/SOUL/CD
félisten
-
Delila_1
veterán
A Testreszabás menü legyen megnyitva. A kérdéses ikonon jobb klikk, Gombkép szerkesztése.
-
Fire/SOUL/CD
félisten
-
Delila_1
veterán
-
Cuci3
tag
-
Delila_1
veterán
Köszönöm, hogy fáradtál vele. Kénytelen leszek a makrók tartalmához nem illő képeket illeszteni az ikonokhoz. (Hordozni nem akarom, csakis a saját gépemen használom a makrókat, a personal.xls-ben vannak)
-
Fire/SOUL/CD
félisten
Hali!
Sajnos ez nem megoldható, kicsit elgondolkodtam és rá is eszméltem.
Hiába készítenél egy saját ikokollekciós feltételes formázást, nem lenne hordozható a munkafüzet, azaz egy másik gépen/excelen nem jelennének meg a saját ikonok, hisz az excel tábla ezt nem menti(magát az ikonok képadatait) csak az indexüket. Szóval ez nem nyert. Olvastam a 2010-esről de nem utal rás semmi, hogy változna a helyzet...
Fire.
-
Delila_1
veterán
Ezzel az a baj, hogy csak a Microsoft ízlésének megfelelő képeket választhatom. Pedig a makróim egyértelműen olyan célokat szolgálnak, amit MS-ék nem nyújtanak nekem.
-
Fire/SOUL/CD
félisten
Szóval a lemeradt link: [link]
Fire.
Új hozzászólás Aktív témák
-
6000 - 5901
54978 - 54001 54000 - 52001 52000 - 50001 50000 - 48001 48000 - 46001 46000 - 44001 44000 - 42001 42000 - 40001 40000 - 38001 38000 - 36001 36000 - 34001 34000 - 32001 32000 - 30001 30000 - 28001 28000 - 26001 26000 - 24001 24000 - 22001 22000 - 20001 20000 - 18001 18000 - 16001 16000 - 14001 14000 - 12001 12000 - 10001 10000 - 8001 8000 - 7901 7900 - 7801 7800 - 7701 7700 - 7601 7600 - 7501 7500 - 7401 7400 - 7301 7300 - 7201 7200 - 7101 7100 - 7001 7000 - 6901 6900 - 6801 6800 - 6701 6700 - 6601 6600 - 6501 6500 - 6401 6400 - 6301 6300 - 6201 6200 - 6101 6100 - 6001 6000 - 5901 5900 - 5801 5800 - 5701 5700 - 5601 5600 - 5501 5500 - 5401 5400 - 5301 5300 - 5201 5200 - 5101 5100 - 5001 5000 - 4901 4900 - 4801 4800 - 4701 4700 - 4601 4600 - 4501 4500 - 4401 4400 - 4301 4300 - 4201 4200 - 4101 4100 - 4001 4000 - 2001 2000 - 1
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Hirdetés
- Új! Razer Iskur - Black gamer szék!
- Sapphire Pulse RX 9070XT új, felbontott // Számla // Garabcia //
- iPhone 13 128GB 89% (1év Garancia)
- Samsung Galaxy S24 Ultra 12/256 GB Titanium Gray 6 hónap Garancia Beszámítás Házhozszállítás
- Azonnali készpénzes nVidia RTX 5000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



(bocsi érte)
Szinte ugyanaz, csak nem ugrik az tartomány első cellájához.



P formátumban, de csak az óra, percre lenne szükségem. Levágni (JOBB,BAL) nem sikerült, mert rögtön átalakítja számmá. IDŐ függvény látszólag megteszi, az oszlopban csak az óra perc látszik, de nem kereshető, mert valójában tartalmazza a dátumot is.

A kód széttördelésén kívül van valakinek egyéb megoldási javaslata? Előre is köszi!

Ez Microsoft ActiveX Data Objects 6.0 Library bővítménnyel és adatkapcsolattal, valamint mysql connector ODBC bővítménnyel megtámogatva van elkészítve. Természetesen kifogástalanul működik. Egy excel_mysql nevű adatbázis, test nevű tábláján megy végig és írja ki sorban a mezőket.

Hálás köszönet a segítésért!
Fferi50
