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 :

Ne plus afficher une boite de dialogue


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2010
    Messages : 142
    Par défaut Ne plus afficher une boite de dialogue
    Bonjour ;

    J'ai une application Excel qui execute un code VBA generant un Tableau Croisée Dynamique (code qui a été generé grace à l'enregistreur des Macros).

    Or, à chaque execution du code, j'ai cette fenetre la :

    Micorosoft Office Excel - Comptability Checker
    The following features in this workbook are not supported by earlier versions of Excel. These features may be lost or degraded when you save this workbook in an earlier file format. Click Continue to save the workbook anyway. To keep all of your features, click Cancel, and then save the file in one of the new file formats.

    Or, ni données, ni graphique, ni tableau n'a été degradé ! tout est bien !

    La question est si c'est possible de faire abstraction de cette fenetre à l'aide d'un code VBA !

    Merci !

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Par défaut
    Bonsoir,
    Voici ce que dit Google traduction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Micorosoft Office Excel - Checker Comptability
    Les fonctions suivantes de ce manuel ne sont pas pris en charge par les
    versions antérieures d'Excel. Ces fonctionnalités peuvent être perdues ou
    dégradées lorsque vous enregistrez ce classeur dans un format de fichier
    antérieur. Cliquez sur Continuer pour enregistrer le classeur de toute façon.
    Pour conserver toutes vos fonctions, cliquez sur Annuler, puis enregistrez
    le fichier dans l'un des nouveaux formats de fichier.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    C'est difficile d'intervenir à distance et hors situation.
    Malgré tout, essayez le code suivant
    1) en adaptant la constante TITRE_MSGBOX du titre exact de la MsgBox indésirable
    2) en incluant votre code traitement à l'endroit '---- Ici votre traitement ----

    Faites l'essai sur une copie de votre classeur.

    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
    '#######################################################
    '### Adapter la constante selon le Titre de la MsgBox.
    '### Bien vérifier le titre de la MsgBox indésirable,
    '### l'obtention du handle de la MsgBox se fait à partir
    '### de son titre exact.
    Private Const TITRE_MSGBOX As String = "Micorosoft Office Excel - Comptability Checker"
    '#######################################################
     
    Dim OnTimer&
     
    Private Declare Function SendMessage& Lib "user32" _
      Alias "SendMessageA" (ByVal hwnd As Long, _
      ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
     
    Private Declare Function FindWindow& Lib "user32" _
      Alias "FindWindowA" (ByVal lpClassName As String, _
      ByVal lpWindowName As String)
     
    Private Declare Function SetTimer& Lib "user32" _
      (ByVal hwnd As Long, ByVal nIDEvent As Long, _
      ByVal uElapse As Long, ByVal lpTimerFunc As Long)
     
    Private Declare Function KillTimer& Lib "user32" _
      (ByVal hwnd As Long, ByVal nIDEvent As Long)
     
    Private Declare Function GetWindowText& Lib "user32" _
      Alias "GetWindowTextA" _
      (ByVal hwnd As Long, ByVal lpString As String, _
       ByVal cch As Long)
    '___________________________
    Private Sub WinProc_CloseMsgBox()
    Dim HwndMsgBox&
    HwndMsgBox& = FindWindow(vbNullString, TITRE_MSGBOX)
    Dim Ch$
    Dim Tampon&
    Dim reponse&
    Ch$ = Space(1024)
    Tampon& = Len(Ch$)
    reponse& = GetWindowText(HwndMsgBox&, Ch$, Tampon&)
    Ch$ = Trim(Replace(Ch$, Chr$(0), ""))
    If Ch$ = TITRE_MSGBOX Then
      SendMessage HwndMsgBox&, &H10, 0, ByVal 0&
    End If
    End Sub
    '___________________________
    Private Sub RunTimer(Delai&)
    If OnTimer& > 0 Then OffTimer
    OnTimer& = SetTimer(0, 0, ByVal Delai&, AddressOf WinProc_CloseMsgBox)
    End Sub
    '___________________________
    Private Sub OffTimer()
    If OnTimer& > 0 Then
      OnTimer& = KillTimer(0&, OnTimer&)
      OnTimer& = 0
    End If
    End Sub
     
    '### INCLURE votre traitement ci-dessous ###
    '___________________________
    Sub MonTraitement()   'Adapter du nom de votre Sub
    '///// à ajouter à votre code ////
    OnTimer& = 0
    Call RunTimer(Delai:=0)
    '/////////////////////////////////
     
    '---- Ici votre traitement ----
    '------------------------------
    '------------------------------
     
    '///// à ajouter à votre code ////
    Call OffTimer
    '/////////////////////////////////
    End Sub
    Si toutes les préconisations ont bien été suivies, tenez moi au courant du résultat (qui, j'espère, est celui escompté).

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/11/2007, 23h11
  2. Afficher une Boite de dialogue
    Par kouax dans le forum Visual C++
    Réponses: 8
    Dernier message: 23/03/2007, 22h55
  3. Comment afficher une boite de dialogue ?
    Par THkiller dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/08/2006, 21h24
  4. Réponses: 2
    Dernier message: 20/04/2006, 13h20
  5. comment afficher une boite de dialogue simple ?
    Par Ekimasu dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 08/06/2004, 16h46

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