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 :

Interruption du code


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
    Consultant en Business Intelligence
    Inscrit en
    Mars 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2011
    Messages : 42
    Par défaut Interruption du code
    Bonjour à tous,

    j'ai un petit problème (pas si puisque même quelques personnes relativement expérimentées non pas réussi à le résoudre) :

    J'ai crée une macro qui :

    Parcourt un fichier
    -> Pour chaque fichier, crée une copie et copie colle le contenu du premier fichier à l'intérieur.

    La macro marche bien mais des fois pour certains fichiers la macro ouvre bien le fichier en question et bim plus rien... Problème de comptabilité, d'activation des macros sur certains fichiers? J'ai essayé pas mal de trucs ( Comme le ".RunAutoMacros Which:=xlAutoActivate" après le Workbooks.Open(Filename:=Nom_Fichier) mais rien n'y fait ^^

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Le code de la macro pourrait peut-être nous aider à t'aider...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre averti
    Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2011
    Messages : 42
    Par défaut
    En fait c'est juste que je pensais qu'il y avait un ptit truc à faire (manip ou bout de code à introduire, pour que ça marche).

    Bon je répète le problème : Lorsque la macro passe sur certains fichiers et bien elle s'interrompt et rien ne se passe (pas d'erreur... rien!)

    Le code (qui permet de parcourir les fichiers d'un dossier, et qui crée pour chaque fichier un fichier "jumeau" en recopiant une plage du fichier de base :

    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
     
     
    Sub CopyRmas()
     
    Dim Système As Object           'Système de fichiers
    Dim Dossier As Object           'Répertoire
    Dim Fichiers As Object          'Collection de fichiers du répertoire
    Dim Fichier As Object           'Fichier (élément de la collection Fichiers)
    Dim Nom_Dossier As String       'Nom du répertoire
    Dim Nom_Fichier As String       'Nom du fichier parcouru
    Dim Nom_Fichier2 As String      'Nom du fichier jumeau
    Dim Def_Fichier2 As String      'Nom du fichier jumeau (emplacement)
    Dim compt As Integer            'Compteur de fichiers
     
    'Lecture du répertoire
    Nom_Dossier = "C:\Documents and Settings\lehembrej\Mes documents\RMA confidentiel"
    Set Système = CreateObject("Scripting.FileSystemObject")
    Set Dossier = Système.GetFolder(Nom_Dossier)
    Set Fichiers = Dossier.Files
    'Contrôler chaque fichier du répertoire
    MsgBox Dossier.Files.Count
    compt = 0
    For Each Fichier In Fichiers
        compt = compt + 1
     
      '- On compose le nom du fichier que l'on va aller chercher
        Nom_Fichier = Nom_Dossier & "\" & Fichier.Name
       ' MsgBox Nom_Fichier
      '- On ouvre le fichier
        Workbooks.Open(Filename:=Nom_Fichier).RunAutoMacros Which:=xlAutoActivate
        ActiveWindow.SmallScroll Down:=-51
      '- On copie les données qui nous intéressent
        Sheets("Recto").Select
        Range("A1:BJ93").Select
        Selection.Copy
     
        'Création du fichier jumeau
        Nom_Fichier2 = "twinfile" & Fichier.Name
        Call CreerXLS(Nom_Fichier2)
        Def_Fichier2 = Nom_Dossier & "\" & Nom_Fichier2
     
      '  MsgBox ("Nom Fichier : " & Nom_Fichier2 & "nb fichiers traités : " & compt)
     
        ' Ouverture du fichier jumeau
        Workbooks.Open Filename:=Def_Fichier2
     
        ' On copie les données dans le fichier jumeau
        Sheets("Feuil1").Select
        Range("a1").Select
        ActiveSheet.Paste
     
        'Sauvegarde et fermeture des deux fichiers
        ActiveWorkbook.Save
        ActiveWorkbook.Close
        ActiveWorkbook.Close
     
    Next Fichier
     
    End Sub

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Il faudrait étudier les macros des fichiers qui posent problème. Peut-être y-a-t-il à l'ouverture un code qui pose problème.

    Es-tu bien sûr qu'il faille activer la macro Auto_Activate? Perso, il m'aurait semblé plus intéressant de ne pas l'activer...

    Une autre possibilité serait de lire directement dans le classeur fermé (faq).
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre averti
    Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2011
    Messages : 42
    Par défaut
    Pour la macro Auto_Activate, sans ça ne marchait pas mieux alors... =)

    Sinon un grand merci pour la piste de la lecture en fichier fermé.

    Rha même en passant par la lecture sans ouverture, ça ne marche pas! Dommage l'idée était bonne, merci quand même!

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Sans avoir testé...

    Je ne pense pas, sans avoir pu tester, que cette ligne pose problème, mais je ne comprends pas trop la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWindow.SmallScroll Down:=-51
    Il faut noter que ActiveWindow, à cet endroit de l'exécution, concerne le fichier que tu viens d'ouvrir (pas celui qui contient la macro)... Est-ce normal de descendre de -51 lignes? Pourquoi pas Up:=51 plutôt que Down=-51?

    De plus, ce déplacement est effectué par rapport à la cellule active à la fermeture précédente du fichier, donc, tu dois être sûr de toi pour effectuer cette manoeuvre à l'ouverture du fichier.

    D'autre part, les Select ne sont pas nécessaires, tu peux copier directement les données.

    Pour mieux cerner le problème, tu dois essayer de déterminer le point commun aux fichiers qui posent problème. As-tu essayé la macro en pas à pas?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. [ctrl+alt+del] envoyer l'interruption clavier en code
    Par ikeas dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 09/06/2012, 22h51
  2. Interruption automatique d'un code sas
    Par Kirata dans le forum SAS Base
    Réponses: 4
    Dernier message: 05/04/2012, 13h21
  3. "code execution has been interrupted"
    Par coldfuneral dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/05/2008, 21h00
  4. [VBA Excel] code execution has been interrupted
    Par eagleleader dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/08/2007, 11h46
  5. Interruption d'exécution de code
    Par Kimado dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 07/05/2007, 17h30

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