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 :

Compatibilité excel 2007 et 2010 code vba [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Compatibilité excel 2007 et 2010 code vba
    Bonsoir,

    Il y de cela un bon moment, j'avais trouvé dans la faq un code que je n'arrive plus à retrouver (juste pour mettre le lien).

    Le code en question permet de retirer de la barre de titre d'une userform les icônes réduire/ajuster/fermer.

    Sous excel 2007, c'est impeccable mais ne fonctionne pas sous excel 2010.

    J'ai bien trouvé quelques codes que je n'arrive pas à adapter ou ne sont pas applicables à mon cas.

    Voici le code
    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
    Private Declare Function FindWindowA Lib "user32" _
                                         (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetWindowLongA Lib "user32" _
                                            (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLongA Lib "user32" _
                                            (ByVal hwnd As Long, ByVal nIndex As Long, _
                                             ByVal dwNewLong As Long) As Long
     
    Private Sub UserForm_Initialize()
        Dim hwnd As Long
        hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
                                           "X", "D") & "Frame", Me.Caption)
        SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
     
        End Sub
    En vous remerciant par avance.

    Bon week-end.

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Quel Excel 2010: 32 bits ou 64 bits ?

    Et puis Excel 2010 ce n'est pas la version 8; c'est la version 14.

    Et puis, il doit bien y avoir un message d'erreur à quelque part.

    Et puis, si c'est ce que je pense, c'est un sujet amplement traité et tu devrais probablement lire ceci :


    http://arkham46.developpez.com/artic...ice/vba64bits/

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour Clementmarcot,

    Je te remercie beaucoup pour ton retour et pour ton lien. Désolé, j'ai omis de mention les versions sur mon pc c'est windows7 32 bits et excel 2007 32 bits.

    Chez moi ça fonctionne très bien. Par contre, ça ne fonctionne pas chez mon ami, sa machine est sur windows7 32 bits et excel 2010 32 bits.

    Pour l'erreur, je ne sais pas exactement car ça ne se pas sur ma machine.

    edit:J'ai bien trouvé quelques codes que je n'arrive pas à adapter ou ne sont pas applicables à mon cas.

    J'ai en effet trouvé le document que tu me signales, mais en d'autres termes je n'ai pas su comment adapter.

    Merci quand même de m'avoir répondu.

    Bon week-end.

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    A tester mais relativement similaire. Il est possible d'avoir ou non la barre de titre :
    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
     
    Private Declare Function FindWindowA _
                    Lib "User32" ( _
                    ByVal lpClassName As String, _
                    ByVal lpWindowName As String) As Long
     
    Private Declare Function GetWindowLongA _
                    Lib "User32" ( _
                    ByVal hwnd As Long, _
                    ByVal nIndex As Long) As Long
     
    Private Declare Function SetWindowLongA _
                    Lib "User32" ( _
                    ByVal hwnd As Long, _
                    ByVal nIndex As Long, _
                    ByVal dwNewLong As Long) As Long
     
    Private Sub UserForm_Initialize()
     
        Dim hwnd As Long
        Dim AvecBarre As Boolean
     
        AvecBarre = True
     
        hwnd = FindWindowA(IIf(Val(Application.Version) < 9, "ThunderXFrame", "ThunderDFrame"), Me.Caption)
     
        SetWindowLongA hwnd, -16, IIf(AvecBarre, GetWindowLongA(hwnd, -16), 0&) And &HFFF7FFFF
     
    End Sub

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup Theze. Sur ma machine (win7 32bits et excel 2007 32bits) c'est parfait.

    Sur excel 2010 32bits, j'attends le retour de mon ami et je te tiendrai au courant.

    Encore merci, je te souhaite un excellent week-end.

  6. #6
    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
    Bonjour
    si je comprend bien tu veux enlever le bouton fermer de la caption

    ce code commence a dater

    je te propose celui ci fonctionne pour 64/32bits sans rien changer

    j'utilise directemnt un nombre hex je n'ai pas besoins de capter le long au prealable (sans getwindowlongA)
    je n'ai besoins que de ces deux apis (getactivewindows et setwindowslongA)
    moins lourd plus propre
    met ceci dans ton 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
    15
    #If vba7 Then 'pour 64 bit
    'api accisition handle
    Private Declare ptrsafe  Function GAW Lib "User32" Alias "GetActiveWindow" () As Long
     'Fonction de changement
    Private Declare ptrsafe Function SWL Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    #Else 'pour 32 bits
    'api accisition handle
    Private Declare Function GAW Lib "User32" Alias "GetActiveWindow" () As Long
     'Fonction de changement
    Private Declare Function SWL Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    #End If
     
    Private Sub UserForm_Activate()
    SWL GAW, -16, &H94C00080:     'Changement propriétés
    End Sub
    tu aurais du le trouver dans les contributions j'y donne aussi tout les nombre au format hex pour modifier la caption (3 boutons,elasticité,pas de caption etc....)

    je peut te les redonner si besoins est
    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

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/10/2014, 11h42
  2. [Excel 2003] - Copier/Coller code VBA automatiquement
    Par n0vocaine dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/04/2012, 16h48
  3. Réponses: 1
    Dernier message: 11/02/2011, 11h31
  4. Macro Compatibilité Excel 2007-2003
    Par Julien44 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/06/2008, 14h21
  5. Réponses: 2
    Dernier message: 11/06/2008, 14h38

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