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 :

Freeze après macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 18
    Par défaut Freeze après macro
    Bonjour,

    j'a créé une macro ouvrant un classeur A, allant chercher des données, les copiant et les collant dans le classeur B, et fermant le classeur A.

    Ma macro fonctionne très bien, à ceci près qu'il est impossible ensuite de lancer la moindre macro, et même d'afficher la liste des macros, et ce dans tous les classeurs d'ouverts. Je suis obligé de fermer Excel pour pouvoir de nouveau exécuter une autre macro.

    D'où vient ce problème et comment le résoudre ?

    Merci,

    4A

    ANNEXE : le code

    Code MaMacro : 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
     
    Sub MaMacro()
    Dim laDate As String, CelDate As Range ', lgn As Long
    Dim leSuivi As String, KW As String
     
    leSuivi = ActiveWorkbook.Name
    With Worksheets("suivi jour")
        .Range("A1:A368").Select
        laDate = Range("A3").End(xlDown).Value
        ligne = Range("A400").End(xlUp).Row
    End With
     
    'ouverture kw
    kwPath = ThisWorkbook.Path & "/" & "kw.xls"
    Workbooks.Open Filename:=kwPath, CorruptLoad:=XlCorruptLoad.xlRepairFile
    KW = ActiveWorkbook.Name
     
    With Worksheets("Récupéré_Feuil1")
        Sheets("Récupéré_Feuil1").Select
        Set CelDate = .Range("A1:A45").Find(laDate, LookIn:=xlValues)
        .Range("A5:A38").Select
        laFin = Range("A5").End(xlDown).Row
     
    If CelDate Is Nothing Then
        MsgBox ("Aucune donnée à extraire")
        Exit Sub
    Else
        llaDate = CelDate.Row + 1
    End If
    End With
    'Réorganisation des données dans le classeur KW avant la copie vers SUIVI
    Range(Cells(llaDate, 1), Cells(laFin, 2)).Copy
    Cells(60, 1).Select
    ActiveCell.PasteSpecial Paste:=xlPasteValues
     
    Range(Cells(llaDate, 8), Cells(laFin, 12)).Copy
    Cells(60, 3).Select
    ActiveCell.PasteSpecial Paste:=xlPasteValues
     
    laNif = 60 - llaDate + laFin
    Range(Cells(60, 1), Cells(laNif, 7)).Copy
     
    Workbooks(leSuivi).Activate
    Worksheets("suivi jour").Activate
     
    Cells(ligne + 1, 1).Select                      'OK
    ActiveCell.PasteSpecial Paste:=xlPasteValues    'OK
     
    'Conversion des String en valeurs numériques et valeurs positives ou nulles
    Call Convert(ligne + 1, ligne + 1 - llaDate + laFin)
     
    Workbooks(KW).Activate
    'Vidage du le presse papier et fermeture de KW
    Range("A1").Copy
    ActiveWorkbook.Close SaveChanges:=False
    End Sub

  2. #2
    Membre éclairé
    Homme Profil pro
    Formateur & Dévrloppeur en Bureautique
    Inscrit en
    Février 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formateur & Dévrloppeur en Bureautique

    Informations forums :
    Inscription : Février 2007
    Messages : 47
    Par défaut
    Bonjour,

    as-tu créé par ailleurs un gestionnaire d'erreurs?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 18
    Par défaut
    Non, pas encore.

    J'en crée un et te tiens au courant des résultats.

    EDIT :

    Je viens d'en créer un. Effectivement, il y a erreur 0, ce qui est signe de bon déroulement de la macro, non ?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Par défaut
    Salut,

    n'y a t-il pas un risque de blocage avec l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveWorkbook.Close SaveChanges:=False
    End Sub
    la macro est fermée, elle ne peut pas exécuter la dernière instruction.

    Peux tu faire un test sans ce Close ?

    PPz

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 18
    Par défaut
    Effectivement, sans ce close, le problème disparaît.

    Donc dans ce cas, comment fermer l'autre classeur automatiquement sans causer de conflit de ce type ?

    Merci.

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Par défaut
    je pige pas pourquoi ça freeze. Réécris le 3 dernières lignes comme ceci:

    au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Workbooks(KW).Activate
    'Vidage du le presse papier et fermeture de KW
    Range("A1").Copy
    ActiveWorkbook.Close SaveChanges:=False
    ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    application.cutcopymode=false
    Workbooks(KW).Close SaveChanges:=False
    est ce que le classeur qui est ouvert par la macro n contient pas une macro sur l'évènement before_close?

Discussions similaires

  1. Freez après un drag-drop depuis mon application
    Par djiga4me dans le forum API, COM et SDKs
    Réponses: 0
    Dernier message: 05/11/2014, 00h35
  2. Recentrer la vue dans une feuille (après macro)
    Par Frululu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/10/2013, 10h51
  3. [XL-2007] reduction taille fichier volumineux apres macro
    Par be4real dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/03/2013, 11h55
  4. [XL-2003] VBA Excel/Access: lecture seule après macro
    Par lahila dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 30/09/2011, 12h44
  5. Sélection ligne entière impossible après macro
    Par riomois85 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 17/01/2011, 09h46

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