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 :

[VBA-E] Erreur 91


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut [VBA-E] Erreur 91
    bonjour !
    J ai un probleme sur ma 2eme boucle...erreur 91...
    Ce code me permet de
    1/ouvrir des fichiers excel et y appliquer une macro
    2/enregistrer tous les fichiers ouverts au format excel
    J suis un gros novice en VB mais je pense que soit je n arrive pas a instancier la variable activeworkbook.Name soit il faut une condition de sortie pour faire comprendre que quand tous les fichiers sont fermés, il faut s'arrêter...
    Merci à tous, voici le code :
    '
    Dim sFichier As String





    'Définir le chemin
    ChDir ("C:\nico\analyse\en cours\")

    'Ouvrir tous les fichiers
    sFichier = Dir("*.*")
    Do Until sFichier = ""
    Workbooks.OpenText (sFichier), Origin:= _
    xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote _
    , ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, Comma:=False _
    , Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array _
    (3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array( _
    10, 1), Array(11, 1))
    Application.Run "PERSO.XLS!Macro10"

    sFichier = Dir()

    Loop
    ChDir "C:\nico\analyse\en cours\final"
    'enregistrer les fichiers au format excel
    Do

    ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Name, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False

    ActiveWorkbook.Close
    Loop
    End Sub

  2. #2
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Je dis peut-être une bêtise, mais pourquoi est-ce que tu ne les enregistres pas en les fermant juste après avoir appliqué ta macro, dans la même boucle, avec ActiveWorkbook ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    je ne les pas dans la meme boucle car je fais un dir *.* et que le but de cette macro est de transformer des fichier txt en xls (apres un traitement) portant le meme nom que le fichier d'origine.
    En fait si je le fais dans la mme boucle il va reaplliquer la macro de la 1ere boucle donc sans fin et ca me laisse des fichiers inutikisables.

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut Re: Erreur 91
    en fait rien ne dit quand ta boucle "Do .. loop" doit s'arrrêter ...tu dois arriver à un moment ou tu n'as plus aucun classeur ouvert ...
    Citation Envoyé par captaine93
    Do

    ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Name, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False

    ActiveWorkbook.Close
    Loop
    End Sub
    tu pourrai essayer queque chose du genre :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For Each W In Workbooks
    If W.Name <> ThisWorkbook.Name Then
        W.SaveAs Filename:=W.Name, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
        W.Close
    End If
    Next
    qui ferme tous les classeurs ouvert, (sauf celui contenant la macro )


  5. #5
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Donc, si tu fais un
    au lieu de
    ça devrait aller, non?
    Sinon, la boucle sur les classeurs ouverts dans "Workbooks" me semble très bien.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    reponse a bbil :
    Ca marche bien avec ce que tu m as mis mais excel plante a la fin...pas de réponse !
    Il doit manquer qqchose...
    ps: j ai défini W as workbook
    Reponse a Megaxel :
    Les fichiers ne portent pas d'extgension à l'origine mais si on fait juste un "save", il sont enregistrés par défaut en txt.
    Encore merci pour votre aide !

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par captaine93
    reponse a bbil :
    Ca marche bien avec ce que tu m as mis mais excel plante a la fin...pas de réponse !
    Il doit manquer qqchose...
    faudrai que tu nous remontre ton code , tu as bien enlever la boucle Do ... Loop sans conditions ? :

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    OUPSSSSSSSSSSSS
    effectivement j avais oublié de virer le Do ...LOOP !
    Donc ca fonctionne parfaitement !!!!!
    BIG UP a toi et à tous ceux qui m ont aidé !
    Longue vie au forum !

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

Discussions similaires

  1. [VBA-E]Erreur lors d'une copie de cellules
    Par illight dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/02/2006, 11h22
  2. [VBA][EXCEL] Erreur génération d'un graphique
    Par PoZZyX dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 16/01/2006, 15h52
  3. [VBA][EXCEL]Erreur '1004' avec "Application.Run"
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2006, 10h50
  4. [VBA]probleme : erreur 2001 operation annulée
    Par julio78 dans le forum Access
    Réponses: 6
    Dernier message: 09/01/2006, 15h21
  5. [debug VBA]Message erreur 2499 seulement en mode debug
    Par manujuggler dans le forum Access
    Réponses: 4
    Dernier message: 05/01/2006, 22h17

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