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 :

Boucle avec Dir et utilisation de saveas


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut Boucle avec Dir et utilisation de saveas
    Bonjour,
    J'ai encore besoin de votre aide, je finalise mon code et j'ai quelques soucis.

    => J'avais tous mes test hier avec l'objet filesearch, malheuresement il n'est pas pris en charge par excel 2007. J'ai du me rabattre sur Dir, j'ai récupérer un code sur un bouquin, malheuresement la fonction ne boucle pas à cause de la dernière ligne, voici le code :
    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
    
    f = Dir("c:\test\*.xls", 7)
    Do While f <> ""
    r = r + 1
    MsgBox f
     nom = rechercher_nom(f)
                  
               f = FichierExiste("c:\test\nom.xlsx")
      MsgBox ("f vaut ") & f
              
                           If f = False Then enregistrer_fichier (nom) _
       Else: MsgBox ("OK")   
                                       
                      (f true)
                      
                          If f = True Then copier_fichier (nom) _
       Else: MsgBox ("OK")                
      
       f = Dir()
       Loop 
    
    End Sub
    Deuxièmement, j'enregistre les fichiers xls en xlsx voici le code mais le fichier est illisible j'ai beau avoir éssayé plusierus types de fileformat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
          Dim wb As Workbook
    Set wb = GetObject("c:\test\" & nom & ".xls")
    wb.Activate              
     
    wb.SaveAs "C:\Documents and Settings\***\Desktop\test2\" & nom & ".xlsx", FileFormat:=xlWorkbookDefault
                     
          Dim wc As Workbook
    Set wc = GetObject("C:\Documents and Settings\ssoule1\Desktop\test2\" & nom & ".xlsx")
    wc.Activate
    
    wc.Close
    'wb.Close
    wb.close entraine également une erreur à la compilation. Mais mon problème c'est surtout la boucle et l'enregistrement.

    Merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    Tu voudrais faire quoi avec Dir???
    Explique moi ce que dois faire la macro...

    Rechercher un fichier particulier?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut
    Encore Merci jojo,
    Je voudrai parcourir le répertoire à la recherche des fichier excel xls avec dir, mais la j'ai trouvé une solution qui est de supprimer le dernier obtenu.
    Une fois que j'ai ces fichiers xls, je fais un saveas pour les mettre en xlsx, à la demande du client mais là mon fichier s'enregistre bien mais est illisible.
    Par contre il me semble que je récupère également les fichiers .xlsx avec mon code.

    Merci de toute l'aide que tu pourras m'apporter.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut
    je viens de voir il faut ouvrir le fichier avant de faire saveas.
    Je l'ai ouvert grâce à ce que tu m'a montre dans l'autre discussion.
    Je pense que le parcours du réperoire devrait aller ansi que l'enregistrement.
    J'ai une autre question sur le feu.
    Je veux copier une plage de cellule
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
          ' Workbooks(nom & ".xls").Sheets("feuil1").Range("""A2:I" & DerniereLigne & """").Copy _
            Workbooks(nom & ".xlsx").Sheets("feuil1").Range("A2")
    Je veux copier le cotenu des fichiers xls vers le fichier xlsx du même nom, sans écraser le contenu de la cellule de destination et de préférence que la plage va en haut des lignes de la feuille de destination.
    Peux tu m'aider pour ça ce code coince..
    Merci

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

Discussions similaires

  1. Boucle while ou for utilisée avec lame pour les mp3
    Par figarojuju dans le forum Linux
    Réponses: 6
    Dernier message: 09/09/2008, 20h51
  2. Probleme de boucle avec des processus sous UNIX
    Par sebastieng dans le forum POSIX
    Réponses: 6
    Dernier message: 15/10/2005, 18h57
  3. Boucle avec un TIBDataSet
    Par SebCBien dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/09/2004, 17h33
  4. Boucle avec variable à incrémenter
    Par snoop dans le forum Linux
    Réponses: 2
    Dernier message: 19/03/2004, 11h07
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

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