Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1144to1148
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Step erweitern

Step erweitern
Lorenz
Hallo an alle!
Für eine Schleife benötige ich "Schritte" nach folgendem Muster:
For i = 2 To 954 Step 14
Soweit ja kein Problem. Jetzt kommt es aber und zwar soll "14" nur zweimal, dann "16" einmal usw.
Also: 2+14+14+16+14+14+16+14+14+16....... bis i = "954".
Hat vielleicht jemand nen Tipp?
Grüße
Lorenz
AW: Step erweitern
21.03.2010 13:26:28
ransi
HAllo
Aus dem Bauch heraus und kaum getestet:
Public Sub test()
Dim I
Dim K
Dim Z
K = 14
For I = 2 To 954 Step K
    Z = Z + 1
    If Z = 3 Then
        K = 16
        Z = 0
        Else:
        K = 14
    End If
    Debug.Print I; K
Next
End Sub


ransi
Anzeige
AW: Step erweitern
21.03.2010 13:40:56
Lorenz
Hallo Ransi
Aus deinem "Bauch heraus" bedarf es scheinbar keinem Test, Code bereits verwendet, somit auch getestet. Funktioniert 100%ig.
Danke & Grüsse
Lorenz
AW: Step erweitern
21.03.2010 13:28:58
Nepumuk
Hallo Lorenz,
einfach so:
Public Sub Beispiel()
    Dim vntCounterArray As Variant
    Dim lngCounter As Long, lngIndex As Long
    vntCounterArray = Array(2, 14, 14, 16, 14, 14, 16, 14, 14, 16)
    Do
        lngIndex = lngIndex + vntCounterArray(lngCounter)
        
        Debug.Print lngIndex
        
        lngCounter = lngCounter + 1
    Loop While lngCounter < UBound(vntCounterArray)
End Sub

Gruß
Nepumuk
Anzeige
AW: Step erweitern
21.03.2010 13:52:50
Lorenz
Hallo Nepumuk
Ich habe ransi´s code genommen, da dein Code bei "lngIndex=118" endet. Da müsste ich vermutlich bis "954" erreicht wird noch einige Male 14, 14, 16 in´s Array hinzufügen.
Trotzdem Danke & Grüsse
Lorenz
AW: Step erweitern
21.03.2010 14:26:13
Nepumuk
Hallo Lorenz,
das war nicht so ganz klar, ob das immer so weiter geht 14, 14, 16 ..... oder ob da noch andere Sprünge kommen. Wenn Ransis Code passt, dann ist ja alles klar.
Auch wenn ich beim Anblick seiner Variablennamen das kalte Grauen bekomme. Die von Tino sind auch nicht viel besser, er hat aber wenigstens einen Variablentyp angegeben.
Warum soll ein Anfänger sich an Programmierkonventionen halten, wenn es einem die "Profis" so Scheiße vormachen.
Ransis Code sollte schneller als der von Tino. Die IIf-Funktion ist ziemlich langsam da sie immer beide Seiten berechnet, auch wenn sie nur eine benutzt.
Gruß
Nepumuk
Anzeige
Berechnung passt nicht.
21.03.2010 14:35:46
ransi
HAllo
Wenn Ransis Code passt, dann ist ja alles klar.

Tja, wenn er denn passt.
Tut er aber leider nicht !
Der Code haut das raus:
2
16
30
44
58
usw.
So ists gewollt ?
2
16
30
46
60
usw.
Warum soll ein Anfänger sich an Programmierkonventionen halten, wenn es einem die "Profis" so Scheiße vormachen.
@Nepumuk:
Da kann ich nur zum wiederholten Mal sagen:
Recht hast du, und ich gelobe wiedereinmal Besserung.
ransi
AW: Berechnung passt nicht.
21.03.2010 14:54:56
Nepumuk
Hallo ransi,
na dann dück ich nochmal ein Auge zu. ;-)
Gruß
Nepumuk
Anzeige
Na, dann dürfte das ja wohl auch für...
21.03.2010 17:52:19
Luc:-?
meine Variablennamen gelten, Nepumuk,
allerdings graust es mich, wenn ich eure pseudokonventionellen VarNamen sehe… ;->
Diese Konvention ist noch aus der Steinzeit und für so klitzekleine, überschaubare Pgmm völlig überflüssig. MS zeigt in seinen Bspp auch keinerlei Spuren von so etwas. Viel eleganter finde ich die Festlegung von VarNamen-Bereichen, obwohl das auch überflüssig ist, denn die Wiederverwendung einer bestehenden Variablen für einen anderen VarTyp ist ja wohl das allerkleinste Problem. Das würde eh angezeigt wdn. Das HptProblem bei Variablen besteht doch gerade darin, dass man eine Variable fälschlich neu belegt, obwohl sie noch mit der alten Belegung gebraucht wird. Und das verhindert eure Namenskonvention auch nicht. Da kommt es viel eher auf Systematik und durchdachte, meinethalben modulare Pgmierung und ggf eine Benennung nach Verwendungszweck an. Von „sprechenden Schlüsseln“ ist man in der EDV schon seit 30 Jahren abgekommen, warum soll dann so etwas Ähnliches bei VarNamen wieder eingeführt wdn…?!
Gruß + schöSoAb, Luc :-?
Anzeige
Quatsch
21.03.2010 19:05:29
Nepumuk
Hallo Luc,
da versuch mal den Code unseres Projektleitstandes ohne diese Konventionen auch nur Ansatzweise zu verstehen. Ich hab den neulich als PDF ausgedruck, das waren knapp 1.500 Seiten (rund 100.000 Zeilen Code). Hier mal nur die öffentlichen Variablen und Konstanten. Da würden dir schnell die Buchstaben ausgehen, wenn die jeweils nur aus einem beständen:
' **********************************************************************
' Modul: Mod_Declaration Typ: Allgemeines Modul
' **********************************************************************

Option Explicit
Option Base 0
Option Compare Text
Option Private Module

Public Declare Function FlashWindowEx Lib "user32.dll" ( _
    ByRef pfwi As FLASHWINFO) As Boolean
Public Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" ( _
    ByRef pSavefilename As SAVEFILENAME) As Long
Public Declare Function MoveWindow Lib "user32.dll" ( _
    ByVal hwnd As Long, _
    ByVal x As Long, _
    ByVal Y As Long, _
    ByVal nWidth As Long, _
    ByVal nHeight As Long, _
    ByVal bRepaint As Long) As Long
Public Declare Function GetDiskFreeSpace Lib "kernel32.dll" Alias "GetDiskFreeSpaceA" ( _
    ByVal lpRootPathName As String, _
    ByRef lpSectorsPerCluster As Long, _
    ByRef lpBytesPerSector As Long, _
    ByRef lpNumberOfFreeClusters As Long, _
    ByRef lpTtoalNumberOfClusters As Long) As Long
Public Declare Function GetAsyncKeyState Lib "user32.dll" ( _
    ByVal vKey As Long) As Integer
Public Declare Function GetFileVersionInfoSize Lib "version.dll" Alias "GetFileVersionInfoSizeA" ( _
    ByVal lptstrFilename As String, _
    ByRef lpdwHandle As Long) As Long
Public Declare Function GetFileVersionInfo Lib "version.dll" Alias "GetFileVersionInfoA" ( _
    ByVal lptstrFilename As String, _
    ByVal dwHandle As Long, _
    ByVal dwLen As Long, _
    ByRef lpData As Any) As Long
Public Declare Function VerQueryValue Lib "version.dll" Alias "VerQueryValueA" ( _
    ByRef pBlock As Any, _
    ByVal lpSubBlock As String, _
    ByRef lplpBuffer As Long, _
    ByRef puLen As Long) As Long
Public Declare Sub CopyMem Lib "kernel32.dll" Alias "RtlMoveMemory" ( _
    ByRef Destination As Any, _
    ByRef Source As Any, _
    ByVal Length As Long)
Public Declare Function GetDriveType Lib "kernel32.dll" Alias "GetDriveTypeA" ( _
    ByVal nDrive As String) As Long
Public Declare Function Sound Lib "kernel32.dll" Alias "Beep" ( _
    ByVal dwFreq As Long, _
    ByVal dwDuration As Long) As Long
Public Declare Function LockWindowUpdate Lib "user32.dll" ( _
    ByVal hwndLock As Long) As Long
Public Declare Function GetWindow Lib "user32.dll" ( _
    ByVal hwnd As Long, _
    ByVal wCmd As Long) As Long
Public Declare Function GetClassName Lib "user32.dll" Alias "GetClassNameA" ( _
    ByVal hwnd As Long, _
    ByVal lpClassName As String, _
    ByVal nMaxCount As Long) As Long
Public Declare Function SendDlgItemMessageA Lib "user32.dll" ( _
    ByVal hDlg As Long, _
    ByVal nIDDlgItem As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As String) As Long
Public Declare Function MessageBoxA Lib "user32.dll" ( _
    ByVal hwnd As Long, _
    ByVal lpText As String, _
    ByVal lpCaption As String, _
    ByVal wType As Long) As Long
Public Declare Function GlobalFree Lib "kernel32.dll" ( _
    ByVal hMem As Long) As Long
Public Declare Function SetClipboardData Lib "user32.dll" ( _
    ByVal wFormat As Long, _
    ByVal hMem As Long) As Long
Public Declare Function GlobalAlloc Lib "kernel32.dll" ( _
    ByVal wFlags As Long, _
    ByVal dwBytes As Long) As Long
Public Declare Function CopyEnhMetaFile Lib "gdi32.dll" Alias "CopyEnhMetaFileA" ( _
    ByVal hemfSrc As Long, _
    ByVal lpszFile As String) As Long
Public Declare Function CopyImage Lib "user32.dll" ( _
    ByVal Handle As Long, _
    ByVal un1 As Long, _
    ByVal n1 As Long, _
    ByVal n2 As Long, _
    ByVal un2 As Long) As Long
Public Declare Function OleCreatePictureIndirect Lib "olepro32.dll" ( _
    ByRef PicDesc As uPicDesc, _
    ByRef RefIID As GUID, _
    ByVal fPictureOwnsHandle As Long, _
    ByRef IPic As IPicture) As Long
Public Declare Function OleCreatePictureIndirectA Lib "oleaut32.dll" Alias "OleCreatePictureIndirect" ( _
    ByRef pDicDesc As IconType, _
    ByRef riid As CLSIdType, _
    ByVal fown As Long, _
    ByRef lpUnk As Object) As Long
Public Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" ( _
    ByVal pszPath As String, _
    ByVal dwFileAttributes As Long, _
    ByRef psfi As ShellFileInfoType, _
    ByVal cbFileInfo As Long, _
    ByVal uFlags As Long) As Long
Public Declare Function GetClipboardData Lib "user32.dll" ( _
    ByVal wFormat As Long) As Long
Public Declare Function IsClipboardFormatAvailable Lib "user32.dll" ( _
    ByVal wFormat As Long) As Long
Public Declare Function GlobalLock Lib "kernel32.dll" ( _
    ByVal hMem As Long) As Long
Public Declare Function GlobalUnlock Lib "kernel32.dll" ( _
    ByVal hMem As Long) As Long
Public Declare Function lstrcpy Lib "kernel32.dll" Alias "lstrcpyA" ( _
    ByVal lpString1 As Any, _
    ByVal lpString2 As Any) As Long
Public Declare Function SetWindowPos Lib "user32.dll" ( _
    ByVal hwnd As Long, _
    ByVal hWndInsertAfter As Long, _
    ByVal x As Long, _
    ByVal Y As Long, _
    ByVal cx As Long, _
    ByVal cy As Long, _
    ByVal wFlags As Long) As Long
Public Declare Function lstrlen Lib "kernel32.dll" Alias "lstrlenA" ( _
    ByVal lpString As Any) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
    ByRef pDst As Any, _
    ByRef pSrc As Any, _
    ByVal ByteLen As Long)
Public Declare Function WNetGetConnection Lib "mpr.dll" Alias "WNetGetConnectionA" ( _
    ByVal lpszLocalName As String, _
    ByVal lpszRemoteName As String, _
    ByRef cbRemoteName As Long) As Long
Public Declare Function WNetOpenEnum Lib "mpr.dll" Alias "WNetOpenEnumA" ( _
    ByVal dwScope As Long, _
    ByVal dwType As Long, _
    ByVal dwUsage As Long, _
    ByRef lpNetResource As Any, _
    ByRef lphEnum As Long) As Long
Public Declare Function WNetEnumResource Lib "mpr.dll" Alias "WNetEnumResourceA" ( _
    ByVal hEnum As Long, _
    ByRef lpcCount As Long, _
    ByRef lpBufferCount As Any, _
    ByRef lpBufferCountSize As Long) As Long
Public Declare Function WNetCloseEnum Lib "mpr.dll" ( _
    ByVal hEnum As Long) As Long
