Keresés

Részletes keresés

LordFinesse Creative Commons License 2001.05.25 0 0 257
Egyik sem jelent problémát, csak könnyebb megcsinálni mint normálisan elmagyarázni.

El tudnád küldeni emailben a workbookot??
Ha érzékeny adatok vannak benne, akkor egy módosított változatát

Előzmény: _pancho_ (256)
_pancho_ Creative Commons License 2001.05.25 0 0 256
Hali mindenki!
Na gondoltam egy ket kerdessel felelesztem a topicot
Tehat adott egy adatbazis, ahol a Sheetek (bocsi angol excel es nem nagyon tudom magyarul pontosan hogy forditottak) adott honapokat jelolnek. MInden sheeten napokra bontva vannak az adatok, valahogy igy

Datum Ar Keszlet

A honap vegen van egy ar atlagertek illetve egy keszlet zaro (az utolso kitoltott ertek)
Azen felul van meg egy Osszefoglalo sheet, ahol a honapok atlagai illetve keszlet zaroerteke jelenik csak meg. Ket kerdes

1. Meg lehet e oldani, hogy a keszlet zaro cellaban a felette levo tartomany UTOLSO KITOLTOTT erteke szerepeljen? Tehat naponta valtozzon, ahogy irom be az uj adatokat

2. Az osszefoglalo tablazattal van egy olyan bajom, hogy ugye ott a honapok atlagarai jelennenek meg. Na most megcsinaltam, hogy ahogy megjelenik az ertek automatikuson megjelenjen az evi atlagar. De az a baj, hogy azokban a honapokban, ahol emg nem irtam be arakat (pl. iden juni) ott hibauzenetet kapok (#DIV!/0) merthogy 0/ val probalok osztani (0 ertek atlagat veszem). Ezzel lehetne valamit csinalni, mert az evi atlagba viszont ezeket a sorokat is beleveszi es nem mindegy, hogy a majsui atlagat hogy kapom meg (most ertek/12 es nem az aktualis ertek/5)

Na remelem ertheto voltam, es tudtok egiteni. Ha lehet minnel egyszerubb megoldast mondjatok, mert nem vagyok egy nagy excel szakerto, viszont akik hasznalni fogjak a tablat, azok semmennyire nem ertenek hozza. Tehat olyan megoldas kell ami viszonylag egyszeru, es miutan kesz a rendszer tobbet nem kell hozzanyulni, hanem automatikusan megy minden
Megegyszer koszi

pancho

Latya (K.L.) Creative Commons License 2001.05.22 0 0 255
L-Gee!!!!
Köszi!!!! Ez az ami kellett!!!!!!!!
Előzmény: L-Gee (254)
L-Gee Creative Commons License 2001.05.22 0 0 254
Latya,

Nem tudom ez megoldás-e neked, de szerintem legegyszerűbb, ha a cellaformátummal manipulálsz.
ráállsz a kívánt cellára, majd Format Cells, Number, kiválasztod a Custom-ot

és kézzel a következőket írod be(pontosan így írd be) :

[ó]:pp

-ennek hatására egy napnál nagyobb intervallum esetén is órában és percben íródik ki az eredmény: 28:32, vagy a másik megoldás:

n "nap, " ó:pp

- ez pedig napban és percben írja ki az eredményt: 1 nap, 4:32

Előzmény: Latya (K.L.) (252)
D.D.G. Creative Commons License 2001.05.22 0 0 253
Helló !

Lehet, hogy kezdetleges megoldás, de talás segít:
a két dátum 1997.3.4 13:30 formátumú és legyenek az A1 és a B1 mezők; a különbség napjai CSONK(B1-A1) (magyar Excel :))) formátuma szám, plusz még a maradék órák száma (B1-A1-CSONK(B1-A1))*24, formátuma szám.
Pl. az egyik dátum 2001.5.6. 11:00, a másik 2001.6.16. 13:30. A különbség 41 nap és 2,5 óra.

Remélem ez segített valamit... :)

D.D.G.

Előzmény: Latya (K.L.) (252)
Latya (K.L.) Creative Commons License 2001.05.21 0 0 252
Ha esetleg ha valaki tudna segíteni.....
Van két cella, ahová a hibabejelentés dátuma hónap nap óra perc, és a hibaelhárítás dátuma hónap nap óra perc kerülne. A két cellát kivonva egymásból a hibaelhárítás idejét szeretnáém megkapni. Azonban ez csak az óra perc külömbséget adja meg korrektül. a napokkal nem tud mit kezdeni. pl 1 nap külömbség január 1. x óra y perc ként jelenik meg. Mit lehet tenni?
Köszi!
Tiba Creative Commons License 2001.05.15 0 0 251
Ez az!

Hát ez nagyon jó.

Köszönöm:

Tiba

Előzmény: LordFinesse (249)
LordFinesse Creative Commons License 2001.05.15 0 0 250
A két kód között egys orba került, amit több sorba szántam. :-)))

A helyes:

Vagy egy másik megközelítés, amikor a modul már meg van írva, és azt akarod beimportálni, lecserélve egy régebbi modult. Pl. ha csinaltál egy Excel workbookot, amit már használnak és tele van adattal, de közben tovabbfejlesztetted a kódot és le akarod a régi VBA modult cserélni erre az újra, anélkül, hogy a workbook adataihoz hozzá kelljen nyúlni.

Előzmény: Tiba (248)
LordFinesse Creative Commons License 2001.05.15 0 0 249
Próbald ki ezt (csak úgy ötletcsinálónak), de elöször a Tools>Macros>Security-nal jelöld be a : Trust access to Visual Basic Project-et, hogy program útjan tudjál VBA kódot írni.


Sub AddSheetAndButton()
Dim NewSheet As Worksheet
Dim NewButton As OLEObject

' Add the sheet
Set NewSheet = Sheets.Add

' Add a CommandButton
Set NewButton = NewSheet.OLEObjects.Add _
("Forms.CommandButton.1")
With NewButton
.Left = 4
.Top = 4
.Width = 100
.Height = 24
.Object.Caption = "Return to Sheet1"
End With

' Add the event handler code
Code = "Sub CommandButton1_Click()" & vbCrLf
Code = Code & " On Error Resume Next" & vbCrLf
Code = Code & " Sheets(""Sheet1"").Activate" & vbCrLf
Code = Code & " If Err <> 0 Then" & vbCrLf
Code = Code & " MsgBox ""Cannot activate Sheet1.""" & vbCrLf
Code = Code & " End If" & vbCrLf
Code = Code & "End Sub"

With ThisWorkbook.VBProject. _
VBComponents(NewSheet.Name).CodeModule
NextLine = .CountOfLines + 1
.InsertLines NextLine, Code
End With
End Sub

Vagy egy másik megközelítés, amikor a modul már meg van írva, és azt akarod beimportálni, lecserélve egy régebbi modult. Pl. ha csinaltál egy Excel workbookot, amit már használnak és tele van adattal, de közben tovabbfejlesztetted a kódot és le akarod a régi VBA modult cserélni erre az újra, anélkül, hogy a workbook adataihoz hozzá kelljen nyúlni.


Sub UpdateUserBook()
Filename = "UserBook.xls"

' Activate workboook
On Error Resume Next
Workbooks(Filename).Activate
If Err <> 0 Then
MsgBox Filename & " must be open!", vbCritical
Exit Sub
End If

Msg = "This macro will replace Module1 in UserBook.XLS "
Msg = Msg & "with an updated Module." & vbCrLf & vbCrLf
Msg = Msg & "Click OK to continue."
If MsgBox(Msg, vbInformation + vbOKCancel) = vbOK Then
Call ReplaceModule
Else
MsgBox "Module not replaced!", vbCritical
End If
End Sub

Sub ReplaceModule()
' Export Module1 from this workbook
Filename = ThisWorkbook.Path & "\tempmodxxx.bas"
ThisWorkbook.VBProject.VBComponents("Module1") _
.Export Filename

' Replace Module1 in UserBook
Set VBP = ActiveWorkbook.VBProject
On Error GoTo ErrHandle
With VBP.VBComponents
.Remove VBP.VBComponents("Module1")
.Import Filename
End With

' Delete the temorary module file
Kill Filename
MsgBox "The module has been replaced.", vbInformation
Exit Sub

ErrHandle:
' Did an error occur?
MsgBox "ERROR. The module may not have been replaced.", _
vbCritical
End Sub

Előzmény: Tiba (248)
Tiba Creative Commons License 2001.05.14 0 0 248
Ennél azért előbb vagyok.

A kérdés arra vonatkozik, hogy program el tudja-e végezni a modul létrehozást és a forrás bemásolását.

Tiba

