IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA Molette souris dans listbox etc [XL-2019]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de Rémy.A
    Homme Profil pro
    Expert SEE ELECTRICAL EXPERT
    Inscrit en
    Juin 2017
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Expert SEE ELECTRICAL EXPERT
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2017
    Messages : 118
    Par défaut VBA Molette souris dans listbox etc
    Bonjour à tous,

    Ci-dessous un bout de code réalisé pour gérer la molette de la sourie dans une ListBox!!

    A insérer dans un module standard:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
     
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long)
    Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
    Public Enum OWNER
        eSHEET = 1
        eUSERFORM = 2
    End Enum
    Private Type POINTAPI
        X As Long
        Y As Long
    End Type
    Private Type MSLLHOOKSTRUCT
        pt As POINTAPI
        mouseData As Long
        flags As Long
        time As Long
        dwExtraInfo As Long
    End Type
    Private Const HC_ACTION = 0
    Private Const WH_MOUSE_LL = 14
    Private Const WM_MOUSEWHEEL = &H20A
    Private Const GWL_HINSTANCE = (-6)
    Private udtlParamStuct As MSLLHOOKSTRUCT
    ' permet de savoir si le hook est activé ou pas
    Public plHooking As Long
    ' sera associé à votre ComboBox/ListBox
    Public CtrlHooked As Object
    '
    Private Function GetHookStruct(ByVal lParam As Long) As MSLLHOOKSTRUCT
        CopyMemory VarPtr(udtlParamStuct), lParam, LenB(udtlParamStuct)
        GetHookStruct = udtlParamStuct
    End Function
    Private Function LowLevelMouseProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
        'en cas de mouvement très rapide,
        'évitons les crash en désactivant les erreurs
        On Error Resume Next
        If (nCode = HC_ACTION) Then
            If wParam = WM_MOUSEWHEEL Then
                LowLevelMouseProc = True
                With CtrlHooked
                ' déplace l'ascenseur en fonction de la molette
                    ' l'info est stockée dans lParam
                    If GetHookStruct(lParam).mouseData > 0 Then
                        .TopIndex = .TopIndex - 3
                    Else
                        .TopIndex = .TopIndex + 3
                    End If
                End With
            End If
            Exit Function
        End If
        LowLevelMouseProc = CallNextHookEx(0&, nCode, wParam, ByVal lParam)
        On Error GoTo 0
    End Function
    Public Sub HookMouse(ByVal ControlToScroll As Object, ByVal SheetOrForm As OWNER, Optional ByVal FormName As String)
        Dim hWnd As Long
        Dim hWnd_App As Long
        Dim hWnd_Desk As Long
        Dim hWnd_Sheet As Long
        Dim hWnd_UserForm As Long
        Const VBA_EXCEL_CLASSNAME = "XLMAIN"
        Const VBA_EXCELSHEET_CLASSNAME = "EXCEL7"
        Const VBA_EXCELWORKBOOK_CLASSNAME = "XLDESK"
        Const VBA_USERFORM_CLASSNAME = "ThunderDFrame"
        ' active le hook s'il n'avait pas déjà été activé
        If plHooking < 1 Then
            ' retourne l'handle d'excel
            hWnd_App = FindWindow(VBA_EXCEL_CLASSNAME, vbNullString)
            Select Case SheetOrForm
            Case eSHEET
                'trouve son fils
                hWnd_Desk = FindWindowEx(hWnd_App, 0&, VBA_EXCELWORKBOOK_CLASSNAME, vbNullString)
                'trouve celui de la feuille
                hWnd_Sheet = FindWindowEx(hWnd_Desk, 0&, VBA_EXCELSHEET_CLASSNAME, vbNullString)
                hWnd = hWnd_Sheet
            Case eUSERFORM
                'trouve la UserForm
                hWnd_UserForm = FindWindowEx(hWnd_App, 0&, VBA_USERFORM_CLASSNAME, FormName)
                If hWnd_UserForm = 0 Then
                    hWnd_UserForm = FindWindow(VBA_USERFORM_CLASSNAME, FormName)
                End If
                hWnd = hWnd_UserForm
            End Select
            Set CtrlHooked = ControlToScroll
            ' il n'y a pas de hInstance d'application, alors on utilise GetWindowLong pour obtenir l'hInstance
            plHooking = SetWindowsHookEx(WH_MOUSE_LL, AddressOf LowLevelMouseProc, GetWindowLong(hWnd, GWL_HINSTANCE), 0)
            Debug.Print Timer, "Hook ON"
        End If
    End Sub
    Public Sub UnHookMouse()
        ' désactive le hook s'il existe
        If plHooking <> 0 Then
            UnhookWindowsHookEx plHooking
            plHooking = 0
            Set CtrlHooked = Nothing
            Debug.Print Timer, "Hook OFF"
        End If
    End Sub
    A insérer dans UserForm:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        Call HookMouse(ListBox1, eSHEET)
    End Sub
    Private Sub ListBox1_LostFocus()
        UnHookMouse
    End Sub
     
    Private Sub ListBox1_Enter()
        Call HookMouse(Me.ListBox1, eUSERFORM, Me.Name)
    End Sub
    Private Sub ListBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        UnHookMouse
    End Sub
    Cela fonction qu'en 32bits

    Si quelqu'un à un solution pour du 64bits je suis preneur!

    Voilà!
    J'espère que cela vous sera bien utile!

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour
    il y en a 2 pour les quelles je suis pas sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #If win64 Then
    Private Declare ptrsafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Longptr
    Private Declare ptrsafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Longptr, ByVal hWnd2 As Longptr, ByVal lpsz1 As String, ByVal lpsz2 As String) As Longptr
    Private Declare ptrsafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Longptr, ByVal nIndex As Long) As Longptr
    Private Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory"(ByVal Destination As LongPtr, ByVal Source As LongPtr, ByVal Length As LongPtr)
    Private Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As LongPtr, ByVal hmod As LongPtr, ByVal dwThreadId As Long) As LongPtr
    'les 2 suivantes j'en suis pas  sur
    Private Declare ptrsafe Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare ptrsafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
     
    #Else
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long)
    Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
    #End If
    donne un retour si tu a la bonne solution pour mes archives si ca te dérange pas
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre confirmé Avatar de Rémy.A
    Homme Profil pro
    Expert SEE ELECTRICAL EXPERT
    Inscrit en
    Juin 2017
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Expert SEE ELECTRICAL EXPERT
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2017
    Messages : 118
    Par défaut [XL-2019] VBA Molette sourie dans listbox etc
    Bonjour Patrick,

    Merci pour ta réponse, mais hélas ça ne fonctionne pas...
    Néanmoins je ne me souvenais plus du LongPtr, MERCI Patrick pour ce rappel

    Je viens de reprendre le code après de long recherche qui m'a permis d'obtenir le code suivant pour une version 64bits:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
     
     
    Option Explicit
    Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
    Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As LongPtr, ByVal hWnd2 As LongPtr, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPtr
    Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As LongPtr, ByVal nIndex As Long) As LongPtr
    Private Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As LongPtr, ByVal Source As LongPtr, ByVal Length As LongPtr)
    Private Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As LongPtr, ByVal hMod As LongPtr, ByVal dwThreadId As Long) As LongPtr
    Private Declare PtrSafe Function CallNextHookEx Lib "user32" (ByVal hHook As LongPtr, ByVal nCode As Long, ByVal wParam As LongPtr, lParam As Any) As LongPtr
    Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As LongPtr) As Long
     
    Public Enum OWNER
        eSHEET = 1
        eUSERFORM = 2
    End Enum
    Private Type POINTAPI
        X As Long
        Y As Long
    End Type
    Private Type MSLLHOOKSTRUCT
        pt As POINTAPI
        mouseData As Long
        flags As Long
        time As Long
        dwExtraInfo As Long
    End Type
    Private Const HC_ACTION = 0
    Private Const WH_MOUSE_LL = 14
    Private Const WM_MOUSEWHEEL = &H20A
    Private Const GWL_HINSTANCE = (-6)
    Private udtlParamStuct As MSLLHOOKSTRUCT
    ' permet de savoir si le hook est activé ou pas
    Public plHooking As LongPtr
    ' sera associé à votre ComboBox/ListBox
    Public CtrlHooked As Object
    '
    Private Function GetHookStruct(ByVal lParam As LongPtr) As MSLLHOOKSTRUCT
        CopyMemory VarPtr(udtlParamStuct), lParam, LenB(udtlParamStuct)
        GetHookStruct = udtlParamStuct
    End Function
    Private Function LowLevelMouseProc(ByVal nCode As Long, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr
        'en cas de mouvement très rapide,
        'évitons les crash en désactivant les erreurs
        On Error Resume Next
        If (nCode = HC_ACTION) Then
            If wParam = WM_MOUSEWHEEL Then
                LowLevelMouseProc = True
                With CtrlHooked
                ' déplace l'ascenseur en fonction de la molette
                    ' l'info est stockée dans lParam
                    If GetHookStruct(lParam).mouseData > 0 Then
                        .TopIndex = .TopIndex - 3
                    Else
                        .TopIndex = .TopIndex + 3
                    End If
                End With
            End If
            Exit Function
        End If
        LowLevelMouseProc = CallNextHookEx(0&, nCode, wParam, ByVal lParam)
        On Error GoTo 0
    End Function
    Public Sub HookMouse(ByVal ControlToScroll As Object, ByVal SheetOrForm As OWNER, Optional ByVal FormName As String)
        Dim hWnd As LongPtr
        Dim hWnd_App As LongPtr
        Dim hWnd_Desk As LongPtr
        Dim hWnd_Sheet As LongPtr
        Dim hWnd_UserForm As LongPtr
        Const VBA_EXCEL_CLASSNAME = "XLMAIN"
        Const VBA_EXCELSHEET_CLASSNAME = "EXCEL7"
        Const VBA_EXCELWORKBOOK_CLASSNAME = "XLDESK"
        Const VBA_USERFORM_CLASSNAME = "ThunderDFrame"
        ' active le hook s'il n'avait pas déjà été activé
        If plHooking < 1 Then
            ' retourne l'handle d'excel
            hWnd_App = FindWindow(VBA_EXCEL_CLASSNAME, vbNullString)
            Select Case SheetOrForm
            Case eSHEET
                'trouve son fils
                hWnd_Desk = FindWindowEx(hWnd_App, 0&, VBA_EXCELWORKBOOK_CLASSNAME, vbNullString)
                'trouve celui de la feuille
                hWnd_Sheet = FindWindowEx(hWnd_Desk, 0&, VBA_EXCELSHEET_CLASSNAME, vbNullString)
                hWnd = hWnd_Sheet
            Case eUSERFORM
                'trouve la UserForm
                hWnd_UserForm = FindWindowEx(hWnd_App, 0&, VBA_USERFORM_CLASSNAME, FormName)
                If hWnd_UserForm = 0 Then
                    hWnd_UserForm = FindWindow(VBA_USERFORM_CLASSNAME, FormName)
                End If
                hWnd = hWnd_UserForm
            End Select
            Set CtrlHooked = ControlToScroll
            ' il n'y a pas de hInstance d'application, alors on utilise GetWindowLong pour obtenir l'hInstance
            plHooking = SetWindowsHookEx(WH_MOUSE_LL, AddressOf LowLevelMouseProc, GetWindowLong(hWnd, GWL_HINSTANCE), 0)
            Debug.Print Timer, "Hook ON"
        End If
    End Sub
    Public Sub UnHookMouse()
        ' désactive le hook s'il existe
        If plHooking <> 0 Then
            UnhookWindowsHookEx plHooking
            plHooking = 0
            Set CtrlHooked = Nothing
            Debug.Print Timer, "Hook OFF"
        End If
    End Sub
    Le code pour l'userform est toujours le même!!

    Encore Merci pour ton aide

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    merci pour le retour j'archive les api
    tu pourrais laisser l'option 32 bit on sait jamais , si tu utilise ton fichier sur un autre pc avec un Excel en 32

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #If vba7 Then
    Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
    Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As LongPtr, ByVal hWnd2 As LongPtr, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPtr
    Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As LongPtr, ByVal nIndex As Long) As LongPtr
    Private Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As LongPtr, ByVal Source As LongPtr, ByVal Length As LongPtr)
    Private Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As LongPtr, ByVal hMod As LongPtr, ByVal dwThreadId As Long) As LongPtr
    Private Declare PtrSafe Function CallNextHookEx Lib "user32" (ByVal hHook As LongPtr, ByVal nCode As Long, ByVal wParam As LongPtr, lParam As Any) As LongPtr
    Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As LongPtr) As Long
     
    #Else
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long)
    Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
    #End If
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 90
    Par défaut
    Bonjour,

    Je réactive ce sujet qui date un peu : j'ai essayé d'utiliser ce code pour un textbox en changeant juste le nom de la listebox par celui de ma textbox dans le code du userform, mais ça ne fait rien : pas de bug mais pas de changement au scroll...

    Est-ce faisable ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Bug : molette souris et ListBox
    Par gilberte333 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 07/02/2013, 14h34
  2. molette souris dans page internet avec applet java
    Par dany777 dans le forum Applets
    Réponses: 0
    Dernier message: 08/04/2011, 14h08
  3. Evénement molette souris dans listbox
    Par Matmal11 dans le forum Tcl/Tk
    Réponses: 2
    Dernier message: 04/05/2010, 09h41
  4. Blocage molette souris dans sous formulaire
    Par yorra dans le forum IHM
    Réponses: 1
    Dernier message: 22/05/2009, 11h29
  5. Activation molette souris dans liste déroulante
    Par lito74 dans le forum Access
    Réponses: 7
    Dernier message: 09/02/2006, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo