Attribute VB_Name = "Module1" Option Explicit Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Public Declare Function SetActiveWindow Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function GetActiveWindow Lib "user32" () As Long Public Type typeMotCle sMotCle As String bCrLfAvant As Boolean lCouleur As OLE_COLOR bSupprimer As Boolean bEspaceApres As Boolean End Type Public GtMotsCle() As typeMotCle Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long ' Enumération des touches que l'on peut être amené à tester ' (cette liste n'est pas exhaustive) Const VK_NUMLOCK = &H90 Const VK_CAPITAL = &H14 Public Enum enumTouche eToucheNumLock = VK_NUMLOCK eToucheCapsLock = VK_CAPITAL = &H14 End Enum Public GPImageList As ImageList Public Function ToucheActive(lTouche As enumTouche) As Boolean Dim oKeyboardBuffer(256) As Byte Dim lRep As Long ' Récupération de l'état de l'ensemble du clavier lRep = GetKeyboardState(oKeyboardBuffer(0)) ToucheActive = oKeyboardBuffer(lTouche) End Function Public Function MonUBound(lListe, Optional ByVal bRenvoyerMoinsUnSivide As Boolean = False) As Long On Error GoTo erreur: If bRenvoyerMoinsUnSivide Then MonUBound = -1 MonUBound = UBound(lListe) Exit Function erreur: MonUBound = 0 End Function Public Function Max(ByVal lValeur1 As Long, ByVal lValeur2 As Long) As Long If lValeur1 > lValeur2 Then Max = lValeur1 Else Max = lValeur2 End If End Function Public Function Min(ByVal lValeur1 As Long, ByVal lValeur2 As Long) As Long If lValeur1 < lValeur2 Then Min = lValeur1 Else Min = lValeur2 End If End Function ' 'Public Function LargeurScrollbars() As Single ' GetPrivateProfileString 'End Function Public Function MaxMulti(vTableauPos As Variant) As Long Dim lParcours As Long For lParcours = LBound(vTableauPos) To UBound(vTableauPos) MaxMulti = Max(MaxMulti, vTableauPos(lParcours)) Next End Function Public Function MinSansZero(ByVal lValeur1 As Long, ByVal lValeur2 As Long) As Long If lValeur1 < lValeur2 Then If lValeur1 = 0 Then MinSansZero = lValeur2 Else MinSansZero = lValeur1 End If Else If lValeur2 = 0 Then MinSansZero = lValeur1 Else MinSansZero = lValeur2 End If End If End Function Public Function MinMultiSansZero(ByVal sTexte As String, ByVal lPosRecherche As Long, vTableauPos As Variant) As Long Dim lParcours As Long For lParcours = LBound(vTableauPos) To UBound(vTableauPos) MinMultiSansZero = MinSansZero(MinMultiSansZero, InStrRev(sTexte, vTableauPos(lParcours), lPosRecherche)) Next End Function Public Function MaxMulti2(ByVal sTexte As String, ByVal lPosRecherche As Long, vTableauPos As Variant) As Long Dim lParcours As Long For lParcours = LBound(vTableauPos) To UBound(vTableauPos) MaxMulti2 = Max(MaxMulti2, InStr(lPosRecherche, sTexte, vTableauPos(lParcours))) Next End Function ' 'Private Function RenvoiExpression(sSQL As String) As String ' Dim sTampon As String ' Dim sParentDeb() As String ' Dim sParentFin() As String ' ' Do ' sTampon = sTampon & GPclsFonctionsChaines.ChaineSep(sSQL, ",") ' sParentDeb = Split(sTampon, "(") ' sParentFin = Split(sTampon, ")") ' Loop Until UBound(sParentDeb) = UBound(sParentFin) ' RenvoiExpression = sTampon 'End Function Public Function ChaineDansChaine(ByVal sChaine As String, ByVal lPosition As Long) As Boolean Dim sTableauTemp() As String Dim lNbElements As Long sTableauTemp() = Split(Left(sChaine, lPosition - 1), "'") lNbElements = UBound(sTableauTemp()) - LBound(sTableauTemp()) If lNbElements >= 0 Then ChaineDansChaine = Not (lNbElements Mod 2 = 0) Or (Mid(sChaine, lPosition, 1) = "'") End If End Function Public Function TableauVersCollection(vTableau As Variant) As Collection Dim lParcours As Long Set TableauVersCollection = New Collection If VarType(vTableau) Or vbArray Then For lParcours = LBound(vTableau) To UBound(vTableau) TableauVersCollection.Add vTableau(lParcours) Next Else TableauVersCollection.Add vTableau End If End Function Public Function CollectionVersTableau(Pcol As Collection) As Variant MsgBox "A FAIRE..." End Function