Előzmény: joy (246)
joy Creative Commons License 2001.05.14 0 0 247
Bocs!
Persze, mentsd el az új füzetet!
Előzmény: joy (246)
joy Creative Commons License 2001.05.14 0 0 246
Igen:
Nyisd meg az Excelt, kezdj egy makrót csinálni "ebbe a füzetbe" kijelöléssel, amit egy cellaléptetés után zárj be, majd nyisd meg szerkesztésre, töröld a másolót, és a
sub..
.
end sub
közé copy-zd be.
Előzmény: Tiba (243)
LordFinesse Creative Commons License 2001.05.14 0 0 245
1. Az Outlookból tudsz exportálni Excel formátumba és módodsítás után vissza is tudod importálni a file-t.
2. Elöször importálod az Accesben és utána az Accessböl az Excelbe.
Előzmény: TanárSegéd (244)
TanárSegéd Creative Commons License 2001.05.14 0 0 244
Hogy az excelben olyan címjegyzéket készíteni, amit elfogad az outlook, importálható az outlookba? Pontosabban mi az oszlop sorrend? Sajnos, erre sablon nincs az excelben.
Tiba Creative Commons License 2001.05.14 0 0 243
Sziasztok!

Van egy programom, amelyik adatbázis leírásból (Excel) VBA kódot generál. Tud valaki arra lehetőséget, hogy ezt mindjár be is építse egy xls fájl moduljába?

Köszi:

Tiba

Tomathos Creative Commons License 2001.05.09 0 0 242
Hello LordFinesse!

Köszönöm szépen!

Üdv

Tomathos

Előzmény: LordFinesse (241)
LordFinesse Creative Commons License 2001.05.09 0 0 241
Tomathos>>
ez elöcsalogatja:

CommandBars("Standard").FindControl(, 436).Execute

Előzmény: Tomathos (238)
L-Gee Creative Commons License 2001.05.09 0 0 240
Tiba,

köszi, végül én is így oldottam meg, igaz, hogy csak a szimpla hidden+paszvörddel, de a veryhidden lehet, hogy jobb lenne...

Előzmény: Tiba (239)
Tiba Creative Commons License 2001.05.09 0 0 239
A loggoláshoz kell kötni a munkafüzet és a munkalap védelmének feloldását. Pl: az
autoopen-ben kell Visible-re állítani a munkalapot, majd a munkafüzet felépítését védeni, autoclose-ben pedig VeryHidden-re állítani és a védelmet beállítani.

Tiba

Előzmény: L-Gee (237)
Tomathos Creative Commons License 2001.05.09 0 0 238
Hello!

Lenne egy problémám egy nyomógombal szeretném a Chart Wizard-ot előcsalni, de eddig még nem jött össze.

Pl: A nyomtatás így működik:
Sub Nyomtat()
Application.Dialogs(xlDialogPrint).Show
End Sub

Sajnos az xlChartWizard-al nem jó.

Van valakinek valamilyen ötlete?

Üdv

Tomathos

L-Gee Creative Commons License 2001.05.07 0 0 237
LordFinesse,

Mondjuk nálam az a szerencse, hogy nincsenek ilyen kis trükkös felhasználók, akiknek fő céljuk, hogy megkerüljék az általam megírt kis algoritmust :-) Én egyszerűen csak azt szeretném tudni, hogy kik matatnak épp a táblázatban, illetve ki-mit csinált vele megelőzően.

Előzmény: LordFinesse (235)
LordFinesse Creative Commons License 2001.05.07 0 0 236
Bár az az érzésem, hogy ezt VBA-val csak körülményesem lehet csak, ha egyáltalán lehet. Esetleg VB Scripttel, hogy a Windows loggolja????
LordFinesse Creative Commons License 2001.05.07 0 0 235
Sőt még az is probléma, hogy a Workbook_Open() sub-ot ki lehet kerülni, ha a file megnyitásakor a SHIFT-et lenyomva tartod.

Én is dolgozom a probléma megoldásán.
Szóval hogyan lehet megkerülhetetlenül loggolni egy adott file nyitását, zárását?????

Előzmény: L-Gee (234)
L-Gee Creative Commons License 2001.05.07 0 0 234
joy,

azért lemásolom ide az én megoldásomat:

Én úgy csináltam, hogy szimplán meghívom a függvényt a
Workbook_Open()-ből, vagy a BeforeClose, BeforeSave-ből a megfelelő paraméterrel

pl.: Logging("OPEN")

______________________________________________
Function Logging(Activity As String)

Dim Felhasznalo As String
Const LogFile = "M:\Posta\Orders\logfile.txt"

On Error GoTo HIBA

SetAttr LogFile, vbNormal
Open LogFile For Append As #1
Felhasznalo = Environ("USERNAME")

Print #1, Felhasznalo; Tab(2); Activity; Tab(2); Now(); Tab(2); "--------------------------------------"
Close #1
SetAttr LogFile, vbHidden + vbReadOnly + vbSystem

