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 macro VBA "Excel a cessé de fonctionner"


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème macro VBA "Excel a cessé de fonctionner"
    Bonjour à tous,
    Je suis débutante en programmation VBA et je suis bloquée sur une macro qui fonctionne mais qui de temps en temps plante excel avec des messages du genre "Excel a cessé de fonctionner..." !
    L'objectif de ma macro est le suivant :
    - je saisis des infos sur un tableau de suivi,
    - je clique ensuite sur un bouton "Préparation Facture" qui m'ouvre un user Form
    - je remplis les champs nécessaires et en cliquant sur OK, les infos du userform et quelques infos de mon tableau de suivi sont copiés sur un onglet "Facture" (tjs dans le même fichier)
    - cet onglet "Facture" est ensuite déplacé dans un fichier créé par la macro et qui portera le nom d'une variable (N.B. : le fichier est dans un autre répertoire)

    Comme indiqué plus haut, cette macro marche bien , mais parfois bug ! soit Excel est planté, soit quand je clique sur le bouton de préparation facture, il me dit "Erreur d'exécution 75 ; l'objet est introuvable", alors que 2 minutes avant (lors de la préparation d'une autre facture) il n'y avait aucun problème.
    Ne maitrisant pas la gestion d'erreur, je suis perdue, et je ne comprends pas ces erreurs aléatoires.

    Pourriez-vous m'aider ?
    Voici le bout de code lorsque je clique sur OK de mon userform.
    Je vous remercie par avance pour votre aide précieuse, et vous prie de me pardonner si le code n'est pas écrit dans les règles de l'art... j'apprends doucement !

    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
     
    Sub CMBOK_Click()
     
    Dim RepertoireFacture As String
     
    RepertoireFacture = "C:\Users\POSTE-01\Documents\CONTROLE&MAITRISE\FACTURES\pre_facturation\CM"
     
    Range("A1").Select
    ActiveCell.Value = CMBChoixClient
    ActiveCell.Font.ColorIndex = 2
     
    Range("A17").Select
            ActiveCell.Value = "BON DE COMMANDE N° " & TXTNumCde
     
    Range("A19").Select
        ActiveCell.Value = UCase(TXTObjetInter)
     
    Range("A23").Select
        ActiveCell.Value = "Détails de l'intervention du " & TXTDateInter
     
     
    Range("B36").Select
        ActiveCell.Value = CDec(CMBTVA)
     
    'copier l'en-tête pour supprimer la formule RECHERCHEV
    Range("J1:J4").Select
        Selection.Copy
        Range("B6").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
     
    Range("J1:J4").ClearContents
     
    Range("A1").Select
    'Sheets("FACTURE").Select
    Sheets("FACTURE").Move
     
     
    ActiveWorkbook.SaveAs Filename:=RepertoireFacture & TXTRefCM
     
    ActiveWorkbook.Activate
     
     
    UFPrepaFacture.Hide
    Unload UFPrepaFacture

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    Évite les Select et les Activecell.

    Pour ton code, il peut être ré écrit comme ceci (sans aucune Select)
    Je ne suis pas certain que le plantage viendrait de cela mais, au moins écrire correctement son 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub CMBOK_Click()
    Dim RepertoireFacture As String
     
    RepertoireFacture = "C:\Users\POSTE-01\Documents\CONTROLE&MAITRISE\FACTURES\pre_facturation\CM"
    With Worksheets("FACTURE")
        With .Range("A1")
            .Value = CMBChoixClient
            .Font.ColorIndex = 2
        End With
        .Range("A17").Value = "BON DE COMMANDE N° " & TXTNumCde
        .Range("A19").Value = UCase(TXTObjetInter)
        .Range("A23").Value = "Détails de l'intervention du " & TXTDateInter
        .Range("B36").Value = CDec(CMBTVA)
        'copier l'en-tête pour supprimer la formule RECHERCHEV
        .Range("B6:B9").Value = .Range("J1:J4").Value
        .Range("J1:J4").ClearContents
        .Copy
    End With
     
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=RepertoireFacture & "\" & TXTRefCM & ".xls", FileFormat:=xlNormal
    Application.DisplayAlerts = True
     
    Unload UFPrepaFacture
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Plantage
    Bonjour,

    Merci mercatog pour ces modifications de code. C'est chose faite !

    Par contre, effectivement, ça ne résoud pas mon problème de plantage. Je me retrouve avec les mêmes bugs aléotoires d'enregistrement ; parfois c'est quand je clique sur enregistrer et parfois c'est l'enregistrement automatique qui ne fonctionne pas.
    Ce qui fait que je perds les dernières infos saisies.

    Comment trouver l'origine du problème ?
    Merci à tous pour vos idées !

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Salut,

    J'ai eu le même plantage et depuis que j'ai enregistrer sous le format "excel prenant en charge les macros" plus de plantages !!

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Est-ce que tu valides les données avant de les utiliser ?
    Comme ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        With .Range("A1")
            .Value = CMBChoixClient
            .Font.ColorIndex = 2
        End With
    Es-tu certaine que CMBChoixClient a bel et bien une valeur sélectionnée ?

    NB: je présume que c'est un combobox...

    [Edit] Attention aussi à faire la différence entre ActiveWorkbook (fichier actif) et ThisWorkbook (fichier contenant les macros)
    MPi²

Discussions similaires

  1. vba: "Microsoft excel a cessé de fonctionner" - oldstatusbar
    Par tiber33 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 31/01/2014, 10h56
  2. macro , vba , tableaux excel
    Par kev0631 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/04/2007, 11h47
  3. piloter access depuis macro vba dans excel
    Par debmlc dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/04/2007, 13h41
  4. Envoi de mail via un macro vba sur excel
    Par momolamoto dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/12/2005, 18h51
  5. Probleme d'enregistrement sur Macro/VBA de Excel
    Par life is magic dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/11/2005, 17h23

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