Exécution de la macro ne fonctionne qu'en pas-à-pas

Papouf

XLDnaute Nouveau
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 :
une partie du code est dans le fichier excel "pilote".
Ce fichier appelle des macros word situées dans un fichier word "pré-rempli"

C'est dans une de ces macros 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:
Sub SupprimerPage(NumPage, Optional 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
 

Papouf

XLDnaute Nouveau
Re : Exécution de la macro ne fonctionne qu'en pas-à-pas

Pour faire avancer un peu le schmilillili...bref.

Dans le fichier excel pilote, j'ai intégré tout le code qui était contenu dans le fichier word.
Je constate toujours le même problème.

Bon, voilà.
 

Papouf

XLDnaute Nouveau
Re : Exécution de la macro ne fonctionne qu'en pas-à-pas

Le problème est résolu, j'ai changé de fonction supprimer.
Je la mets en dessous pour ceux que ça intéresserait...

Code:
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
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 361
Messages
2 087 626
Membres
103 611
dernier inscrit
sebboes