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 :

Macro Xl Enregistrement des classeurs sous un format Excel 4.0


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Macro Xl Enregistrement des classeurs sous un format Excel 4.0
    Bonjour à tous,

    Je me suis récemment mis en tête d'apprendre le langage vba pour excel afin d'automatiser certaines tâches dans mon travail.
    Cependant, j'ai quelques difficultés avec le bout de code présent ci-dessous. Cette macro est sensée utilisée une boucle For Each ... Next afin de sauvegarder les classeurs ouverts en fichiers Excel 4.0. Cependant, à chaque fois que je l’exécute, le déroulement de la macro se bloque et je vois le message suivant:

    Erreur d'exécution 5. Argument ou appel de procédure incorrect.
    L'onglet débogage me surligne la ligne 9

    Egalement, le message suivant s'affiche également:
    Erreur d'exécution 1004. La méthode SaveAs de l'objet Workbook a échoué.
    L'onglet débogage me surligne la ligne 10

    Voici le code sur lequel je travaillais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     Sub EnregistrerFormatExcel4etFermer()
          Dim Classeur As Workbook
          Dim position As Byte
          Dim NomClasseur As String
              For Each Classeur In Workbooks
                    If Not Classeur.Name = "PERSONAL.XLSB" Then
                        NomClasseur = Classeur.FullName
                        position = InStr(NomClasseur, ".xlsx")
                        NomClasseur = Left(NomClasseur, position - 1) & ".xlw"
                      Classeur.SaveAs Filename:=NomClasseur, _                                                                                                                                                                                             ...                    FileFormat:=xlExcel4Workbook
                      Classeur.Close
                   End If
              Next Classeur
     End Sub
    Si vous pouviez m'apporter vos lumières, je vous en serai très reconnaissant.
    En attendant, je vous remercie par avance et vous souhaite à tous de passer un excellent réveillon.

  2. #2
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    bonjour,

    Pour l'erreur 5, appui sur le bouton "débogage" lorsqu'elle apparait et vérifie les valeurs de tes variables Position et NomClasseur en passant le curseur sur ces variables afin d'afficher une info-bulle.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour bbil,

    Merci pour ton aide. J'ai fais ce que tu m'as conseillé. J'ai vérifié la valeur des variables position et NomClasseur et effectivement, position renvoyait la valeur 0.
    Cela pour la simple raison que je n'avais pas enregistré au préalable le classeur dont je souhaitais modifier le format.
    Maintenant je n'ai plus l'erreur d'exécution 5 mais la 1004 est toujours là.

    Dans le même temps, je réécris ici la ligne de code que le débogage me surligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Classeur.SaveAs Filename:=NomClasseur, FileFormat:=xlExcel4Workbook
    Merci beaucoup

    J'ai également vérifié mais la variable NomClasseur renvoie bien le/les noms des classeurs ouverts avec l'extension xlw

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/02/2011, 15h45
  2. Enregistrement des valeurs sous la forme 001
    Par tunis71187 dans le forum Forms
    Réponses: 12
    Dernier message: 04/01/2011, 14h13
  3. enregistrer des modification sous deep freeze
    Par bailamos dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 22/07/2009, 17h09
  4. Enregistrer des fichiers sous VPN
    Par FredericB dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/07/2007, 14h45
  5. [VBA-W]Enregistrer sous au format excel un document Word
    Par tazamorte dans le forum VBA Word
    Réponses: 3
    Dernier message: 20/03/2007, 22h03

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