On Error GoTo 0
Exit Function

HIBA:
'Ide jön majd a hibakezelés, ha lesz türelmem
End Function
____________________________________

Az egyetlen probléma, ha a valakinek be van kapcsolva a Macro virus protection, akkor megnyitáskor rákérdez, hogy használni akarom-e a makrókat. Ha azt mondom, hogy nem, akkor nem loggol semmit. Ezért úgy csináltam meg, hogy eleve elhájdoltam a síteket pászvörddel, és megnyitáskor egy makro hívja elő őket. Namármost, ha kikapcsolja az elején a makrókat, akkor eleve rejtve maradnak az oldalak és nem tudja használni a file-t.
Mondjuk nem mondom, hogy tetszik a megoldás, de legalább működik.

Ha valakinek van más ötlete arra, hogy hogyan lehet megakadályozni, hogy ki lehessen kapcsolni a makrókat, ne titkolja előlem ! :)

Előzmény: joy (228)
joy Creative Commons License 2001.05.06 0 0 233
Fölvettem a kedvencekbe!
Előzmény: LordFinesse (231)
joy Creative Commons License 2001.05.06 0 0 232
HUH!
Mire ezt megtanulom letelik a műszakom!
:o)
Köszike!
Előzmény: LordFinesse (231)
LordFinesse Creative Commons License 2001.05.06 0 0 231
Az elözöhöz:

Ahol a munkafüzet van, abban a könyvtárban fog létrehozni egy logfile-t, és loggolja a User-name-t, a computer-name-t és a megnyitás és bezárás idejét.

Előzmény: LordFinesse (230)
LordFinesse Creative Commons License 2001.05.06 0 0 230
Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA"
_
(ByVal lpBuffer As String, nSize As Long) As Long
Public Declare Function GetComputerName Lib "kernel32" Alias
"GetComputerNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long

Sub Auto_Open()
Dim FNum As Integer
Dim UL As Long
Dim UName As String
Dim CL As Long
Dim CName As String

FNum = FreeFile

Open ThisWorkbook.Path & "\log.txt" For Append As #FNum
UName = String$(255, 0)
UL = 255
CName = String$(255, 0)
CL = 255
GetUserName UName, UL
GetComputerName CName, CL

Print #FNum, ThisWorkbook.FullName & " OPENED at " & _
Format(Now, "dd-mmm-yyyy hh:mm:ss") & " by user: " & _
Left(UName, UL) & " from computer: " & Left(CName, CL)
Close #FNum
End Sub

Sub Auto_Close()
Dim FNum As Integer
Dim UL As Long
Dim UName As String
Dim CL As Long
Dim CName As String

FNum = FreeFile

Open ThisWorkbook.Path & "\log.txt" For Append As #FNum
UName = String$(255, 0)
UL = 255
CName = String$(255, 0)
CL = 255
GetUserName UName, UL
GetComputerName CName, CL

Print #FNum, ThisWorkbook.FullName & " CLOSED at " & _
Format(Now, "dd-mmm-yyyy hh:mm:ss") & " by user: " & _
Left(UName, UL) & " from computer: " & Left(CName, CL)
Close #FNum

End Sub

Ez a megoldás nem tölem származik, egy excel newsgroupból vettem. A szerzöje Chip Pearson. http://www.cpearson.com/

Előzmény: joy (228)
joy Creative Commons License 2001.05.06 0 0 229
ChDir "C:\Mappa\Mappika"
ActiveWorkbook.SaveAs Filename:="C:\Mappa\Mappika\File.xls", FileFormat _
:=xlExcel5, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=True
ChDir "T:\Mappika"
ActiveWorkbook.SaveAs Filename:="T:\Mappika\File.xls", FileFormat _
:=xlExcel5, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=True
ActiveWorkbook.Close

Ez volt az eredeti
Miután kicseréltem a FileFormat-ot xlNormal-ra megszünt a jelenség!

Azután már a VBA makróvédelemmel le lehetett tiltani a szerkesztését!

Köszi a beszélgetést, elvezetett a megoldáshoz!

Előzmény: Tiba (224)
joy Creative Commons License 2001.05.06 0 0 228
Ha elküldenél egy használható példát a (221)-ben leírt megoldásra a >>vbeci@freemail.hu<<-ra megköszönném!
Nekem is az a gond, hogy olyanok kotornak a file-ben, akiknek semmi keresni valója ott, csak bámészok, azután elfeledik bezárni...
Legalább azt tudnám, ki-mikor nyitotta meg, már nagy haszon lenne!
Előre is köszi!
Előzmény: L-Gee (227)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!