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 :

Exécution de la macro ne fonctionne qu'en pas-à-pas [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 2
    Par défaut Exécution de la macro ne fonctionne qu'en pas-à-pas
    Bonjour à tous,

    Voici le contexte dans lequel mon #!@& de problème se situe :

    Dans un répertoire se situent plusieurs fichiers excel, tous construits sur le même modèle : il contiennent des feuilles et des graphes.
    Dans le cadre de mon travail, je dois copier-coller le contenu de chacun de ces classeurs dans un unique fichier word.

    Pour cela, j'ai créé un fichier excel "pilote", qui doit :
    1) générer les multiples fichiers excel
    2) générer le document word

    La génération des fichiers excel fonctionne à merveille.

    En ce qui concerne la génération du document word :

    C'est dans une des macros qui permet de générer mon document que se situe le problème. Le rôle de la macro est de supprimer le contenu d'une page.

    Exécutée en pas-à-pas, elle fonctionne à merveille. En revanche en l'exécutant normalement, une ligne de code est "sautée".

    D'autre part, la génération du document word doit pouvoir se faire sur le poste de tous mes collègues.
    Il se trouve que sur mon poste, tout marche du début à la fin, et le problème de l'exécution pas-à-pas est rencontré uniquement par mes collègues sur leur poste.

    Je précise que j'ai tenté d'enlevé tous les "On Error..." et tous les "Application.DisplayAlerts = False" placés un peu partout, et que rien n'y fait...

    Voilà le bout de code incriminé :
    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 SupprimerPage(NumPage, Doc As Word.Document)
     
        Dim NbLigne As Integer
     
        If Not Doc Is Nothing Then Doc.Activate
        ActiveDocument.Range.Select
     
        Selection.GoTo what:=wdGoToPage, _
        which:=wdGoToAbsolute, Count:=NumPage + 1
        Selection.Move Unit:=wdCharacter, Count:=-1
     
        NbLigne = Selection.Information(wdFirstCharacterLineNumber)
     
        Selection.Move Unit:=wdCharacter, Count:=1 'LIGNE QUI N'EST PAS EXECUTEE EN FONCTIONNEMENT NORMAL
     
        With Selection
            .HomeKey Unit:=wdLine, Extend:=wdMove
            .ExtendMode = True
            .MoveUp Unit:=wdLine, Count:=NbLigne
            .ExtendMode = False
        End With
     
        Selection.Delete
    End Sub
    Y a t-il un génie du vba qui pourrait venir à mon secours avant qu'il ne me reste plus un seul cheveu ;-)
    Merci d'avance,
    Papouf

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 2
    Par défaut
    Le problème est résolu, j'ai changé de fonction supprimer.
    Je la mets en dessous pour ceux que ça intéresserait...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub SupprimerPage(NumPage As Integer, Doc As Word.Document)
     
    Dim rDeb, rFin
        Doc.Activate
        rDeb = Selection.Goto(What:=wdGoToPage, Which:=wdGoToNext, Name:=NumPage).Start
        rFin = Selection.Goto(What:=wdGoToPage, Which:=wdGoToNext, Name:=NumPage + 1).Start
        Doc.Range(rDeb, rFin).Delete
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/04/2015, 11h04
  2. [XL-2003] VBA difference d'execution de macro selon si on est en pas à pas
    Par sharox dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/04/2015, 15h04
  3. [LibreOffice][Tableur] Une macro qui fonctionne sous Linux mais pas sous windows
    Par ludox62 dans le forum OpenOffice & LibreOffice
    Réponses: 3
    Dernier message: 07/01/2014, 21h26
  4. [XL-2007] Problème rencontré sur arrêt exécution d'1 macro en cours de fonctionnement
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/07/2012, 14h08
  5. Réponses: 7
    Dernier message: 15/02/2006, 12h05

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