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 :

Workbook.open et la macro s'arrête


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 262
    Points : 100
    Points
    100
    Par défaut Workbook.open et la macro s'arrête
    Bonjour à tous,

    J'ai un fichier excel avec une feuille. Chaque ligne de la feuille contient un nom dans la colonne A et une ville dans la colonne B.

    Il faut que je crée autant de fichiers excel que de ligne dans la feuille (je simplifie mon problème).

    Chaque fichier contiendra la ligne qui correspond.

    Pour cela, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        For i = 2 To NbLigne + 1
     
            Dim valeur As String
            valeur = tableRole.Range("A" & i).Value
     
            ActiveWorkbook.SaveAs Filename:= _
                ActiveWorkbook.Path & "\" & valeur & ".xls", FileFormat:=xlNormal, _
                Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
                CreateBackup:=False
     
            Dim objWorkbookCible As Workbook
            objWorkbookCible = Application.Workbooks.Open(ActiveWorkbook.Path & "\" & valeur & ".xls")
     
        Next
    Le SaveAs me permet de faire une copie du fichier courant. Ensuite, je veux ouvrir la copie pour faire un traitement dessus.

    Mais lorsque le Application.Workbooks.Open s'exécute, le fichier s'ouvre à l'écran et le fichier courant n'existe plus.
    En fait, le fichier sur lequel s'exécute la macro n'existe plus (il se ferme tout seul) et est remplacé par le fichier que j'ouvre dans le code.
    Le script VBA ne continue plus de s'exécuter...

    Qu'ai-je fait de mal ?

    Merci d'avance.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    et tablerole c'est quoi?

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    ce que tu fais de mal déja, c'est que si tu fais un saveas ton ancien fichier se ferme, et ne reste ouvert que la copie. pourquoi veux tu la réouvrir? par contre en fermant ton ancienfichier, je pense que tu stoppe la macro, puisqu'elle est dans l'ancien fichier.
    tu dois donc laisser ouvert ancienfichier, travailler dessus, et faire un saveas seulement a la fin du travail

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 262
    Points : 100
    Points
    100
    Par défaut
    Merci alsimbad,

    C'était bien la cause de mon problème. Lorsque j'enregistre sous, je deviens la copie du fichier.
    J'ai donc contourné ce problème avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            Source = ActiveWorkbook.Path & "\Fiche Type.xls"
            Destination = ActiveWorkbook.Path & "\" & valeur & ".xls"
     
            Dim xlobj As Object
            Set xlobj = CreateObject("Scripting.FileSystemObject")
     
            If xlobj.FileExists(Destination) Then
                xlobj.DeleteFile Destination
            End If
     
            xlobj.CopyFile Source, Destination, True
    Un grand merci !
    Bonne fin de WE ensoleillé !

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

Discussions similaires

  1. [XL-2003] Arrêt de la macro aprés Workbooks.Open
    Par DébutantVba dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 12/02/2010, 13h03
  2. [Open Office] Récupérer macros Excel
    Par ludo96x dans le forum Excel
    Réponses: 1
    Dernier message: 03/02/2007, 10h22
  3. [VBA-E] sous procédure avec workbook open
    Par raver2046 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 30/03/2006, 00h20
  4. [VBA-E] Lancer workbook open
    Par ptitsoleil87 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 31/12/2005, 12h40
  5. Ouverture CSV par Workbooks.open
    Par PoPmiSiR dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 14/10/2005, 10h19

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