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 :

Formules/Audit de formules/« Vérification des erreurs… » à exécuter par macro.


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 74
    Points : 59
    Points
    59
    Par défaut Formules/Audit de formules/« Vérification des erreurs… » à exécuter par macro.
    Bonjour

    Cela fait 2 jours que je cherche désespérément.

    Problème de base : Eviter les données en erreurs

    Pour chaque vols, les utilisateurs créaient une ligne dans un tableau de structure Excel.
    Ils saisissent des données dans 20 colonnes pour ce vol.
    J’ai utilisé l’option standard Excel dans « Données/Outils de données/Validation des données » combiné avec le tableau de structure Excel afin d ‘éviter que les données inconsistantes mettent en erreur mes TCD (Tableau croisé dynamique) et graphiques basés sur ce tableau Excel.

    Dans une colonne B, j’ai une liste déroulante disponible qui doit être non vide.
    NB : J’ai décoché l’option « Ignorer si Vide » dans la validation des données de cette colonne

    A la création de la ligne du Tableau (ex.par la saisie en colonne A du numéro de Vol), on retrouve dans la colonne B la coche verte en haut à gauche de la cellule avec le losange jaune et le point d’exclamation (ce qui stipule une erreur=> Normal, on attend une valeur via la liste déroulante disponible).

    Un option standard Excel permet au utilisateur de devenir autonome sur la résolution de ces erreurs dans « Formules/Audits de formules/Vérifications des erreurs… ».

    Solution :
    Je souhaite que sur un Save le user parcours ses erreurs, en affichant cette pop-up standard se trouvant dans
    « Formules/Audits de formules/Vérifications des erreurs… » sur une plage bien définie.

    Point bloquant :
    Je n’arrive pas à afficher cette pop-up standard « Formules/Audits de formules/Vérifications des erreurs… » sur une plage bien définie par un évènement dans une macro.

    Mon problème est que je ne sais pas me servir de la bibliothèque de VBA   .
    J’ai fouillé dans Application.ErrorCheckingOptions mais rien me concernant…
    Nb : je suis preneur si quelqu’un à des « Tips »/astuce sur l’utilisation efficace de la bibliothèque

    Merci d'avance pour avoir le temps de me lire

    Cdt
    Jerome

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

    Un Userform contrôlant les saisies ne réglerait-il pas les problèmes ?

    Cordialement.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 74
    Points : 59
    Points
    59
    Par défaut
    Un autre de mes objectifs est d'utilisé les options standard d'Excel dans le but que l'administrateur mette le moins possible son nez dans les macros.

    J'ai peut être une nouvelle piste dans la Bibliotheque: Excel/Classe: Validation

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 74
    Points : 59
    Points
    59
    Par défaut [XL-2010] [Excel 2010] – Formules/Audit de formules/« Vérification des erreurs… » à exécuter par macro.
    Re,

    Trop content j'ai trouvé !
    Tous se résume en 1 ligne -Tous ca pour une journée de recherche!!!
    Mais il me reste désormais à savoir comment lui définir la plage ou il doit faire la vérification.

    Voici comment ca fonctionne:
    1.Prérequis:
    1.1 Dans la sheet 1:
    Créer un tableau de structure
    A B C
    1 NOM PRENOM AGE
    2 BED NUL 23
    3 BON DJE 34

    1.2 Créer des données de validation/ Col C2 et C3:
    Autoriser des nombre entiers entre 20 et 40 et désactiver l'onglet Alerte Erreur.

    2 integrer ce code dans la sheet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub test()
     
    Application.Dialogs(xlDialogErrorChecking).Show
     
    End Sub
    3. En C3, saisir "45" et l'onglet vert apparaitra dans la cellule (signifiant qu'il y a qqc d'incohérant)
    Exécuter le code et la fenetre Vérification des erreurs... Apparaitra ) et parcourrera les cellules avec l'onglet en vert en haut à gauche des cellules.

    Il me faut désormais lui definir une plage, si c'est possible :-S??

    JE vous tiens au courant

    Bonne soirée
    Jerome

  5. #5
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    Pas bien compris le lien que tu fais entre la validation et l'alerte sur saisie d'un nombre en texte.
    Pour moi il n'y en a aucun, ça m'a plus embrouillé qu'autre chose.
    Et si tu décoches l'Alerte sur Erreur c'est comme si tu n'avais rien mis en validation.

    Pour tester les alertes d'erreurs sur une plage :
    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
    Sub test()
        ' traitement des alertes d'erreurs
        Dim pl As Range, c As Range
        Set pl = [C2:C3]
        For Each c In pl
            If c.Errors.Item(xlEvaluateToError).Value Then
                'traitement
                Stop
            End If
            If c.Errors.Item(xlTextDate).Value Then
                'traitement
                Stop
            End If
            If c.Errors.Item(xlNumberAsText).Value Then
                'traitement
                Stop
            End If
            If c.Errors.Item(xlInconsistentFormula).Value Then
                'traitement
                Stop
            End If
            If c.Errors.Item(xlOmittedCells).Value Then
                'traitement
                Stop
            End If
            If c.Errors.Item(xlUnlockedFormulaCells).Value Then
                'traitement
                Stop
            End If
            If c.Errors.Item(xlEmptyCellReferences).Value Then
                'traitement
                Stop
            End If
            If c.Errors.Item(xlListDataValidation).Value Then
                'traitement
                Stop
            End If
            If c.Errors.Item(9).Value Then
                'traitement
                Stop
            End If
        Next c
    End Sub
    Je n'ai pas mis d'Else If car je pense qu'il n'est pas exclu que plusieurs alertes aient lieu sur une cellule.
    Pour l'item 9 je n'ai pas trouvé son équivalent en constante. Je te laisse traduire et pointer les autres dans les options pour savoir à laquelle il correspond (fait le savoir)

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlInconsistentListFormula = 9
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 74
    Points : 59
    Points
    59
    Par défaut
    Bonjour eriiic

    Merci pour ton retour.

    Pour le lien entre validation et alerte, il n'y avait rien d'important à retenir. Désolé, si je t'ai embrouillé.

    Merci pour ton code, mais je cherche vraiment à faire apparaitre la fenetre standard sur une plage de cellule définie au préalable (-et non surtoute la feuille)
    Ndrl: LA fenetre standard se trouve dans « Formules/Audits de formules/Vérifications des erreurs… »

    Ce bout de code fait apparaitre la fenetre mais on est limité car la vérification s'arrête au 250 premières Erreur de check. :-c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Dialogs(xlDialogErrorChecking).Show
    D'où mon besoin de faire afficher cette fenetre sur la cellule/la plage définie préalablement dans la macro.

    L'avantage de cette fenêtre standard est que le message est explicite car il reprend celui que j'ai renseigné dans Donnée/Validation de données

    J'espère que je suis plus claire ^^

    Jerome

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 74
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bonjour

    xlInconsistentListFormula = 9
    Bonjour unparia,

    Merci pour ton retour

    Mais je ne comprend pas ton retour/je ne sais pas comment utiliser tes infos

    Tu peux voir dans mon précédant post mon besoin attendu.

    Encore merci

    Jerome

  9. #9
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    tu ne peux pas faire Application.Dialogs(xlDialogErrorChecking).Show sur une plage, d'où ma proposition.
    Selon le type d'erreur tu affiches le message que tu veux.
    Unparia complétait la dernière constante qui manquait, c'est pour remplacer le 9.
    eric

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/02/2014, 12h40
  2. Strtol - Vérification des erreurs ?
    Par Bktero dans le forum C
    Réponses: 7
    Dernier message: 23/11/2010, 22h52
  3. vérification des erreurs
    Par oprian dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/12/2007, 15h52
  4. vérification des erreurs d'un code C++
    Par nadjib2007 dans le forum C++Builder
    Réponses: 15
    Dernier message: 30/08/2007, 06h29
  5. [VBA-E] vérification des erreurs d'arrière plan
    Par WagaSeb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/02/2007, 14h41

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