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 :

Plantage Macro code erreur -214747848(80010108)


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 2
    Par défaut Plantage Macro code erreur -214747848(80010108)
    Bonjour à tous,

    J'ai pour tâche de réaliser un formulaire dynamique de demande de travaux, j'ai réussi tant bien que mal à obtenir un résultat proche de ce que je voulais.
    Néanmoins, je suis confronté à un problème la fin du formulaire je cherche à calculer la date à laquelle le traitement de la demande commencera.

    Pour ce faire j'utilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        'Partie récapitulatif
     
    If Range("C32").Value = "Copie de bdd chronogestor de production CG21PE vers bdd Recette CG21RE" Then
            Range("J220").Value = DateAdd("d", 1, Date)
    End If
    Et là le drame plantage de l'application code erreur -214747848(80010108).



    Merci d'avance pour vos aides.

  2. #2
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Bonjour mister_oreo,

    Je pencherais pour un problème d'Objet.
    Le mot Date est réservé pour le Type Date en VB. Donc tu ne peux pas avoir de variable nommé Date.
    Test avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
        MsgBox DateAdd("d", 1, #12/31/9998#)
    End Sub
    Si pas d'erreur change juste de nom de variable.

  3. #3
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour mister_oreo, antonysansh,

    Personnellement, je n'ai aucun problème avec le code ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Explicit
     
    Sub oDate()
     
    With Worksheets("Feuil1")
        If .Range("A1") = "Copie de bdd chronogestor de production CG21PE vers bdd Recette CG21RE" Then
            .Range("A2") = DateAdd("d", 1, Date)
        End If
    End With
     
     
    End Sub
    Tu dis que ton code plante sur cette ligne, mais tu en montres deux. C'est sur la condition ou sur le DateAdd ?
    N'hésite pas à revenir vers la communauté avec d'avantage de précisions.

    Cordialement,
    Kimy

  4. #4
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 2
    Par défaut
    Merci pour vos réponses rapides,

    Je pensais avoir réussi a insérer mon fichier en pièce jointe.

    Voici le code dans son ensemble :
    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
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
     
    Rows("32:218").EntireRow.Hidden = True
    'Reinitialisation des services si le domaine change
    If Not Application.Intersect(Target, Range("E29")) Is Nothing Then
            Range("C32") = ""
            Range("C45") = ""
            Range("C57") = ""
            Range("C65") = ""
            Range("C77") = ""
            Range("C99") = ""
            Range("C133") = ""
            Range("C170") = ""
            Range("C183") = ""
            Range("C211") = ""
    End If
     
    '§§§§§§§§§§§
     
    'GESTION DU DOMAINE DE COMPETENCE
     
    If Range("E29").Value = "--- Aucun ---" Then
            Rows("32:218").EntireRow.Hidden = True
    ElseIf Range("E29").Value = "ORACLE" Then
            Rows("32:33").EntireRow.Hidden = False
            Rows("34:218").EntireRow.Hidden = True
    ElseIf Range("E29").Value = "CHRONOGESTOR" Then
            Rows("45:46").EntireRow.Hidden = False
            Rows("47:218").EntireRow.Hidden = True
            Rows("34:43").EntireRow.Hidden = True
    ElseIf Range("E29").Value = "Support Constructeur" Then
            Rows("57:58").EntireRow.Hidden = False
            Rows("59:218").EntireRow.Hidden = True
    ElseIf Range("E29").Value = "Gestion espace disque" Then
            Rows("65:66").EntireRow.Hidden = False
            Rows("67:218").EntireRow.Hidden = True
    ElseIf Range("E29").Value = "Patch management" Then
            Rows("77:78").EntireRow.Hidden = False
            Rows("79:218").EntireRow.Hidden = True
    ElseIf Range("E29").Value = "SUPERVISION" Then
            Rows("99:100").EntireRow.Hidden = False
            Rows("101:218").EntireRow.Hidden = True
    ElseIf Range("E29").Value = "SAUVEGARDE" Then
            Rows("133:134").EntireRow.Hidden = False
            Rows("135:218").EntireRow.Hidden = True
    ElseIf Range("E29").Value = "Ordonnancement" Then
            Rows("170:171").EntireRow.Hidden = False
            Rows("172:218").EntireRow.Hidden = True
    ElseIf Range("E29").Value = "FLUX - INTERFACE" Then
            Rows("183:184").EntireRow.Hidden = False
            Rows("185:218").EntireRow.Hidden = True
    ElseIf Range("E29").Value = "HR ACCES" Then
            Rows("211:212").EntireRow.Hidden = False
            Rows("213:218").EntireRow.Hidden = True
    End If
     
    'GESTION DES SERVICES
     
    'ORACLE
    If Range("C32").Value = "Copie de bdd chronogestor de production CG21PE vers bdd Recette CG21RE" Or Range("C32").Value = "Rafraichissement de bdd COBRA de production vers COBRA TEST" Then
            Rows("34:38").EntireRow.Hidden = False
    ElseIf Range("C32").Value = "Rafraichissement de bdd chronogestor de production vers bdd Formation" Then
            Rows("39:43").EntireRow.Hidden = False
    End If
    'CHRONOGESTOR
    If Range("C45").Value = "Connexion TMA GFI sur environnement de PROD" Or Range("C32").Value = "Rafraichissement de bdd COBRA de production vers COBRA TEST" Then
            Rows("47:50").EntireRow.Hidden = False
    ElseIf Range("C45").Value = "Suivi Intervention TMA GFI chronogestor" Then
            Rows("51:55").EntireRow.Hidden = False
    End If
    'Support constructeur
    If Range("C57").Value = "Appel Support Constructeur" Then
            Rows("59:63").EntireRow.Hidden = False
    End If
    'Gestion espace disque
    If Range("C65").Value = "Purge / Agrandissement Espace disque " Then
            Rows("67:75").EntireRow.Hidden = False
    End If
    'Patch management
    If Range("C77").Value = "Installation DOME" Then
            Rows("86:92").EntireRow.Hidden = False
    ElseIf Range("C77").Value = "Mise a jour BIOS / Driver " Then
            Rows("93:97").EntireRow.Hidden = False
    ElseIf Range("C77").Value = "Patch WSUS Infrastructure SharePoint" Then
            Rows("79:85").EntireRow.Hidden = False
    End If
    'SUPERVISION
    If Range("C99").Value = "Mise en place supervision simple" Then
            Rows("101:111").EntireRow.Hidden = False
    ElseIf Range("C99").Value = "Mise en place supervision complexe (MIB)" Then
            Rows("112:122").EntireRow.Hidden = False
    ElseIf Range("C99").Value = "Désactivation supervision sur maintenance ou définitive" Then
            Rows("123:131").EntireRow.Hidden = False
    End If
    'SAUVEGARDE
    If Range("C133").Value = "Mise en place Sauvegarde simple (VMware)" Then
            Rows("135:141").EntireRow.Hidden = False
    ElseIf Range("C133").Value = "Mise en Place sauvegarde complexe (Client)" Then
            Rows("142:153").EntireRow.Hidden = False
    ElseIf Range("C133").Value = "Désactivation sauvegarde sur maintenance ou définitive" Then
            Rows("154:158").EntireRow.Hidden = False
    ElseIf Range("C133").Value = "Restauration de fichiers datant de moins de 3 semaines" Or Range("C133").Value = "Restauration de fichiers datant de plus de 3 semaines" Then
            Rows("159:168").EntireRow.Hidden = False
    End If
    'ORDONNANCEMENT
    If Range("C170").Value = "ordonnancement simple en production agent installé sur host" Or Range("C170").Value = "ordonnancement complexe en production" Then
            Rows("172:181").EntireRow.Hidden = False
    End If
    'FLUX - INTER
    If Range("C183").Value = "Relance interface / Flux" Then
            Rows("185:191").EntireRow.Hidden = False
    ElseIf Range("C183").Value = "Création modification Interface / FLUX" Then
            Rows("192:201").EntireRow.Hidden = False
    ElseIf Range("C183").Value = "Création modification Interface / FLUX (Complexe)" Then
            Rows("201:209").EntireRow.Hidden = False
    End If
    'HR ACCES
    If Range("C211").Value = "Traitement des éléments variable de paye sous HR" Then
            Rows("213:218").EntireRow.Hidden = False
    End If
     
    Rows("220:225").EntireRow.Hidden = True
     
    'Partie récapitulatif
    If Range("C32").Value = "Copie de bdd chronogestor de production CG21PE vers bdd Recette CG21RE" Then
            Range("J220").Value = DateAdd("d", 1, Date)
    End If
     
    End Sub
    Fichiers attachés Fichiers attachés

  5. #5
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Salut,
    Selon moi c'est un problème de boucle à cause de l'événement Worksheet_Change

    il faut indiquer à cet événement de ne pas se déclencher dans certains cas

    avec une variable public par exemple :

    Public PauseEvent as boolean

    dans ta macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    PauseEvent =true
     
    'tes instructions
     
    PauseEvent =false
    dans Worksheet_Change

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if not PauseEvent then
     
    'tes instructions
    end if
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

Discussions similaires

  1. [Mail] récupérer les code erreurs de mail()
    Par Djakisback dans le forum Langage
    Réponses: 2
    Dernier message: 22/03/2006, 17h19
  2. [TSQLStoredProc] Comment connaitre le code erreur renvoye ?
    Par kase74 dans le forum Bases de données
    Réponses: 4
    Dernier message: 24/08/2005, 11h08
  3. Code erreur 131
    Par taket dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 29/06/2005, 15h43
  4. Codes erreur spécifiques
    Par jibe74 dans le forum Débuter
    Réponses: 3
    Dernier message: 10/12/2004, 11h19
  5. [Kylix] code erreur :-10 :(
    Par maamar dans le forum EDI
    Réponses: 2
    Dernier message: 21/09/2003, 01h15

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