- laskr99: Újrakezdem a processzor és videókártya szilícium magok fotózását
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- MasterDeeJay: SATA to SAS adapter
- eBay-es kütyük kis pénzért
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- M0ng00se: Hardvert áruhitelre?
- bitpork: Ingatlan eladás
- bitpork: MOD Júni 28- Augusztus 2- szombat jelen állás szerint.
-
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
-
ulrik19
tag
válasz
Delila_1 #5996 üzenetére
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
válasz
Delila_1 #5994 üzenetére
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
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.
-
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
válasz
ulrik19 #5990 üzenetére
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.
-
ulrik19
tag
válasz
Delila_1 #5988 üzenetére
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
válasz
ulrik19 #5987 üzenetére
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
válasz
Delila_1 #5986 üzenetére
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
)
-
ulrik19
tag
válasz
ulrik19 #5980 üzenetére
é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
válasz
VANESSZA1 #5979 üzenetére
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) -
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?
-
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?
-
ulrik19
tag
válasz
Delila_1 #5971 üzenetére
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
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. -
válasz
Delila_1 #5966 üzenetére
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 -
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ó? -
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! -
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 -
válasz
Fire/SOUL/CD #5952 üzenetére
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 -
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.
-
válasz
Fire/SOUL/CD #5948 üzenetére
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!
-
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? -
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 -
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
válasz
Fire/SOUL/CD #5921 üzenetére
Köszi müxik!
Köszi ulrik19 -
Cuci3
tag
válasz
ulrik19 #5942 üzenetére
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
válasz
ArchElf #5940 üzenetére
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
válasz
kételkedem #5937 üzenetére
Azért írtam.
-
Delila_1
veterán
válasz
kételkedem #5935 üzenetére
Ú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! -
Delila_1
veterán
válasz
kételkedem #5933 üzenetére
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
válasz
Delila_1 #5932 üzenetére
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
válasz
szavapart #5928 üzenetére
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) -
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
válasz
Z-Tom-ee #5926 üzenetére
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
válasz
Fire/SOUL/CD #5924 üzenetére
Netes kutatás alapján én is ezt állapítottam meg, úgyhogy maradt a szétvágás.
Azért köszi! -
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!
-
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
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
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
válasz
Aprósólyom #5914 üzenetére
Szívesen, de ha lehet, máskor gyorsabban reagálj!
A formázást nem akarod automatizálni a sok-sok lapon?
-
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?
-
válasz
Delila_1 #5910 üzenetére
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
válasz
Fire/SOUL/CD #5909 üzenetére
A 2003-ban nem találod?
-
-
Delila_1
veterán
válasz
Fire/SOUL/CD #5907 üzenetére
A Testreszabás menü legyen megnyitva. A kérdéses ikonon jobb klikk, Gombkép szerkesztése.
-
-
Delila_1
veterán
válasz
Fire/SOUL/CD #5903 üzenetére
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)
-
válasz
Delila_1 #5902 üzenetére
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
válasz
Fire/SOUL/CD #5901 üzenetére
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.
-
válasz
Fire/SOUL/CD #5899 üzenetére
Szóval a lemeradt link: [link]
Fire.
Új hozzászólás Aktív témák
- TCL LCD és LED TV-k
- A Windows 11 lett az úr az asztali PC-k piacán
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- Építő/felújító topik
- No Man's Sky - Már elérhető a Worlds Part 2 frissítés
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Hamarosan rézhiánytól szenvedhet az egész chipgyártás
- Gumi és felni topik
- Anime filmek és sorozatok
- Digitális Állampolgárság Program DÁP
- További aktív témák...
- Bomba ár! Dell Latitude E5570 Touch - i5-6300U I 8GB I 256SSD I 15,6" FHD I HDMI I CAM I W10 I Gari
- Készpénzes számítógép PC félkonfig alkatrész hardver felvásárlás személyesen / postával korrekt áron
- AKCIÓ! MSI B550 R7 5700X 32GB DDR4 512GB SSD RTX 3060Ti 8GB Rampage SHIVA MSI 650W
- Veszünk: PS5 Fat/Slim/Digital/Pro konzolt, játékokat, Portalt stb. Kérj ajánlatot!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest