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 :

problème compatibilité Excel 2016 32 bits ou 64 bits


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 630
    Par défaut problème compatibilité Excel 2016 32 bits ou 64 bits
    Bonjour,

    J'ai élaboré un classeur (partagé) sous Excel 2016 32 bits.

    Un des utilisateurs utilise à présent une version 2016 64 bits qui provoque un blocage sur la ligne suivante :

    Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)
    J'ai envisagé de contourner le problème en gérant cette erreur mais cette ligne est en-dehors du module...
    Existe-t-il un code similaire qui soit compatible pour les versions 32 et 64 bits ?

    En vous remerciant par avance pour votre aide précieuse,
    Cordialement,

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 630
    Par défaut
    Bonjour,

    Je viens de trouver ça, est-ce que c'est la solution ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #If VBA7 And Win64 Then
    Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    #Else
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    #End If
    Merci encore pour votre aide,
    Cdt

  3. #3
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 385
    Par défaut
    Bonjour,

    Oui, cela fonctionne avec ce code.
    Le meilleur moyen d'avoir la réponse, c'est de tester

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 630
    Par défaut
    Bonjour,

    Si fonctionne "normalement" sur ma version 32 bits mais toujours pas sur la version 64 bits.

    J'ai supprimé VBA7 pour ne conserver que Win64 (j'attends le retour de l'utilisateur à défaut de pouvoir utiliser l'option de débogage sur son poste et voir où ça coince)

    #If VBA7 And Win64 Then
    Question subsidiaire : à quoi servent les # dans ce bout de code ?

    @+

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

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

    "#If VBA7" devrait suffire.
    les éléments introduits par "#" correspondent à des instructions de pré-compilation.

    [Edit] Lien Microsoft confirmant mon affirmation:
    https://docs.microsoft.com/en-us/off...tions-overview

  6. #6
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 198
    Par défaut
    Hello,
    Citation Envoyé par jpma75 Voir le message
    Si fonctionne "normalement" sur ma version 32 bits mais toujours pas sur la version 64 bits.
    Avec le code contenant #If VBA7 And Win64 le Sleep devrait fonctionner en 32 et 64 bits. Peux-tu nous montrer le code complet qui ne fonctionne pas en 64 bits et nous dire où cela ne fonctionne pas ?
    Ami calmant, J.P

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 630
    Par défaut
    Bonjour Jurassic,

    Voici le code (l'utilisateur est indisponible pour l'instant - je n'ai toujours pas accès à son PC pour voir si avec la modif, ça bug ailleurs...)

    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
    Option Explicit
    Option Private Module
    '**
    '#If VBA7 And Win64 Then
    #If Win64 Then
    Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    #Else
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    #End If
    '**
    'Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Sub Inser_Comment()
    Dim le_commentaire
    Dim Cancel As Byte
    Dim Target
    Dim rép As Byte
     
        With ActiveCell
            If .NoteText = "" And ActiveCell <> 0 Then
                le_commentaire = InputBox("Entrez votre commentaire :")
     
                If le_commentaire <> "" Then
                    ActiveSheet _
                        .Unprotect Password:="xx"
                        .AddComment le_commentaire & Chr(10) & "[" & "Note de " & Last_User & " du " & Format(Date, "d mmm yyyy") & "]"
     
                    With .Comment.Shape.OLEFormat.Object.Font
                            .Name = "Tverdana"
                            .Size = 10
                            .FontStyle = "Normal"
                            .ColorIndex = 5
                    End With
     
                    With .Comment
                        .Visible = True
                        .Shape.Top = ActiveCell.Top + 25
                        .Shape.Select
                         Selection.AutoSize = True
                         Selection.Interior.ColorIndex = 36
     
                         DoEvents
                         Sleep 2500
                        .Visible = False
                    End With
     
                    ActiveSheet.Protect Password:="xx", userinterfaceonly:=True
                End If
            Else
                With ActiveCell
                    If .NoteText <> "" And ActiveCell <> 0 Then
                        rép = MsgBox("Voulez-vous effacer ce commentaire ?", vbYesNo + vbQuestion, "")
     
                        If rép = vbNo Then Exit Sub
                        ActiveSheet.Unprotect Password:="mp"
                        ActiveCell.ClearComments
                        ActiveSheet.Protect Password:="mp", userinterfaceonly:=True '
                    End If
                End With
            End If
        End With
    End Sub
    Cdt

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

Discussions similaires

  1. [XL-2016] problème format excel 2016
    Par android59 dans le forum Excel
    Réponses: 2
    Dernier message: 06/11/2020, 13h37
  2. [XL-2016] Problème de compatibilité - Macros VBA avec Excel 2016
    Par heraults dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/02/2020, 10h42
  3. Problème compatibilite excel 32/64 bits
    Par vincedu74 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 21/09/2017, 10h36
  4. compatibilité excel 2016 64 Bits - 2010 32 Bits Méthode ADO
    Par monhermes dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/06/2016, 10h48
  5. [XL-2010] Problème compatibilité excel 2003-2010
    Par bbcancer dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/10/2012, 16h32

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