Public Declare Function DeleteMenu Lib "user32.dll" ( _
    ByVal hMenu As Long, _
    ByVal nPosition As Long, _
    ByVal wFlags As Long) As Long
Public Declare Function GetSystemMenu Lib "user32.dll" ( _
    ByVal hwnd As Long, _
    ByVal bRevert As Long) As Long
Public Declare Function GetFileTime Lib "kernel32.dll" ( _
    ByVal hFile As Long, _
    ByRef lpCreationTime As FILETIME, _
    ByRef lpLastAccessTime As FILETIME, _
    ByRef lpLastWriteTime As FILETIME) As Long
Public Declare Function SetFileTime Lib "kernel32.dll" ( _
    ByVal hFile As Long, _
    ByRef lpCreationTime As FILETIME, _
    ByRef lpLastAccessTime As FILETIME, _
    ByRef lpLastWriteTime As FILETIME) As Long
Public Declare Function CreateFile Lib "kernel32.dll" Alias "CreateFileA" ( _
    ByVal lpFileName As String, _
    ByVal dwDesiredAccess As Long, _
    ByVal dwShareMode As Long, _
    ByRef lpSecurityAttributes As Long, _
    ByVal dwCreationDisposition As Long, _
    ByVal dwFlagsAndAttributes As Long, _
    ByVal hTemplateFile As Long) As Long
Public Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" ( _
    ByVal pidl As Long, _
    ByVal pszPath As String) As Long
Public Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" ( _
    ByVal hwndOwner As Long, _
    ByVal nFolder As Long, _
    ByRef pidl As ITEMIDLIST) As Long
Public Declare Function CopyFile Lib "kernel32.dll" Alias "CopyFileA" ( _
    ByVal lpExistingFileName As String, _
    ByVal lpNewFileName As String, _
    ByVal bFailIfExists As Long) As Long
Public Declare Function MoveFile Lib "kernel32.dll" Alias "MoveFileA" ( _
    ByVal lpExistingFileName As String, _
    ByVal lpNewFileName As String) As Long
Public Declare Function GetVolumeInformation Lib "kernel32.dll" Alias "GetVolumeInformationA" ( _
    ByVal lpRootPathName As String, _
    ByVal lpVolumeNameBuffer As String, _
    ByVal nVolumeNameSize As Long, _
    ByRef lpVolumeSerialNumber As Long, _
    ByRef lpMaximumComponentLength As Long, _
    ByRef lpFileSystemFlags As Long, _
    ByVal lpFileSystemNameBuffer As String, _
    ByVal nFileSystemNameSize As Long) As Long
Public Declare Function GetShortPathName Lib "kernel32.dll" Alias "GetShortPathNameA" ( _
    ByVal lpszLongPath As String, _
    ByVal lpszShortPath As String, _
    ByVal cchBuffer As Long) As Long
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
    ByVal hwnd As Long, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long
Public Declare Function GetActiveWindow Lib "user32.dll" () As Long
Public Declare Function CloseClipboard Lib "user32.dll" () As Long
Public Declare Function EmptyClipboard Lib "user32.dll" () As Long
Public Declare Function OpenClipboard Lib "user32.dll" ( _
    ByVal hwnd As Long) As Long
Public Declare Sub Sleep Lib "kernel32.dll" ( _
    ByVal dwMilliseconds As Long)
Public Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
    ByVal DirPath As String) As Long
Public Declare Function KillTimer Lib "user32.dll" ( _
    ByVal hwnd As Long, _
    ByVal nIDEvent As Long) As Long
Public Declare Function SetTimer Lib "user32.dll" ( _
    ByVal hwnd As Long, _
    ByVal nIDEvent As Long, _
    ByVal uElapse As Long, _
    ByVal lpTimerFunc As Long) As Long
Public Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
Public Declare Function CreateToolhelp32Snapshot Lib "kernel32.dll" ( _
    ByVal dwFlags As Long, _
    ByVal th32ProcessID As Long) As Long
Public Declare Function Process32First Lib "kernel32.dll" ( _
    ByVal hSnapshot As Long, _
    ByRef lppe As PROCESSENTRY32) As Long
Public Declare Function Process32Next Lib "kernel32.dll" ( _
    ByVal hSnapshot As Long, _
    ByRef lppe As PROCESSENTRY32) As Long
Public Declare Function CloseHandle Lib "kernel32.dll" ( _
    ByVal hObject As Long) As Long
Public Declare Sub FatalAppExit Lib "kernel32.dll" Alias "FatalAppExitA" ( _
    ByVal uAction As Long, _
    ByVal lpMessageText As String)
Public Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" ( _
    ByVal hWnd1 As Long, _
    ByVal hWnd2 As Long, _
    ByVal lpsz1 As String, _
    ByVal lpsz2 As String) As Long
Public Declare Function GetCommandLine Lib "kernel32.dll" Alias "GetCommandLineA" () As Long
Public Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" ( _
    ByVal hInst As Long, _
    ByVal lpszExeFileName As String, _
    ByVal nIconIndex As Long) As Long
Public Declare Function SetActiveWindow Lib "user32.dll" ( _
    ByVal hwnd As Long) As Long
Public Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" ( _
    ByVal hwnd As Long, _
    ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" ( _
    ByVal hwnd As Long, _
    ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long
Public Declare Function DrawMenuBar Lib "user32.dll" ( _
    ByVal hwnd As Long) As Long
Public Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
    ByVal hwnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long) As Long
Public Declare Function SendMessageS Lib "user32.dll" Alias "SendMessageA" ( _
    ByVal hwnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As String) As Long
Public Declare Function SendMessageR Lib "user32.dll" Alias "SendMessageA" ( _
    ByVal hwnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    ByRef lParam As String) As Long
Private Declare Function SendMessageW Lib "user32.dll" Alias "SendMessageA" ( _
    ByVal hwnd As Long, _
    ByVal Msg As Long, _
    ByRef wParam As Any, _
    ByRef lParam As Any) As Long
Public Declare Function GetWindowDC Lib "user32.dll" ( _
    ByVal hwnd As Long) As Long
Public Declare Function TextOut Lib "gdi32.dll" Alias "TextOutA" ( _
    ByVal hdc As Long, _
    ByVal x As Long, _
    ByVal Y As Long, _
    ByVal lpString As String, _
    ByVal nCount As Long) As Long
Public Declare Function Ellipse Lib "gdi32.dll" ( _
    ByVal hdc As Long, _
    ByVal x1 As Long, _
    ByVal Y1 As Long, _
    ByVal x2 As Long, _
    ByVal Y2 As Long) As Long
Public Declare Function GetSystemMetrics Lib "user32.dll" ( _
    ByVal nIndex As Long) As Long
Public Declare Function SafeArrayGetDim Lib "oleaut32.dll" ( _
    ByRef pArray() As Any) As Long
Public Declare Function GetVersionEx1 Lib "kernel32.dll" Alias "GetVersionExA" ( _
    ByRef lpVersionInformation As OSVERSIONINFO) As Long
Public Declare Function GetVersionEx2 Lib "kernel32.dll" Alias "GetVersionExA" ( _
    ByRef lpVersionInformation As OSVERSIONINFOEX) As Long
Public Declare Function GetTempPath Lib "kernel32.dll" Alias "GetTempPathA" ( _
    ByVal nBufferLength As Long, _
    ByVal lpBuffer As String) As Long
Public Declare Function OleTranslateColor Lib "oleaut32.dll" ( _
    ByVal lOleColor As Long, _
    ByVal lHPalette As Long, _
    ByRef lColorRef As Long) As Long
Public Declare Function GetCursorPos Lib "user32.dll" ( _
    ByRef lpPoint As POINTAPI) As Long
Public Declare Function GetWindowRect Lib "user32.dll" ( _
    ByVal hwnd As Long, _
    ByRef lpRect As RECT) As Long
Public Declare Function FindNextFile Lib "kernel32.dll" Alias "FindNextFileA" ( _
    ByVal hFindFile As Long, _
    ByRef lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindFirstFile Lib "kernel32.dll" Alias "FindFirstFileA" ( _
    ByVal lpFileName As String, _
    ByRef lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindClose Lib "kernel32.dll" ( _
    ByVal hFindFile As Long) As Long
Public Declare Function SetCursorPos Lib "user32.dll" ( _
    ByVal lngX_Position As Long, _
    ByVal lngY_Position As Long) As Long
Public Declare Sub mouse_event Lib "user32.dll" ( _
    ByVal dwFlags As Long, _
    ByVal dx As Long, _
    ByVal dy As Long, _
    ByVal dwdata As Long, _
    ByVal dwExtraInfo As Long)
Public Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" ( _
    ByRef lpFileOp As SHFILEOPSTRUCT) As Long
Public Declare Function GetDoubleClickTime Lib "user32.dll" () As Long
Public Declare Function ReleaseCapture Lib "user32.dll" () As Long
Public Declare Function GetLogicalDrives Lib "kernel32.dll" () As Long

Public Const CB_SETDROPPEDWIDTH As Long = &H160&

Public Const CF_BITMAP = 2
Public Const CF_ENHMETAFILE = 14
Public Const CF_TEXT = 1

Public Const CLR_DEFAULT = &HFF000000

Public Const DI_MASK = &H1&
Public Const DI_IMAGE = &H2&
Public Const DI_NORMAL = DI_MASK Or DI_IMAGE

'//max-count and len of dsets in biz-files
Public Const DSET_LENGTH As Single = 5002
Public Const DSET_COUNT As Single = 2000

Public Const E_ABORT = &H80004004
Public Const E_ACCESSDENIED = &H80070005
Public Const E_FAIL = &H80004005
Public Const E_HANDLE = &H80070006
Public Const E_INVALIDARG = &H80070057
Public Const E_NOINTERFACE = &H80004002
Public Const E_NOTIMPL = &H80004001
Public Const E_OUTOFMEMORY = &H8007000E
Public Const E_POINTER = &H80004003
Public Const E_UNEXPECTED = &H8000FFFF

Public Const FILE_SHARE_READ = &H1&
Public Const FILE_SHARE_WRITE = &H2&

Public Const FLASHW_STOP = 0
Public Const FLASHW_CAPTION = &H1
Public Const FLASHW_TRAY = &H2
Public Const FLASHW_ALL = (FLASHW_CAPTION Or FLASHW_TRAY)
Public Const FLASHW_TIMER = &H4

Public Const FORM_CAPTION = "X1Y2Z3"

Public Const GC_CLASSNAMEMSDIALOG = "#32770"
Public Const GC_CLASSNAMEMSEXCEL = "XLMAIN"
Public Const GC_CLASSNAMEMSEXCELFORM = "ThunderDFrame"
Public Const GC_CLASSNAMEMSTRAY = "MS-SDIa"
Public Const GC_CLASSNAMEFORM = "ThunderRT6FormDC"
Public Const GC_CLASSNAMETEXTBOX = "ThunderRT6TextBox"

Public Const GMEM_MOVEABLE = 2&

Public Const GENERIC_WRITE = &H40000000

Public Const GW_CHILD = 5
Public Const GW_HWNDNEXT = 2

Public Const GWL_STYLE = -&H10&

Public Const HTCAPTION = 2&

Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2

Public Const ICON_BIG = 1&
Public Const ICON_SMALL = 0&

Public Const IMAGE_BITMAP = 0

Public Const IS_ERROR = 0&

Public Const LR_COPYRETURNORG = &H4&

Public Const MAX_PATH = 260&

Public Const MAX_PLANNING_METHODS = 12

Public Const MF_BYCOMMAND = &H0&

Public Const NO_ERROR = 0&

Public Const OPEN_EXISTING = 3&

Public Const PATH_ERROR = 0&

Public Const PBM_SETBARCOLOR = &H409&
Public Const PBM_SETBKCOLOR = &H2001&

Public Const POINT_PIXEL_CONVERSION_FACTOR = 0.75

Public Const S_OK = &H0&

Public Const SC_CLOSE = &HF060&

Public Const SMALL_ICON As Long = &H101&

Public Const SM_CXSCREEN = 0&
Public Const SM_CYSCREEN = 1&

Public Const SW_HIDE = 0&
Public Const SW_NORMAL As Long = 1&
Public Const SW_MAXIMIZE As Long = 3

Public Const SWP_NOSIZE = &H1&
Public Const SWP_NOMOVE = &H2&
Public Const SWP_NOZORDER = &H4
Public Const SWP_NOACTIVATE = &H10&
Public Const SWP_SHOWWINDOW = &H40&

Public Const TH32CS_SNAPPROCESS = &H2&

Public Const VER_PLATFORM_WIN32_NT As Long = 2&
Public Const VER_PLATFORM_WIN32_WINDOWS As Long = 1&
Public Const VER_PLATFORM_WIN32s As Long = 0&

Public Const VER_SUITE_PERSONAL As Long = &H200&

Public Const VALIDATION_MAX_COLUMNS = 8

Public Const WM_SETTEXT = &HC&
Public Const WM_GETTEXT = &HD&
Public Const WM_NCLBUTTONDOWN = &HA1&
Public Const WM_SETICON As Long = &H80&

Public Const WS_CAPTION = &HC00000
Public Const WS_SYSMENU = &H80000

Public Const MOUSEEVENT_LEFTDOWN = &H2&
Public Const MOUSEEVENT_LEFTUP = &H4&

Public Const INVALID_HANDLE_VALUE = -1&

Public Const RESOURCETYPE_ANY = &H0&
Public Const RESOURCE_CONNECTED = &H1&

Public Const FO_MOVE = &H1&
Public Const FO_COPY = &H2&
Public Const FO_DELETE = &H3&
Public Const FO_RENAME = &H4&

Public Const FOF_MULTIDESTFILES = &H1&
Public Const FOF_CONFIRMMOUSE = &H2&
Public Const FOF_SILENT = &H4&
Public Const FOF_RENAMEONCOLLISION = &H8&
Public Const FOF_NOCONFIRMATION = &H10&
Public Const FOF_ALLOWUNDO = &H40&
Public Const FOF_FILESONLY = &H80&
Public Const FOF_SIMPLEPROGRESS = &H100&
Public Const FOF_NOCONFIRMMKDIR = &H200&
Public Const FOF_NOERRORUI = &H400&
Public Const FOF_NOCOPYSECURITYATTRIBS = &H800&

Public Const vbPicTypeIcon = 3

Public Type FLASHWINFO
    cbSize As Long
    hwnd As Long
    dwFlags As Long
    uCount As Long
    dwTimeout As Long
End Type

Public Type SAVEFILENAME
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    lpstrFilter As String
    lpstrCustomFilter As String
    nMaxCustFilter As Long
    nFilterIndex As Long
    lpstrFile As String
    nMaxFile As Long
    lpstrFileTitle As String
    nMaxFileTitle As Long
    lpstrInitialDir As String
    lpstrTitle As String
    flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
End Type

Public Type VS_FIXEDFILEINFO
    dwSignature As Long
    dwStrucVersion As Long
    dwFileVersionMS As Long
    dwFileVersionLS As Long
    dwProductVersionLS As Long
    dwFileFlagsMask As Long
    dwProductVersionMS As Long
    dwFileFlags As Long
    dwFileOS As Long
    dwFileType As Long
    dwFileSubtype As Long
    dwFileDateMS As Long
    dwFileDateLS As Long
End Type

Public Type BrowseInfo
    hwnd As Long
    Root As Long
    DisplayName As Long
    Title As Long
    flags As Long
    FName As Long
    lParam As Long
    Image As Long
End Type

Public Type NETRESOURCE
    dwScope As Long
    dwType As Long
    dwDisplayType As Long
    dwUsage As Long
    lpLocalPath As Long
    lpRemoteName As Long
    lpComment As Long
    lpProvider As Long
End Type

Public Enum FILE_ATTRIBUTE
    FILE_ATTRIBUTE_READONLY = &H1&
    FILE_ATTRIBUTE_HIDDEN = &H2&
    FILE_ATTRIBUTE_SYSTEM = &H4&
    FILE_ATTRIBUTE_DIRECTORY = &H10&
    FILE_ATTRIBUTE_ARCHIVE = &H20&
    FILE_ATTRIBUTE_NORMAL = &H80&
    FILE_ATTRIBUTE_TEMPORARY = &H100&
End Enum

Public Type SHFILEOPSTRUCT
    hwnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAnyOperationsAborted As Long
    hNameMappings As Long
    lpszProgressTitle As String
End Type

Public Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type

Public Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved0 As Long
    dwReserved1 As Long
    cFileName As String * MAX_PATH
    cAlternate As String * 14
End Type

Public Type POINTAPI
    lngX_Position As Long
    lngY_Position As Long
End Type

Public Type RECT
    lngLeft As Long
    lngTop As Long
    lngRight As Long
    lngBottom As Long
End Type

Public Type IconType
    cbSize As Long
    picType As Long
    hIcon As Long
End Type

Public Type CLSIdType
    id(16) As Byte
End Type

Public Type ShellFileInfoType
    hIcon As Long
    iIcon As Long
    dwAttributes As Long
    szDisplayName As String * MAX_PATH
    szTypeName As String * 80
End Type

Public Type GUID
    Data1 As Long
    Data2 As Integer
    Data3 As Integer
    Data4(0 To 7) As Byte
End Type

Public Type uPicDesc
    lngSize As Long
    lngType As Long
    lnghPic As Long
    lnghPal As Long
End Type

Public Type FILE_SHORT_INFO
    strFilename As String
    dtmDateCreate As Date
End Type

Public Type ITEMID
    cb As Long
    abID As Byte
End Type

Public Type ITEMIDLIST
    mkid As ITEMID
End Type

Public Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
End Type

Public Type OSVERSIONINFOEX
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
    wServicePackMajor As Integer
    wServicePackMinor As Integer
    wSuiteMask As Integer
    wProductType As Byte
    wReserved As Byte
End Type

Public Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szExeFile As String * MAX_PATH
End Type

'//fedeal states germany for holiday-calculation
Public Enum FEDERAL_STATES
    Gesamtes_Bundesgebiet
    Baden_Württemberg
    Bayern
    Brandenburg
    Berlin
    Bremen
    Hamburg
    Hessen
    Mecklenburg_Vorpommern
    Niedersachsen
    Nordrhein_Westfalen
    Rheinland_Pfalz
    Saarland
    Sachsen
    Sachsen_Anhalt
    Schleswig_Holstein
    Thüringen
End Enum

'//gemany holidays
Public Enum HOLIDAYS
    Neujahr
    HeiligDreiKönig
    Maifeiertag
    Karfreitag
    Ostersonntag
    Ostermontag
    Christi_Himmelfahrt
    Pfingstsonntag
    Pfingstmontag
    Fronleichnam
    Augsburger_Friedensfest
    Mariä_Himmelfahrt
    Tag_der_Deutschen_Einheit
    Reformationstag
    Allerheiligen
    Buß_und_Bettag
    Erster_Weihnachtsfeiertag
    Zweiter_Weihnachtsfeiertag
End Enum

'//towns in germany with special holidays
Public Enum TOWNS
    frei
    Augsburg
    Bautzen
    Crostwitz
    Göda
    Großdubrau
    Hoyerswerda
    Königswartha
    Nebelschütz
    Neschwitz
    Panschwitz_Kuckau
    Puschwitz
    Räckelwitz
    Radibor
    Ralbitz_Rosenthal
    Wittichenau
    Eichsfeld
    Anrode
    Brunnhartshausen
    Buttlar
    Dünwald
    Geisa
    Heyerode
    Hildebrandshausen
    Katharinenberg
    Lengenfeld_unterm_Stein
    Rockenstuhl
    Rodeberg
    Schleid
    Zella_Rhön
End Enum

'//different typs of file-access
Public Enum FILE_ACCESS
    FILE_ACCESS_READ
    FILE_ACCESS_WRITE
    FILE_ACCESS_FULL
End Enum

'//types of windowsfolder
Public Enum FOLDER_TYP
    CSIDL_ADMINTOOLS = &H30&
    CSIDL_ALTSTARTUP = &H1D&
    CSIDL_APPDATA = &H1A&
    CSIDL_BITBUCKET = &HA&
    CSIDL_COMMON_ADMINTOOLS = &H2F&
    CSIDL_COMMON_ALTSTARTUP = &H1E&
    CSIDL_COMMON_APPDATA = &H23&
    CSIDL_COMMON_DESKTOPDIRECTORY = &H19&
    CSIDL_COMMON_DOCUMENTS = &H2E&
    CSIDL_COMMON_FAVORITES = &H1F&
    CSIDL_COMMON_PROGRAMS = &H17&
    CSIDL_COMMON_STARTMENU = &H16&
    CSIDL_COMMON_STARTUP = &H18&
    CSIDL_COMMON_TEMPLATES = &H2D&
    CSIDL_CONNECTIONS = &H31&
    CSIDL_CONTROLS = &H3&
    CSIDL_COOKIES = &H21&
    CSIDL_DESKTOP = &H0&
    CSIDL_DESKTOPDIRECTORY = &H10&
    CSIDL_DRIVES = &H11&
    CSIDL_FAVORITES = &H6&
    CSIDL_FLAG_CREATE = &H8000&
    CSIDL_FLAG_DONT_VERIFY = &H4000&
    CSIDL_FLAG_MASK = &HFF00&
    CSIDL_FLAG_PFTI_TRACKTARGET = CSIDL_FLAG_DONT_VERIFY
    CSIDL_FONTS = &H14&
    CSIDL_HISTORY = &H22&
    CSIDL_INTERNET = &H1&
    CSIDL_INTERNET_CACHE = &H20&
    CSIDL_LOCAL_APPDATA = &H1C&
    CSIDL_MYPICTURES = &H27&
    CSIDL_NETHOOD = &H13&
    CSIDL_NETWORK = &H12&
    CSIDL_PERSONAL = &H5&
    CSIDL_PRINTERS = &H4&
    CSIDL_PRINTHOOD = &H1B&
    CSIDL_PROFILE = &H28&
    CSIDL_PROGRAM_FILES = &H26&
    CSIDL_PROGRAM_FILES_COMMON = &H2B&
    CSIDL_PROGRAM_FILES_COMMONX86 = &H2C&
    CSIDL_PROGRAM_FILESX86 = &H2A&
    CSIDL_PROGRAMS = &H2&
    CSIDL_RECENT = &H8&
    CSIDL_SENDTO = &H9&
    CSIDL_STARTMENU = &HB&
    CSIDL_STARTUP = &H7&
    CSIDL_SYSTEM = &H25&
    CSIDL_SYSTEMX86 = &H29&
    CSIDL_TEMPLATES = &H15&
    CSIDL_WINDOWS = &H24&
End Enum

'//dialog type
Public Enum oFileDialogType
    oFileDialogOpen = 1
    oFileDialogSaveAs
    oFileDialogFilePicker
    oFileDialogFolderPicker
End Enum

'//dialog view
Public Enum oFileDialogView
    oFileDialogViewList = 1
    oFileDialogViewDetails
    oFileDialogViewProperties
    oFileDialogViewPreview
    oFileDialogViewThumbnail
    oFileDialogViewLargeIcons
    oFileDialogViewSmallIcons
    oFileDialogViewWebView
    oFileDialogViewTiles
End Enum

'//alarmlevel for logger
Public Enum LEVEL_FLAG_STRING
    LEVEL_WARNING
    LEVEL_ALERT
    LEVEL_NOTICE
    LEVEL_INFOMATION
End Enum

Public Enum LOGICAL_FLAG
    LOGICAL_FLAG_0 = 0
    LOGICAL_FLAG_1 = 1
    LOGICAL_FLAG_2 = 2
    LOGICAL_FLAG_4 = 4
End Enum

'//permission-table
Public Type GROUPE_PERMISSION
    strUserName As String
    strUserRealName As String
    blnTeamLeader As Boolean
    blnDeputyTeamLeader As Boolean
    blnGroup01 As Boolean
    blnGroup02 As Boolean
    blnGroup03 As Boolean
    blnGroup04 As Boolean
    blnGroup05 As Boolean
    blnGroup06 As Boolean
    blnGroup07 As Boolean
    blnGroup08 As Boolean
    blnGroup09 As Boolean
    blnGroup10 As Boolean
    blnGroup11 As Boolean
    blnGroup12 As Boolean
    blnGroup13 As Boolean
    blnGroup14 As Boolean
    blnGroup15 As Boolean
    blnGroup16 As Boolean
    blnGroup17 As Boolean
    blnGroup18 As Boolean
    blnGroup19 As Boolean
    blnGroup20 As Boolean
End Type

'//filenumber BIZ-files
Public Enum FILE_NUMBER
    FILE_PERSONL_BIZ
    FILE_CENTRAL_BIZ
End Enum

'//dsetnumbers in biz-files
Public Enum BIZ_DSET
    DS_PERSONL_SECURITY_PROGRAM_VERSION = 4
    DS_PERSONL_SECURITY_PROGRAM_NAME = 6
    DS_PERSONL_SECURITY_SERIAL_NUMBER = 7
    DS_PERSONL_USER_START = 11
    DS_PERSONL_PHASES_START = 31: DS_PERSONL_PHASES_END = 90
    DS_PERSONL_LANGUAGE = 91
    DS_PERSONL_CLEAN_FOLDER = 92
    DS_PERSONL_TOOL_FIRST_START = 93
    DS_PERSONL_BACKSPACE_COLUMN = 94
    DS_PERSONL_OWNER_TELEPHONNUMBER = 95
    DS_PERSONL_MAILSYSTEM = 96
    DS_PERSONL_OWNER_OU = 97
    DS_PERSONL_OWNER_NAME = 98
    DS_PERSONL_MAIL_COLUMN = 99
    DS_PERSONL_START_SHEET = 100
    DS_PERSONL_PROJECT_PATH = 101
    DS_PERSONL_PROGNOSIS_PATH = 102
    DS_PERSONL_BACKUP_PATH = 103
    DS_PERSONL_SERIALLETTER_TEMPLATE_PATH = 104
    DS_PERSONL_CURRENT_VIEW_PATH = 105
    DS_PERSONL_MS_PROJECT_PATH = 106
    DS_PERSONL_CENTRAL_BIZ_FILE_PATH = 107
    DS_PERSONL_SAP_FILE_PATH = 108
    DS_PERSONL_MULTIPROJECT_PATH = 109
    DS_PERSONL_PROJECTPICTURE_PATH = 110
    DS_PERSONL_CUSTOMER_VIEW_START = 111: DS_PERSONL_CUSTOMER_VIEW_END = 130
    DS_PERSONL_SELECTION = 131 '131-150~20 Datensätze
    DS_PERSONL_PRICELIST_PATH = 151
    DS_PERSONL_TEMPLATE_PATH = 152
    DS_PERSONL_MODULE_PATH = 153
    DS_PERSONL_RESSOURCES_PATH = 154
    DS_PERSONL_SERIALLETTER_PATH = 155
    DS_PERSONL_ARCHIVE_PATH = 156
    DS_PERSONL_DEVELOPMENT_PATH = 157
    DS_PERSONL_C_PATH = 158
    DS_PERSONL_D_PATH = 159
    DS_PERSONL_E_PATH = 160
    DS_PERSONL_PRICELIST = 161 '161-180~20 Datensätze
    DS_PERSONL_AFTER_LOAD = 181
    DS_PERSONL_ICON = 182
    DS_PERSONL_EXPLORER_SORT = 183
    DS_PERSONL_EXPLORER_SELECTION_START = 191: DS_PERSONL_EXPLORER_SELECTION_END = 210
    DS_PERSONL_MASTER_VIEW_SINGLE = 211
    DS_PERSONL_MASTER_VIEW_MULTI = 212
    DS_PERSONL_MASTER_VIEW_CUBE = 213
    DS_PERSONL_MASTER_VIEW_RESSOURCE = 214
    DS_PERSONL_MASTER_VIEW_DEVELOPMENT = 215
    DS_PERSONL_SEARCH_CTRL_G = 216
    DS_PERSONL_SEARCH_CTRL_B = 217
    DS_PERSONL_SELECT_CTRL_N = 218
    DS_PERSONL_SELECT_CTRL_J = 219
    DS_PERSONL_SELECT_CTRL_I = 220
    DS_PERSONL_AUTOFILTER_RED = 221
    DS_PERSONL_SET = 231 '231-250~20 Datensätze
    DS_PERSONL_MPM_SELECTION_START = 251: DS_PERSONL_MPM_SELECTION_END = 270 '~20 Datensätze
    DS_PERSONL_DATABASE_VIEW_START = 300: DS_PERSONL_DATABASE_VIEW_END = 599
    DS_PERSONL_USER_END = 800
    
    DS_CENTRAL_KEYFIGURES_USER = 801
    DS_CENTRAL_IMPORT_REVERENCE_START = 1101: DS_CENTRAL_IMPORT_REVERENCE_END = 1120
    DS_CENTRAL_PERMIT_SIMULATION = 1121
    DS_CENTRAL_PASSWORDINTERFACE = 1122
    DS_CENTRAL_TESTENVIRONMENT = 1123
    DS_CENTRAL_SHEETPROTECT = 1126
    DS_CENTRAL_FILEWRITEPROTECT = 1127
    DS_CENTRAL_GROUP_PERMISSION_AKTIVE = 1129
    DS_CENTRAL_SOURCEFILE_INTO_HISTORYFOLDER = 1130
    DS_CENTRAL_CREATE_BACKUP_FILE = 1131
    DS_CENTRAL_OPEN_AND_SAVE_ONLY_SAME_DRIVE = 1132
    DS_CENTRAL_SUPPRESS_MAILMESSAGE = 1133
    DS_CENTRAL_GROUP_PERMISSION_START = 1151: DS_CENTRAL_GROUP_PERMISSION_END = 1400
    DS_CENTRAL_KEYFIGURES_PBF = 1401 '-1700
    DS_CENTRAL_PRICELIST = 1801 '-1820
End Enum

'//permission-state
Public Enum PERMISSION_GROUP
    PE_GROUP_A = &H1&
    PE_GROUP_B = &H2&
    PE_GROUP_C = &H4&
    PE_GROUP_D = &H8&
    PE_GROUP_E = &H10&
    PE_GROUP_F = &H20&
    PE_GROUP_G = &H40&
    PE_GROUP_H = &H80&
    PE_GROUP_I = &H100&
    PE_GROUP_J = &H200&
    PE_GROUP_K = &H400&
    PE_GROUP_L = &H800&
    PE_GROUP_M = &H1000&
    PE_GROUP_N = &H2000&
    PE_GROUP_O = &H4000&
    PE_GROUP_P = &H8000&
    PE_GROUP_Q = &H10000
    PE_GROUP_R = &H20000
    PE_GROUP_S = &H40000
    PE_GROUP_T = &H80000
    PE_GROUP_0 = &H100000
End Enum

'//mailflag
Public Enum MAIL_FLAG
    MAIL_PROJECT_IDEE = 1
    MAIL_PROJECT_IDEE_RELASED = 2
    MAIL_PROJECT_IDEE_STOPED = 4
    MAIL_PROJECT_RELEASED = 8
    MAIL_PROJECT_STOPED = 16
    MAIL_PROJECT_END = 32
    MAIL_PROJECT_SAP_UPDATE = 64
End Enum

'//filesearch-class
Public Enum SORT_BY
    SORT_BY_NONE
    SORT_BY_NAME
    SORT_BY_PATH
    SORT_BY_SIZE
    SORT_BY_LAST_ACCESS
    SORT_BY_LAST_MODIFY
    SORT_BY_DATE_CREATE
End Enum

'//filesearch-class
Public Enum SORT_ORDER
    SORT_ORDER_ASCENDING
    SORT_ORDER_DESCENDING
End Enum

'//stamp character
Public Enum STAMP_CHARACTER
    STAMP_CHARACTER_TOOL
    STAMP_CHARACTER_PROJECT
    STAMP_CHARACTER_PROGNOSIS
    STAMP_CHARACTER_CURRENT_VIEW
    STAMP_CHARACTER_EXPORT_MENU
    STAMP_CHARACTER_EXPORT_TEMPLATE
    STAMP_CHARACTER_EXPORT_NODE
    STAMP_CHARACTER_EXPORT_KEYFIGURES
    STAMP_CHARACTER_EXPORT_CUSTOMER
    STAMP_CHARACTER_PRICE_LIST
    STAMP_CHARACTER_MODUL ' Module für Projekt (zusätzliches "Reinladen")
    STAMP_CHARACTER_BASIC_LOAD ' Grundlasten
    STAMP_CHARACTER_AVAILABILITY ' Verfügbarkeit
    STAMP_CHARACTER_TEMPLATE ' Volagen für Projekte (mit Version 0 und ohne Projektname laden)
    STAMP_CHARACTER_DELETE_LIST ' Löschliste für Projekte
    STAMP_CHARACTER_EXPORT_SYSTEM_DECLARATION ' Kundenspezifische Systemdeklarationen
    STAMP_CHARACTER_EXPORT_KEYFIGURES_DECLARATION ' Kundenspezifische Bezeichnung der Projektkennzahlen
    STAMP_CHARACTER_EXPORT_WORKFLOW ' Kundenspezifische Workflowtabelle
End Enum

'//stamp term
Public Enum STAMP_ITEM
    STAMP_ITEM_INDEX ' 0 ~ STAMP_CHARACTER
    STAMP_ITEM_CUSTOMER_NAME ' 1
    STAMP_ITEM_TEMPLATE_TYPE ' 2
    STAMP_ITEM_TEMPLATE_VERSION ' 3
    STAMP_ITEM_TOOL_VERSION ' 4
    STAMP_ITEM_TOOL_RELEASE ' 5
    STAMP_ITEM_CONTROLLING_METHOD ' 6
    STAMP_ITEM_PROJECT_IS_STRATEGIC ' 7
    STAMP_ITEM_ACTUAL_YEAR ' 8
    STAMP_ITEM_VALIDATION_LIST ' 9
    STAMP_ITEM_PROJECT_CHARACTER ' 10
    STAMP_ITEM_PRICE_LIST_NUMBER ' 11
    STAMP_ITEM_USERSTAMP_START ' Hier beginnen die Stempel aus dem Template
End Enum

'//filesearch-class file
Public Type FILE_INFO
    strFilename As String
    strPath As String
    lngSize As Long
    dtmLastAccess As Date
    dtmLastModify As Date
    dtmDateCreate As Date
End Type

'//filesearch-class folder
Public Type FOLDER_INFO
    strFolderName As String
    strPath As String
    lngStructurDeep As Long
End Type

Public Enum TEMPLATE_ROW
    TEMPLATE_ROW_COUNT = 100
    TEMPLATE_ROW_EVM_VIEW_START = 101
    TEMPLATE_ROW_EVM_VIEW_END = 120
    TEMPLATE_ROW_HEADER_START = 121: TEMPLATE_ROW_HEADER_END = 127
    TEMPLATE_ROW_PLANNING_METHOD_START = 128: TEMPLATE_ROW_PLANNING_METHOD_END = 139
    TEMPLATE_ROW_NAMES = 152
    TEMPLATE_ROW_STATUSBAR = 153
    TEMPLATE_ROW_HELP = 154
    TEMPLATE_ROW_CUBE_NOT_FORMULA = 155
    TEMPLATE_ROW_CONTROL_MAX_WARNING = 156
    TEMPLATE_ROW_CONTROL_MIN_WARNING = 157
    TEMPLATE_ROW_CONTROL_MAX_ALERT = 158
    TEMPLATE_ROW_CONTROL_MIN_ALERT = 159
    TEMPLATE_ROW_LOAD_FROM_PROJECT = 160
    TEMPLATE_ROW_LOAD_FROM_KEYFIGURES = 161
    TEMPLATE_ROW_LOAD_CUSTOMIZED = 162
    TEMPLATE_ROW_PUSH_OVERWRITE_KEYFIGURES_FORMULA = 163
    TEMPLATE_ROW_DEPENDENT_PUSH = 164
    TEMPLATE_ROW_DEVELOPMENT_WRITE = 165
    TEMPLATE_ROW_PUSH = 187
    TEMPLATE_ROW_VIEW_PERMISSION = 197
    TEMPLATE_ROW_STAMP_ITEM = 198
    TEMPLATE_ROW_STAMP_TYPE = 199
    TEMPLATE_ROW_COPY_START = 200: TEMPLATE_ROW_COPY_END = 209
    TEMPLATE_ROW_CUSTOM_VIEW_FIRST = 220: TEMPLATE_ROW_CUSTOM_VIEW_LAST = 239
End Enum

Public Enum PROTECT_KEY
    PROTECT_KEY_EMPTY
    PROTECT_KEY_PASS
    PROTECT_KEY_ADMIN
End Enum

'// controlling method
Public Enum CONTROLLING_METHOD
    CONTROLLING_METHOD_PROJECT = 1 '// single project management
    CONTROLLING_METHOD_PROGNOSE = 2 '// single prognosis
    CONTROLLING_METHOD_CUBE = 3 '// multi cube
End Enum

'//permission-attribute for action from menubar
Public Enum SHEET_ATTRIBUTE
    SHEET_ATTRIBUTE_NOTHING = &H0& ' keine Aktion durchführen
    SHEET_ATTRIBUTE_AUTOFILTER = &H1& ' Autofilter setzten und löschen
    SHEET_ATTRIBUTE_PASTE = &H2& ' Einfügen - Strg+V
    SHEET_ATTRIBUTE_SELECTION = &H4& ' Selection aufnehmen und abspielen
    SHEET_ATTRIBUTE_SET = &H8& ' Set aufnehmen und abspielen
    SHEET_ATTRIBUTE_QUICKSET = &H10& ' Quickset starten
    SHEET_ATTRIBUTE_COPY = &H20& ' Copy-Programm starten
    SHEET_ATTRIBUTE_VIEW = &H40& ' View auswählen
    SHEET_ATTRIBUTE_EXPORT = &H80& ' Tabelle nach Excel exportieren (speichern/mailen)
    SHEET_ATTRIBUTE_CONTEXT_MENU = &H100& ' Spezielles Contextmenü - normal = Stichtag einstellen
    SHEET_ATTRIBUTE_AUTOFIT_TEMPLAT = &H200& ' Autofit nach Angaben im Template
    SHEET_ATTRIBUTE_AUTOFIT_NORMAL = &H400& ' Autofit Excelstandard
    SHEET_ATTRIBUTE_CHANGE_PLANNING_METHOD = &H800& ' Planungsmethode wechseln
    SHEET_ATTRIBUTE_DATABASE = &H1000& ' Tabelle ist eine Datenbank
    SHEET_ATTRIBUTE_WINDOW_SHEET = &H2000& ' Tabelle hat Fenster
    SHEET_ATTRIBUTE_SORT = &H4000& ' Tabelle sortieren
    SHEET_ATTRIBUTE_SEARCH = &H8000& ' Tabelle durchsuchen
    SHEET_ATTRIBUTE_DOUBLE_ENTRY_SEARCH = &H10000 ' Tabelle nach doppelten Einträgen durchsuchen
    SHEET_ATTRIBUTE_MAIN_DATABASE = &H20000 ' Tabelle ist eine Haupt-Datenbank die automatisch geladen wird
    SHEET_ATTRIBUTE_TUNING = &H40000 ' Formeln der Tabelle werden durch Tuning auskommentiert
    SHEET_ATTRIBUTE_KEYDATE_MONTHLY = &H80000 ' Stichtag wird nur monatsweise eingestellt
    SHEET_ATTRIBUTE_DATABASE_OPTIONAL = &H100000 ' Datenbank nur optional laden (wenn Datei gefunden)
    SHEET_ATTRIBUTE_CALL_ACTIVATE_PROCEDUR = &H200000 ' Beim aktivieren Parameterprozedur aufrufen
    SHEET_ATTRIBUTE_DATABASE_ANNUAL_ACCOUNTS = &H400000 ' Diese Datenbank muss beim Jahresabschluss geladen sein (aber keine andere)
End Enum

'//names in "Stati_Projekt" - sheet
Public Const PROJECT_STATUS_NUMBER = "Status_Project_Number"
Public Const PROJECT_STATUS_STATUS = "Status_Project_Status"
Public Const PROJECT_STATUS_FLAG = "Status_Project_Flag"
Public Const PROJECT_STATUS_OWNER = "Status_Project_Owner"
Public Const PROJECT_STATUS_PERMISSION = "Status_Project_Permission"
Public Const PROJECT_STATUS_GET_IDEA = "Status_Project_Get_Idea"
Public Const PROJECT_STATUS_PUT_IDEA = "Status_Project_Put_Idea"
Public Const PROJECT_STATUS_GET_APPLICATION = "Status_Project_Get_Application"
Public Const PROJECT_STATUS_PUT_APPLICATION = "Status_Project_Put_Application"

'//get - put states in "Stati_Projekt" - sheet
Public Const GET_PUT_STATUS_NOTHING = "Nothing"
Public Const GET_PUT_STATUS_KEY_FIGURES = "Key_Figures"
Public Const GET_PUT_STATUS_FROZEN = "Frozen"

'//names in template
Public Const TEMPLATE_NAME_TASK_ID = "Task_ID"
Public Const TEMPLATE_NAME_PROJECT_VERSION = "Current_Interface_Version"
Public Const TEMPLATE_NAME_PROJECT_TYPE = "Project_Type"
Public Const TEMPLATE_NAME_PROJECT_NAME_CUBE = "Project_Name_Cube"
Public Const TEMPLATE_NAME_PROCESS_TYPE = "Process_Type"
Public Const TEMPLATE_NAME_PLANNING_METHODE = "Planning_Method_Project"
Public Const TEMPLATE_NAME_PROJECT_PHASE = "Project_Phase"
Public Const TEMPLATE_NAME_PROJECT_MODUL = "Project_Modul"
Public Const TEMPLATE_NAME_PROJECT_WORK_PACKAGE = "Project_Work_Package"
Public Const TEMPLATE_NAME_ANALYSIS_DATE = "Key_Date"
Public Const TEMPLATE_NAME_UPDATE = "Update"
Public Const TEMPLATE_NAME_PROJECT_PATH = "Project_Path"
Public Const TEMPLATE_NAME_DOCUMENTS = "Documents"
Public Const TEMPLATE_NAME_OBLIGATION_TO_REPORT = "Obligation_To_Report"
Public Const TEMPLATE_NAME_AUTOMATIC_MAIL = "Auto_Mail"
Public Const TEMPLATE_NAME_MANUAL_MAIL = "Manu_Mail"
Public Const TEMPLATE_NAME_MAILADDRESS = "Mailaddress"
Public Const TEMPLATE_NAME_CHANGE_OF_PLAN = "Change_Of_Plan"
Public Const TEMPLATE_NAME_DELETE_FLAG = "Delete_Flag"
Public Const TEMPLATE_NAME_ANALYSIS_RELEVANT = "Analysis_Relevant"
Public Const TEMPLATE_NAME_MARKER = "ToDo_Flag"
Public Const TEMPLATE_NAME_REPORT_LOOP = "Report_Loop"
Public Const TEMPLATE_NAME_PSP_ELEMENT = "PSP_Element"
Public Const TEMPLATE_NAME_PROCESS_NUMBER = "Project_Number"
Public Const TEMPLATE_NAME_SAP_PROFITCENTER = "SAP_Profitcenter"
Public Const TEMPLATE_NAME_REVISION_NUMBER = "Project_ID"
Public Const TEMPLATE_NAME_COMPANY = "Company"
Public Const TEMPLATE_NAME_PROJECT_DIRECTOR = "Project_Director"
Public Const TEMPLATE_NAME_ISSUER = "Issuer"
Public Const TEMPLATE_NAME_REQUESTING_DEPARTMENT = "Requesting_Department"
Public Const TEMPLATE_NAME_NAME_REQUESTOR = "Name_Requestor"
Public Const TEMPLATE_NAME_RESPONSIBLE_DEPARTMENT = "Responsible_Department"
Public Const TEMPLATE_NAME_NAME_RESPONSIBLE_PERSON = "Name_Responsible_Person"
Public Const TEMPLATE_NAME_REQUESTING_COST_CENTER = "Requesting_Cost_Center"
Public Const TEMPLATE_NAME_REQUESTING_PROFIT_CENTER = "Requesting_Profit_Center"
Public Const TEMPLATE_NAME_MAIN_COMPONENT = "Main_Component"
Public Const TEMPLATE_NAME_RESPONSIBLE_COST_CENTER = "Responsible_Cost_Center"
Public Const TEMPLATE_NAME_WORKFLOW_CHANGE_DATE = "Workflow_Change_Date"
Public Const TEMPLATE_NAME_WORKFLOW = "Workflow"
Public Const TEMPLATE_NAME_DETAILLED_PROJECT_IDEA = "Detailled_Project_Idea"
Public Const TEMPLATE_NAME_OBLIGATION_TO_PROJECT = "Obligation_To_Project"
Public Const TEMPLATE_NAME_OPERATIVE_PRESSURE = "Operative_Pressure"
Public Const TEMPLATE_NAME_ASSET_CATEGORY = "Asset_Category"
Public Const TEMPLATE_NAME_PART_CONSULT = "Part_Consult"
Public Const TEMPLATE_NAME_PART_IT = "Part_IT"
Public Const TEMPLATE_NAME_STAFF_IT = "Staff_IT"
Public Const TEMPLATE_NAME_TYPE_IT = "Type_IT"
Public Const TEMPLATE_NAME_PLANNING_SESSION = "Planning_Session"
Public Const TEMPLATE_NAME_CONTAIN_IN_BUDGET = "Contain_In_Budget"
Public Const TEMPLATE_NAME_PRIORITY = "Priority"
Public Const TEMPLATE_NAME_AIM_OF_INVESTMENT = "Aim_Of_Investment"
Public Const TEMPLATE_NAME_PROCESS_SHORT_DESCRIPTION = "Process_Short_Description"
Public Const TEMPLATE_NAME_PROJECT_NAME = "Project_Name"
Public Const TEMPLATE_NAME_PLAN_START_DATE = "Plan_Start"
Public Const TEMPLATE_NAME_PLAN_END_DATE = "Plan_End"
Public Const TEMPLATE_NAME_PLAN_DURATION = "Plan_Duration"
Public Const TEMPLATE_NAME_PLAN_WORKING_HOURS = "Plan_Working_Hours"
Public Const TEMPLATE_NAME_PROJECT_EXPENDITURE = "Project_Expenditure"
Public Const TEMPLATE_NAME_PROJECT_INVESTMENT = "Project_Investment"
Public Const TEMPLATE_NAME_SUM_PLAN_EXPENDITURE_AND_INVESTMENT = "Sum_Plan_Expenditure_And_Investment"
Public Const TEMPLATE_NAME_EXPENDITURE_PREVIOUS_YEAR = "Expenditure_Previous_Year"
Public Const TEMPLATE_NAME_EXPENDITURE_RESIDUAL_VALUE_AFTER_KEYDATE = "Expenditure_Residual_Value_After_Keydate"
Public Const TEMPLATE_NAME_INVESTMENT_PREVIOUS_YEAR = "Investment_Previous_Year"
Public Const TEMPLATE_NAME_INVESTMENT_RESIDUAL_VALUE_AFTER_KEYDATE = "Investment_Residual_Value_After_Keydate"
Public Const TEMPLATE_NAME_EXPENDITURE_FOLLOWING_YEAR = "Expenditure_Following_Year"
Public Const TEMPLATE_NAME_INVESTMENT_FOLLOWING_YEAR = "Investment_Following_Year"
Public Const TEMPLATE_NAME_PREDECESSOR = "Predecessor"
Public Const TEMPLATE_NAME_SUCCESSOR = "Successor"
Public Const TEMPLATE_NAME_EARLIEST_START = "Earliest_Start"
Public Const TEMPLATE_NAME_DELIVERY_DATE = "Delivery_Date"
Public Const TEMPLATE_NAME_LATEST_END = "Latest_End"
Public Const TEMPLATE_NAME_COMPLEXITY = "Complexity"
Public Const TEMPLATE_NAME_ACTUAL_START_DATE = "Actual_Start"
Public Const TEMPLATE_NAME_ACTUAL_END_DATE = "Actual_End"
Public Const TEMPLATE_NAME_ACTUAL_DURATION = "Actual_Duration"
Public Const TEMPLATE_NAME_ACTUAL_WORKING_HOURS = "Actual_Working_Hours"
Public Const TEMPLATE_NAME_ACTUAL_EXPENDITURE = "Actual_Expenditure"
Public Const TEMPLATE_NAME_ACTUAL_INVESTMENT = "Actual_Investment"
Public Const TEMPLATE_NAME_DIFFERING_EXPENDITURE = "Differing_Expenditure"
Public Const TEMPLATE_NAME_DIFFERING_INVESTMENT = "Differing_Investment"
Public Const TEMPLATE_NAME_SUM_ACTUAL_EXPENDITURE_AND_INVESTMENT = "Sum_Actual_Expenditure_And_Investment"
Public Const TEMPLATE_NAME_TOTAL_CHARGES_SAP = "Total_Charges_SAP"
Public Const TEMPLATE_NAME_SAP_STATUS = "SAP_Status"

Public Const TEMPLATE_NAME_TOTAL_ORIGINAL_BUDGET_EXPENSE = "Tot._Org._Budget_Exp"
Public Const TEMPLATE_NAME_TOTAL_ORIGINAL_BUDGET_INVEST = "Tot._Org._Budget_Inv."
Public Const TEMPLATE_NAME_TOTAL_VALUE_ACTUAL_BUDGET_EXPENSE = "Tot._Val._Act._Budget_Exp."
Public Const TEMPLATE_NAME_TOTAL_VALUE_ACTUAL_BUDGET_INVEST = "Tot._Val._Act._Budget_Inv."
Public Const TEMPLATE_NAME_TOTAL_PLAN_EXPENSE = "Tot._Plan_Exp."
Public Const TEMPLATE_NAME_TOTAL_PLAN_INVEST = "Tot._Plan_Inv."
Public Const TEMPLATE_NAME_ACCUMULATE_ACTUAL_EXPENSE = "Acc._Act._Exp."
Public Const TEMPLATE_NAME_ACCUMULATE_ACTUAL_INVEST = "Acc._Act._Inv."
Public Const TEMPLATE_NAME_ACCUMULATE_ADVANCE_EXPENSE = "Acc._Adv._Exp."
Public Const TEMPLATE_NAME_ACCUMULATE_ADVANCE_INVEST = "Acc._Adv._Inv."
Public Const TEMPLATE_NAME_TOTAL_ORDER_LIABILITY_EXPENSE = "Tot._Order_Lib._Exp."
Public Const TEMPLATE_NAME_TOTAL_ORDER_LIABILITY_INVEST = "Tot._Order_Lib._Inv."
Public Const TEMPLATE_NAME_TOTAL_BANF_LIABILITY_EXPENSE = "Tot._BANF_Lib._Exp."
Public Const TEMPLATE_NAME_TOTAL_BANF_LIABILITY_INVEST = "Tot._BANF_Lib._Inv."

Public Const TEMPLATE_NAME_TOTAL_ORIGINAL_BUDGET_EXPENSE_ACTUAL_YEAR = "lfd_Tot._Org._Budget_Exp"
Public Const TEMPLATE_NAME_TOTAL_ORIGINAL_BUDGET_INVEST_ACTUAL_YEAR = "lfd_Tot._Org._Budget_Inv."
Public Const TEMPLATE_NAME_TOTAL_VALUE_ACTUAL_BUDGET_EXPENSE_ACTUAL_YEAR = "lfd_Tot._Val._Act._Budget_Exp."
Public Const TEMPLATE_NAME_TOTAL_VALUE_ACTUAL_BUDGET_INVEST_ACTUAL_YEAR = "lfd_Tot._Val._Act._Budget_Inv."
Public Const TEMPLATE_NAME_TOTAL_PLAN_EXPENSE_ACTUAL_YEAR = "lfd_Tot._Plan_Exp."
Public Const TEMPLATE_NAME_TOTAL_PLAN_INVEST_ACTUAL_YEAR = "lfd_Tot._Plan_Inv."
Public Const TEMPLATE_NAME_ACCUMULATE_ACTUAL_EXPENSE_ACTUAL_YEAR = "lfd_Acc._Act._Exp."
Public Const TEMPLATE_NAME_ACCUMULATE_ACTUAL_INVEST_ACTUAL_YEAR = "lfd_Acc._Act._Inv."
Public Const TEMPLATE_NAME_ACCUMULATE_ADVANCE_EXPENSE_ACTUAL_YEAR = "lfd_Acc._Adv._Exp."
Public Const TEMPLATE_NAME_ACCUMULATE_ADVANCE_INVEST_ACTUAL_YEAR = "lfd_Acc._Adv._Inv."
Public Const TEMPLATE_NAME_TOTAL_ORDER_LIABILITY_EXPENSE_ACTUAL_YEAR = "lfd_Tot._Order_Lib._Exp."
Public Const TEMPLATE_NAME_TOTAL_ORDER_LIABILITY_INVEST_ACTUAL_YEAR = "lfd_Tot._Order_Lib._Inv."
Public Const TEMPLATE_NAME_TOTAL_BANF_LIABILITY_EXPENSE_ACTUAL_YEAR = "lfd_Tot._BANF_Lib._Exp."
Public Const TEMPLATE_NAME_TOTAL_BANF_LIABILITY_INVEST_ACTUAL_YEAR = "lfd_Tot._BANF_Lib._Inv."

Public Const TEMPLATE_NAME_BENCHMARK_RECEIVABLE = "Dep_Strategic_Traffic_Light"
Public Const TEMPLATE_NAME_OTHER_STRATEGIES = "Strategic_20"
Public Const TEMPLATE_NAME_STRATEGIC_1 = "Strategic_01"
Public Const TEMPLATE_NAME_STRATEGIC_2 = "Strategic_02"
Public Const TEMPLATE_NAME_STRATEGIC_3 = "Strategic_03"
Public Const TEMPLATE_NAME_STRATEGIC_4 = "Strategic_04"
Public Const TEMPLATE_NAME_STRATEGIC_5 = "Strategic_05"
Public Const TEMPLATE_NAME_STRATEGIC_6 = "Strategic_06"
Public Const TEMPLATE_NAME_STRATEGIC_7 = "Strategic_07"
Public Const TEMPLATE_NAME_STRATEGIC_8 = "Strategic_08"
Public Const TEMPLATE_NAME_IT_RESSOURCE_COSTS = "IT_Ressource_Costs"
Public Const TEMPLATE_NAME_EXTERN_CONSUTANS_COSTS = "Extern_Consutans_Costs"
Public Const TEMPLATE_NAME_COUNT_IT_RESSOURCE = "Count_IT_Ressource"
Public Const TEMPLATE_NAME_COUNT_EXTERN_CONSUTANS = "Count_Extern_Consutans"
Public Const TEMPLATE_NAME_FLEXIBILITY_IT_APPOINTMENT = "Flexibility_IS"
Public Const TEMPLATE_NAME_RUN_COSTS_PER_YEAR = "Run_Costs_Per_Year"
Public Const TEMPLATE_NAME_RATIO = "Ratio"
Public Const TEMPLATE_NAME_REVENUES = "Revenues"
Public Const TEMPLATE_NAME_IT_RESSOURCES_OK = "Qualifyer_01"
Public Const TEMPLATE_NAME_CONSULTANTS_DEDICATION_OK = "Qualifyer_02"
Public Const TEMPLATE_NAME_PROFITABILITY_OK = "Qualifyer_03"
Public Const TEMPLATE_NAME_STRATEGIC_CONTRIBUTION_OK = "Qualifyer_04"
Public Const TEMPLATE_NAME_STATUS_AUTOMAIL = "Status_Automail"
Public Const TEMPLATE_NAME_TIME_CONSUMPTION = "Time_Consumption"
Public Const TEMPLATE_NAME_BUDGET_CONSUMPTION = "Budget_Consumption"
Public Const TEMPLATE_NAME_CHARGE_BALANCE_POINT = "Charge_Balance_Point"
Public Const TEMPLATE_NAME_START_DELAY = "Start_Delay"
Public Const TEMPLATE_NAME_END_DELAY = "End_Delay"
Public Const TEMPLATE_NAME_START_CONTROL = "Start_Control"

Public Const TEMPLATE_NAME_ROI = "ROI"
Public Const TEMPLATE_NAME_CRITICALITY = "Critical_Project"
Public Const TEMPLATE_NAME_NEED_IT_OR_CONSULTANS = "Need_IT_Or_Consultans"
Public Const TEMPLATE_NAME_CONSULTANS_PER_DAY = "Consultans_Per_Day"
Public Const TEMPLATE_NAME_PROJECT_VALUE_PER_DAY = "Project_Value_Per_Day"
Public Const TEMPLATE_NAME_IT_RESSOURCES_PER_DAY = "IT_Ressources_Per_Day"
Public Const TEMPLATE_NAME_QUICK_INFO = "Quick_Info"
Public Const TEMPLATE_NAME_TEXT_1 = "P_Text_1"
Public Const TEMPLATE_NAME_TEXT_2 = "P_Text_2"
Public Const TEMPLATE_NAME_TEXT_3 = "P_Text_3"
Public Const TEMPLATE_NAME_TEXT_4 = "P_Text_4"
Public Const TEMPLATE_NAME_TEXT_5 = "P_Text_5"
Public Const TEMPLATE_NAME_TEXT_6 = "P_Text_6"
Public Const TEMPLATE_NAME_TEXT_7 = "P_Text_7"
Public Const TEMPLATE_NAME_TEXT_8 = "P_Text_8"
Public Const TEMPLATE_NAME_TEXT_9 = "P_Text_9"
Public Const TEMPLATE_NAME_TEXT_10 = "P_Text_10"
Public Const TEMPLATE_NAME_LOG = "Log"
Public Const TEMPLATE_NAME_LAST_CHANGE_USER = "Last_Change_User"
Public Const TEMPLATE_NAME_LAST_CHANGE_DATE = "Last_Change_Date"
Public Const TEMPLATE_NAME_DIFFUSE_SEARCH = "Diffuse_Search"
Public Const TEMPLATE_NAME_DOUBLE_ENTRY = "Double_Entry"
Public Const TEMPLATE_NAME_OR_FILTER = "OR_Filter"
Public Const TEMPLATE_NAME_RESTORE = "Restore"

'//construction
Public Const TEMPLATE_NAME_EXCAVATION_NUMBER_CALC = "Excavation_Number_Calc"
Public Const TEMPLATE_NAME_EXCAVATION_SHAPE_CALC = "Excavation_Shape_Calc"
Public Const TEMPLATE_NAME_EXCAVATION_IDENTIFIER_CALC = "Excavation_Identifier_Calc"
Public Const TEMPLATE_NAME_EXCAVATION_POSITION_NUMBER_CALC = "Excavation_Position_Number_Calc"
Public Const TEMPLATE_NAME_EXCAVATION_UNIT_CALC = "Excavation_Unit_Calc"
Public Const TEMPLATE_NAME_EXCAVATION_DEDUCTION_CALC = "Excavation_Deduction_Calc"
Public Const TEMPLATE_NAME_EXCAVATION_LENGTH_CALC = "Excavation_Length_Calc"
Public Const TEMPLATE_NAME_EXCAVATION_WIDTH_CALC = "Excavation_Width_Calc"
Public Const TEMPLATE_NAME_EXCAVATION_DEPTH_CALC = "Excavation_Depth_Calc"
Public Const TEMPLATE_NAME_EXCAVATION_MULTIPLIER_CALC = "Excavation_Multiplier_Calc"
Public Const TEMPLATE_NAME_EXCAVATION_MASS_CALC = "Excavation_Mass_Calc"
Public Const TEMPLATE_NAME_EXCAVATION_PRICE_PER_UNIT_CALC = "Excavation_Price_Per_Unit_Calc"
Public Const TEMPLATE_NAME_EXCAVATION_SUM_PRICE_CALC = "Excavation_Sum_Price_Calc"
Public Const TEMPLATE_NAME_EXCAVATION_PRICE_LIST_CALC = "Price_List_Calculation"
Public Const TEMPLATE_NAME_EXCAVATION_CUBAGE_DIGGING_CALC = "Excavation_Cubage_Digging_Calc"
Public Const TEMPLATE_NAME_EXCAVATION_CUBAGE_BACKFILL_CALC = "Excavation_Cubage_Backfill_Calc"

Public Const TEMPLATE_NAME_EXCAVATION_NUMBER_MEAS = "Excavation_Number_Meas"
Public Const TEMPLATE_NAME_EXCAVATION_SHAPE_MEAS = "Excavation_Shape_Meas"
Public Const TEMPLATE_NAME_EXCAVATION_IDENTIFIER_MEAS = "Excavation_Identifier_Meas"
Public Const TEMPLATE_NAME_EXCAVATION_POSITION_NUMBER_MEAS = "Excavation_Position_Number_Meas"
Public Const TEMPLATE_NAME_EXCAVATION_UNIT_MEAS = "Excavation_Unit_Meas"
Public Const TEMPLATE_NAME_EXCAVATION_DEDUCTION_MEAS = "Excavation_Deduction_Meas"
Public Const TEMPLATE_NAME_EXCAVATION_LENGTH_MEAS = "Excavation_Length_Meas"
Public Const TEMPLATE_NAME_EXCAVATION_WIDTH_MEAS = "Excavation_Width_Meas"
Public Const TEMPLATE_NAME_EXCAVATION_DEPTH_MEAS = "Excavation_Depth_Meas"
Public Const TEMPLATE_NAME_EXCAVATION_MULTIPLIER_MEAS = "Excavation_Multiplier_Meas"
Public Const TEMPLATE_NAME_EXCAVATION_MASS_MEAS = "Excavation_Mass_Meas"
Public Const TEMPLATE_NAME_EXCAVATION_PRICE_PER_UNIT_MEAS = "Excavation_Price_Per_Unit_Meas"
Public Const TEMPLATE_NAME_EXCAVATION_SUM_PRICE_MEAS = "Excavation_Sum_Price_Meas"
Public Const TEMPLATE_NAME_EXCAVATION_PRICE_LIST_MEAS = "Price_List_Measurement"
Public Const TEMPLATE_NAME_EXCAVATION_CUBAGE_DIGGING_MEAS = "Excavation_Cubage_Digging_Meas"
Public Const TEMPLATE_NAME_EXCAVATION_CUBAGE_BACKFILL_MEAS = "Excavation_Cubage_Backfill_Meas"

Public Const TEMPLATE_NAME_EXCAVATION_NUMBER_OFF = "Excavation_Number_Off"
Public Const TEMPLATE_NAME_EXCAVATION_SHAPE_OFF = "Excavation_Shape_Off"
Public Const TEMPLATE_NAME_EXCAVATION_IDENTIFIER_OFF = "Excavation_Identifier_Off"
Public Const TEMPLATE_NAME_EXCAVATION_POSITION_NUMBER_OFF = "Excavation_Position_Number_Off"

Public Const TEMPLATE_NAME_EXCAVATION_CUSTOMER_PRICE_POS = "Customer_Price_Pos"

Public Const TEMPLATE_NAME_EXCAVATION_UNIT_OFF = "Excavation_Unit_Off"
Public Const TEMPLATE_NAME_EXCAVATION_DEDUCTION_OFF = "Excavation_Deduction_Off"
Public Const TEMPLATE_NAME_EXCAVATION_LENGTH_OFF = "Excavation_Length_Off"
Public Const TEMPLATE_NAME_EXCAVATION_WIDTH_OFF = "Excavation_Width_Off"
Public Const TEMPLATE_NAME_EXCAVATION_DEPTH_OFF = "Excavation_Depth_Off"
Public Const TEMPLATE_NAME_EXCAVATION_MULTIPLIER_OFF = "Excavation_Multiplier_Off"
Public Const TEMPLATE_NAME_EXCAVATION_MASS_OFF = "Excavation_Mass_Off"
Public Const TEMPLATE_NAME_EXCAVATION_PRICE_PER_UNIT_OFF = "Excavation_Price_Per_Unit_Off"
Public Const TEMPLATE_NAME_EXCAVATION_SUM_PRICE_OFF = "Excavation_Sum_Price_Off"
Public Const TEMPLATE_NAME_EXCAVATION_PRICE_LIST_OFF = "Price_List_Offering"
Public Const TEMPLATE_NAME_EXCAVATION_CUBAGE_DIGGING_OFF = "Excavation_Cubage_Digging_Off"
Public Const TEMPLATE_NAME_EXCAVATION_CUBAGE_BACKFILL_OFF = "Excavation_Cubage_Backfill_Off"

Public Const TEMPLATE_NAME_EXCAVATION_NUMBER_SERV = "Excavation_Number_Serv"
Public Const TEMPLATE_NAME_EXCAVATION_SHAPE_SERV = "Excavation_Shape_Serv"
Public Const TEMPLATE_NAME_EXCAVATION_IDENTIFIER_SERV = "Excavation_Identifier_Serv"
Public Const TEMPLATE_NAME_EXCAVATION_POSITION_NUMBER_SERV = "Excavation_Position_Number_Serv"
Public Const TEMPLATE_NAME_EXCAVATION_UNIT_SERV = "Excavation_Unit_Serv"
Public Const TEMPLATE_NAME_EXCAVATION_DEDUCTION_SERV = "Excavation_Deduction_Serv"
Public Const TEMPLATE_NAME_EXCAVATION_LENGTH_SERV = "Excavation_Length_Serv"
Public Const TEMPLATE_NAME_EXCAVATION_WIDTH_SERV = "Excavation_Width_Serv"
Public Const TEMPLATE_NAME_EXCAVATION_DEPTH_SERV = "Excavation_Depth_Serv"
Public Const TEMPLATE_NAME_EXCAVATION_MULTIPLIER_SERV = "Excavation_Multiplier_Serv"
Public Const TEMPLATE_NAME_EXCAVATION_MASS_SERV = "Excavation_Mass_Serv"
Public Const TEMPLATE_NAME_EXCAVATION_PRICE_PER_UNIT_SERV = "Excavation_Price_Per_Unit_Serv"
Public Const TEMPLATE_NAME_EXCAVATION_SUM_PRICE_SERV = "Excavation_Sum_Price_Serv"
Public Const TEMPLATE_NAME_EXCAVATION_PRICE_LIST_SERV = "Price_List_Service"
Public Const TEMPLATE_NAME_EXCAVATION_CUBAGE_DIGGING_SERV = "Excavation_Cubage_Digging_Serv"
Public Const TEMPLATE_NAME_EXCAVATION_CUBAGE_BACKFILL_SERV = "Excavation_Cubage_Backfill_Serv"

'//columns in system-declaration
Public Const SYSTEM_COLUMN_NAME = 1
Public Const SYSTEM_COLUMN_VALUE = 2

'//name in system-declaration
Public Const SYSTEM_NAME_CUSTOMER = "Customer"
Public Const SYSTEM_NAME_TYPE = "Type"
Public Const SYSTEM_NAME_VERSION = "Template Version"
Public Const SYSTEM_NAME_USE_STAMP = "Use_Stamp"
Public Const SYSTEM_NAME_LAST_USER = "Last_User"
Public Const SYSTEM_NAME_LAST_SAVEDATE = "Last_Savedate"
Public Const SYSTEM_NAME_TOOL_START_NETWORK = "Tool_Start_Network"
Public Const SYSTEM_NAME_PROJECT_READ_WRITE_PASSWORD = "Project_Read_Write_Password"
Public Const SYSTEM_NAME_VALIDATION_USED = "Validation_Used"
Public Const SYSTEM_NAME_VALIDATION_FILENAME = "Validation_Filename"
Public Const SYSTEM_NAME_KEYTRANSLATE_USED = "KeyTranslate_Used"
Public Const SYSTEM_NAME_KEYTRANSLATE_FILENAME = "KeyTranslate_Filename"
Public Const SYSTEM_NAME_PRICELIST_KEY = "Price_List_Key_"
Public Const SYSTEM_NAME_PLANNING_METHOD_SINGLE_PROJECT = "Planning_Method_Project"
Public Const SYSTEM_NAME_PLANNING_METHOD_MULTIPROJECT = "Planning_Method_Multiproject"
Public Const SYSTEM_NAME_PLANNING_METHOD_IDEA = "Planning_Method_Idea"
Public Const SYSTEM_NAME_PLANNING_METHOD_MODUL = "Planning_Method_Modul"
Public Const SYSTEM_NAME_PROGNOSE_ACTIVE = "Prognose_Active"
Public Const SYSTEM_NAME_NODE_ACTIVE = "Node_Active"
Public Const SYSTEM_NAME_CALCULATION_ACTIVE = "Calculation_Active"
Public Const SYSTEM_NAME_WORKFLOW_ACTIVE = "Workflow Activ"
Public Const SYSTEM_NAME_LOAD_PRICELIST = "Load_Pricelist"
Public Const SYSTEM_NAME_LEFT_HEADER = "Left_Header"
Public Const SYSTEM_NAME_CENTER_HEADER = "Center_Header"
Public Const SYSTEM_NAME_RIGHT_HEADER = "Right_Header"
Public Const SYSTEM_NAME_LEFT_FOOTER = "Left_Footer"
Public Const SYSTEM_NAME_CENTER_FOOTER = "Center_Footer"
Public Const SYSTEM_NAME_RIGHT_FOOTER = "Right_Footer"
Public Const SYSTEM_NAME_START_MIN_VERSION = "Start_Min_Version"
Public Const SYSTEM_NAME_DEVELOPMENT_READ_WRITE_PASSWORD = "Development_Read_Write_Password"
Public Const SYSTEM_NAME_DATABASE_WRITE_DEVELOPMENT = "Database_Write_Development"
Public Const SYSTEM_NAME_INPUT_READ_WRITE_PASSWORD = "Input_Read_Write_Password"
Public Const SYSTEM_NAME_VALIDATION_WORKFLOW = "Validation_Workflow"
Public Const SYSTEM_NAME_REPORTING_YEAR_ACTIVE = "Reporting_Year_Active"

Public Const MENU_NAME_MAINTENANCE = "Maintenance"

Public Const NAVIAGTION_PROCEDUR = "MENU_Activate_Sheet_By_Name"

'//filename BIZ-files
Public Const CENTRAL_BIZ = "CENTRAL.BIZ"
Public Const CONFIG_BIZ = "\CONFIG.BIZ"
Public Const PERSONL_BIZ = "\PERSONL.BIZ"
Public Const PROPERTY_BIZ = "\FILEPROPERTY.BIZ"
Public Const TEMP_PATH = "\Temp\"

Public Const TEMP_FILE = "Temp"
Public Const PRINT_FILE = "Print"

'//filenem for temporary workbook to create PROPERTY_BIZ
Public Const TEMP_WORKBOOK = "A1B2C3D4.xls"

'//push-log columns
Public Const PUSHLOG_PATH = 1
Public Const PUSHLOG_PROJECTNAME = 2
Public Const PUSHLOG_SUCCESS = 3
Public Const PUSHLOG_DATE_TIME = 4

'//return-value from biz-files ~ true
Public Const TRUE_VALUE = "1"

'//compare fifth entry in config.biz with this value and set trace_flag true or false
Public Const TRACE_FLAG = "TRACE"

'//offset in Tab_Daily_D
Public Const DAILY_CHART_OFFSET = 10

'//das tool ist ein cockpit
Public Const COCKPIT_TOOL = "Cockpit"
Public Const UTILEADS_TOOL = "UtiLeads"

'//names of icon
Public Const ICON_COCKPIT = "frm_Cockpit_Icon"
Public Const ICON_STANDARD = "frm_Show_Controlling_Method"
Public Const ICON_FILTER = "frm_Filter_Icon"

'//reference constans
Public Const KEY_REVERENCE = "Schlüsselreferenz"
Public Const BLIND_REVERENCE = "Reference "

'//filepropertys
'1=Namen der Dateieigenschaft in Windows
'2=Name der Eigenschaft in Excel
Public Const PROPERTY_SUBJECT = "Subject"
Public Const PROPERTY_TITLE = "Title"
Public Const PROPERTY_CATEGORY = "Category"
Public Const PROPERTY_COMMENTS = "Comments"

'//Namen der Commandbar Popups
Public Const COMMANDBAR_CONTROLLING_POPUP = "Popup_Controllingmethod"
Public Const COMMANDBAR_AUTOFILTER_POPUP = "Popup_AutofilterIcon"
Public Const COMMANDBAR_KEYDATE_POPUP = "Popup_Keydate"
Public Const COMMANDBAR_PROJECT = "Context_Project"

'//global class date and time
Public gobjDateTimeClass As clsDateTime

'//suppress mail when workflow-status change
Public gblnSuppress_StatusChange_Mail As Boolean

'//toolflags
Public gblnNoTestVersion As Boolean
Public gstrBlowFishKey As String

'//calendar settings
Public glngFederalState As Long
Public glngTown As Long
Public gblnIsCatholic As Boolean

'//flag for worksheetfunctions
Public gblnVolatile As Boolean

'//actual row for datacard
Public glngLastAddress As Long

'//number of view global
Public gintEVMView As Integer

'//number of actual view global
Public gintActualViewInterface As Integer
Public gintActualViewPrognosis As Integer
Public gintActualViewCube As Integer

'//numer of view for new project and open project
Public gintMasterViewSingle As Integer
Public gintMasterViewMulti As Integer
Public gintMasterViewCube As Integer
Public gintMasterViewRessources As Integer
Public gintMasterViewDevelopment As Integer

'//flag to open project without stamp
Public gblnSaveMode As Boolean

'//flag for update to ignore errors from stamp
Public gblnIngoreStamp As Boolean

'//flag to colored headercell if autofilter is set
Public gblnAutofilter_Red As Boolean

'//rows in Eingabe / Prognose / Cube
Public glngFirstDataRow As Long
Public glngLastHeaderRow As Long
Public glngResultHeaderRow As Long
Public glngFirstHeaderRow As Long

'//flags for loop
Public gblnLoopActive As Boolean
Public gblnLoopNoError As Boolean

'//move old projects into history-folder
Public gblnAutoHistory As Boolean

'//toolname from config.biz only used to generate tool in maitenance
Public gstrToolName As String

'//wird auf true gesetzt wenn eine prozedur abgebrochen wird
Public gblnProc_Abort As Boolean

'//Dateiattribut Readonly wird gesetzt
Public gblnAttributFlag As Boolean

'//Tool liegt auf einem Server
Public gblnServer_Tool As Boolean

'//Projekte Blattschutzkennwort geschützt
Public gblnSheetProtect As Boolean

'//Doppelklich unterdrücken wenn frm_compute angezeigt wird
Public gblnCompute As Boolean

'//create backup when open project
Public gblnCreateBackupfile As Boolean

'//open and save only in same drive
Public gblnOpenAndSaveInSameDrive As Boolean

'//Idee wurde angezeigt und kann gespeichert werden
Public gblnIdeaShow As Boolean
'//Antrag wurde angezeigt und kann gespeichert werden
Public gblnApplicationShow As Boolean

'//Gruppenberechtigung
Public gudtPermission() As GROUPE_PERMISSION

'//Endung der Excelmappen beim speichern
Public gstrExcelExtension As String

'//wird gesetzt wenn der User ein Formular aktiviert
Public gobjFormSheet As Worksheet

'//daily-steps
Public Const DAILY_STEP = 1

Public Const HISTORY_FOLDER = "History"
Public Const QUARANTINE_FOLDER = "Quarantine"
Public Const DEMO_FOLDER = "EVM_Demo"
Public Const BACKUP_FOLDER = "EVM_BackUp"
Public Const PROJECT_FOLDER = "Projects"
Public Const BACKUP_PREFIX = "BackUp_"

Public Const PROGNOSE_ALLOWED = True

Public Const EVM_PASSWORD = "papagei_77"
Public Const EVM_ADMIN = "Admin"

Public Const MAIL_CLIENT_OUTLOOK = "Outlook"
Public Const MAIL_CLIENT_LOTUS = "Lotus Notes"
Public Const MAIL_CLIENT_NOVELL = "Novell GroupWise"

'//Bezeichnung in Spalte Projektart des Templates
Public Const PROJECT_CHARACTER_SINGLE = "SingleProject"
Public Const PROJECT_CHARACTER_MULTI = "MultiProject"
Public Const PROJECT_CHARACTER_MIX = "MixProject"

'//Status der Projektidee
Public Const IDEA_STATUS_IDEA = "Idee"

'//aus CONFIG.BIZ wenn wahr wird das Trac-Log geschrieben
Public gblnTraceFlag As Boolean

'//first datarow in Tab_Figures_Project_Input
Public Const FIGURES_START_ROW = 11

'//path to PERSONL_BIZ.biz
Public gstrPersonl_Path As String

'//icon-object
Public gobjIcon As Object

'//first dset in mod_loop
Public gblnFirst As Boolean

'//passowrd for projects
Public gstrPassProjects As String

'//filenumber for log and error
Public gintFilenumber As Integer

'//filename for log and error
Public gstrlogFile As String

'//developerflag
Public gblnWorkFlag As Boolean

'// Event Flag for FM20 - Controls
Public gblnFM20Flag As Boolean

'//column to select current language
Public glngLanguageColumn As Long

'// für Vergleiche von Zahlen
Public Const CONST_COMPARE_DELTA = 0.1

Public gstrFile As String

Public gintStackCounter As Integer

'//in template is any value manual changed
Public gblnTemplateChange As Boolean

'//in menu is any value manual changed
Public gblnMenuChange As Boolean

'//flag if project is saved
Public gblnSaved As Boolean

Public Blattname_Current_Interface As String

'// planning methods
Public gblnPlanning_Method_Selected As Boolean
Public gstrPlanning_Method As String

'//flag set by explorer value = 1~modul / 2~template / 3~basic load / 4~aviability
Public gintProject_Character As Integer

Public Const PLANNING_METHOD_START_END = "Start-Ende"
Public Const PLANNING_METHOD_START_DURATION = "Start-Dauer"
Public Const PLANNING_METHOD_END_DURATION = "Ende-Dauer"
Public Const PLANNING_METHOD_WORKTIME_DURATION = "Start-Arbeit"
Public Const PLANNING_METHOD_START_DURATION_START_END = "Dauer/Ende"

''// --- Erfassung ---
Public Const CONST_CALCULATION_SHEET_OFFSET = 14

'// predecessor
Public Const CONST_PREDECESSOR_TYPE_NORMAL = "normal"
Public Const CONST_PREDECESSOR_TYPE_CALCULATION = "calculation"
Public Const CONST_PREDECESSOR_TYPE_DATE = "date"
Public Const CONST_PREDECESSOR_TYPE_FAILURE = "failure"

'//menu navigation
Public Const MENU_START_ACTIVE = "Start_active"
Public Const MENU_END_ACTIVE = "End_active"
Public Const MENU_START = "Start"
Public Const MENU_END = "End"

Public Const MENU_CUSTOMERNAME_COLUMN = 1

'//menurows
Public Const MENU_PERMISSION_ROW = 1
Public Const MENU_START_ROW = 2
Public Const MENU_FIRST_MENU_ROW = 4

'//menucolumns
Public Const MENU_LEVEL_COLUMN = 1
Public Const MENU_LABEL_COLUMN = 2
Public Const MENU_PROCEDUR_COLUMN = 3
Public Const MENU_SEPARATOR_COLUMN = 4
Public Const MENU_FACEID_COLUMN = 5
Public Const MENU_SHOTCUT_COLUMN = 6
Public Const MENU_PARAMETER_COLUMN = 7
Public Const MENU_PERMISSION_COLUMN = 8
Public Const MENU_VISIBLE_COLUMN = 9
Public Const MENU_SUPERTIP_COLUMN = 10
Public Const MENU_IMAGE_COLUMN = 11
Public Const MENU_TAG_COLUMN = 12
Public Const MENU_DOCUMENTATION_COLUMN = 37

'//cockpit
Public Const COCKPIT_HELP_ROW = 11

Neulich musste ich ein Programm eines ehemaligen Kollegens überarbeiten. Hätte der sich an diese Konventionen gehalten, wäre es eine Sache von 10 Minuten gewesen. Ich hab fast eine Stunde gebraucht weil ich bei jeder Variablen erst mal nach der Deklaration suchen musste um zu verstehen warum es nicht funktioniert.
Also erzähl keinen Unsinn. Die Konventionen haben sehr wohl Sinn. Und was Microsoft da schreibt ist für Leute wie dich gedacht die über zehn Zeilen Code und zwei Variablen für eine Prozedur noch nicht hinausgekommen sind.
Gruß
Nepumuk
Anzeige
Kein Quatsch! Du bist Profi-Pgmierer, der...
21.03.2010 20:01:53
Luc:-?
…riesige Pgmm in was-weiß-ich für Sprachen schreibt, Nepumuk,
und das sicher nicht allein. Da muss es natürlich Regeln geben. Dafür wurden ja im Laufe der Zeit auch jede Menge (Namens-)Konventionen erfunden (in eine war ich auch mal involviert). Ob man sich da nun an so etwas uraltem wie der ungarischen Notation oder an moderneren Methoden orientiert, sei dahingestellt. Aber hier ist das mit „Kanonen-auf-Spatzen geschossen“. Ich muss doch nicht nochmal die Deklaration im Namen wiederholen, da sind doch andere Kriterien viel wichtiger! Und bei VBA-Code im Forum…, na ich weiß ja nicht…! Wir „backen“ hier doch keine Profi-Pgmierer! So ein System kann sich doch jeder selbst zurechtlegen, wenn er mag, das ist doch kein Muss! Ich stelle hier ja auch keine Codes ein, die wesentlich länger als 30…40 Zeilen sind. Und bei allen anderen, auch, wenn sie 1000 Zeilen haben, ist das nur mein Problem, kein Anderer muss das verstehen! Sogar um so besser, wenn ein evtl Raubkopierer das nicht versteht… ;-)
Und deine abschließende Arroganz kannst du mir und uns ersparen. Das ist nämlich typisch für Leute wie dich, die denken, sie hätten die Pgmierweisheit mit Löffeln gefressen, weil sie seit Jahren diesen Beruf ausüben. Dabei machen sie in VBA auch nichts anderes als sie immer machen, große „Gesamtkunstwerke“ wie vor 40 Jahren, obwohl sie sich ja inzwischen an so etwas wie modulare Pgmierung halten müssen.
Du kannst vielleicht raffiniertere Pgmm schreiben, aber ob die gerade den XL-Bereich bedienen, den die MS-Pgmierer auch schon seit Jahren vernachlässigen, wage ich zu bezweifeln…
Meine Arbeiten kannst du ja gern geringschätzen, aber was du schreibst, beweist nur, dass du keine Ahnung davon hast, was ich mache bzw schon gemacht habe, denn wie immer kommt es doch in 1.Linie auf die interessante Idee an; alles Andere ist dann Handwerk, das ein Profi natürlich besonders gut beherrschen muss... ;->
Das du dich überhpt mit VBA befasst, wundert mich. Das ist doch normalerweise unter eurer Pgmierer-Würde… :->>
Luc :-?
PS: Deine Variablen- und Konstantenliste beeindruckt mich nicht. Ich verzichte im Ggzug darauf, dir hier mit einem kryptisierten Minipgm zu antworten, obwohl es mich schon interessiert hätte, ob du den Code knacken kannst…
Anzeige
AW: Step erweitern
21.03.2010 13:37:23
Tino
Hallo,
vielleicht so.
Sub Test()
Dim i As Integer, ii As Integer
For i = 2 To 954
Debug.Print i
ii = IIf(ii 
Gruß Tino
AW: Step erweitern
21.03.2010 14:07:47
Lorenz
Hallo Tino!
Natürlich schon wieder ergibt sich die Qual der Wahl.
Ransi´s Code funkt vermutlich genauso gut (bzw. genauso schnell) wie deiner!
Werde aber deinen Code verwenden, vielleicht bringt das weglassen von "Step" etwas. Wenn nicht, auch egal.
Danke & Grüsse
Lorenz
iif Anweisungen genauer angesehen...
21.03.2010 14:22:24
Tino
Hallo,
wenn man sich die iif Anweisungen genauer anschaut, kann man diese auch so aufbauen.
ii = IIf(ii 
oder
ii = IIf(ii 
oder
ii = IIf(ii 
Gruß Tino
Anzeige
hier noch eine schnelle Variante ...
21.03.2010 15:17:55
Tino
Hallo,
Sub Test()
Dim i As Integer, ii As Integer
Dim StepAr()

StepAr = Array(15, 13, 13)

  For i = 2 To 954
      
      Debug.Print i
      
      ii = ii + 1
      i = i + StepAr(ii Mod 3)
  Next i

End Sub
Gruß Tino
Anzeige
AW: hier noch eine schnelle Variante ...
21.03.2010 16:44:26
Lorenz
Hallo Tino!
Natürlich habe ich die "schnelle" Variante verwendet! Trotz erweiterung auf Step 1218 noch schneller wie andere Makros. Habe Array(15, 13, 13) nach Array(16, 14, 14) ändern müssen, daß in meinem Code richtig rechnet.
Hier der Code wo ich den deinen eingebaut (modifiziert) habe:
Beginn

Sub ()
StepAr = Array(16, 14, 14)
For iX = 2 To 1218
For lRow = 6 To 89
With Cells(lRow, 15)
.FormulaLocal = "=SUMME(Schichtenbuch!AM" & iX & ":Schichtenbuch!AO" & iX & ")"
.Value = .Value
If .Value = 0 Then .Value = ""
End With
With Cells(lRow, 16)
.FormulaLocal = "=SUMME(Schichtenbuch!AI" & iX & ":Schichtenbuch!AJ" & iX & ")"
.Value = .Value
If .Value = 0 Then .Value = ""
End With
With Cells(lRow, 17)
.FormulaLocal = "=SUMME(Schichtenbuch!AK" & iX & ")"
.Value = .Value
If .Value = 0 Then .Value = ""
End With
iY = iY + 1
iX = iX + StepAr(iY Mod 3)
Next
Next
End Sub

Danke vielmals & Grüße
Lorenz
falsch eingebaut?
21.03.2010 16:53:55
Tino
Hallo,
ich denke Du hast den Teil an der falschen Stelle eingebaut.
StepAr = Array(15, 13, 13)
For iX = 2 To 1218
For lRow = 6 To 89
With Cells(lRow, 15)
.FormulaLocal = "=SUMME(Schichtenbuch!AM" & iX & ":Schichtenbuch!AO" & iX & ")"
.Value = .Value
If .Value = 0 Then .Value = ""
End With
With Cells(lRow, 16)
.FormulaLocal = "=SUMME(Schichtenbuch!AI" & iX & ":Schichtenbuch!AJ" & iX & ")"
.Value = .Value
If .Value = 0 Then .Value = ""
End With
With Cells(lRow, 17)
.FormulaLocal = "=SUMME(Schichtenbuch!AK" & iX & ")"
.Value = .Value
If .Value = 0 Then .Value = ""
End With
Next lRow
iY = iY + 1
iX = iX + StepAr(iY Mod 3)
Next iX  'hier wird iX um eins hochgezählt
Der Wert im Array muss eins kleiner sein, weil iX beim nächsten Schleifendurchlauf um 1 hochgezählt wird.
Gruß Tino
AW: falsch eingebaut?
21.03.2010 17:07:12
Lorenz
Hallo Tino,
Ist in meinem Fall nicht falsch (habs nochmals ausprobiert) Formeln sind richtig mit Zeilenbeginn "6" eingetragen. Bei deinem KorrekturCODE beginnt in der Formel mit Zeile 1218.
trotzdem Danke für den "schnelleren Code
Grüße Lorenz
sorry, glaube ich nicht. ;-)
21.03.2010 17:22:36
Tino
Hallo,
"beginnt in der Formel mit Zeile 1218"
Bei mir beginnt es mit 2 und danach kommt 16,30,46 usw...
Egal, wenn es bei Dir funktioniert ist es ja gut, habe Deine Umgebung ja auch nicht nachgebaut.
Gruß Tino
kann es sein?
21.03.2010 17:34:16
Tino
Hallo,
habe Deinen Code bzw. Deine Tabelle nicht nachgebaut,
kann es sein dass Du Dir die Ergebnisse jedes Mal überschreibst?
Weil Du durchläufst in der Schleife For lRow = 6 To 89 jedes Mal den gleichen Zellbereich.
Gruß Tino
AW: sorry, glaube ich nicht. ;-)
21.03.2010 18:36:26
Lorenz
Hallo Tino!
Möglicher Weise liegts am "Umgebung ja auch nicht nachgebaut", denn ich habs in meiner Tab auch per "Einzelschritt" probiert und es wird keine Zelle ein zweites mal angewählt (ausgefüllt).
Somit lass ich´s halt bei der "falsch eingebauten" Variante.
Danke für dein Bemühen & viele Grüße
Lorenz
ob Du es glaubts o. nicht sie werden überschrieben
21.03.2010 18:59:17
Tino
Hallo,
die Spalte ist fest angegeben 15,16 u. 17 und mit jedem Schleifendurchlauf von iX
bewegst Du dich in der Zeile von 6 bis 89,
also werden die Zellen immer wieder überschrieben ob Du es glaubst oder nicht. ;-)
Gruß Tino

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige