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 :

Excel 95 vers Excel 2002 [XL-2002]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Dessinateur industriel
    Inscrit en
    Avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Dessinateur industriel
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    Par défaut Excel 95 vers Excel 2002
    Bonjour tout le monde,

    Voici mon problème : j'ai un dossier qui contient 1099 fichiers Excel nommé 2900.xls à 3999.xls certains sont natif Excel 95 et les autres Excel 2002.
    Je voulais par macro écrire une macro dans ThisWorkbook de chaque fichiers. J'ai trouvé ce code sur la faq Excel que j'ai un peu de mal à adapter à ma situation.

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Sub importe()
     
     
    'Nécessite d'activer la référence "Microsoft Visual Basic for Applications Extensibility 5.3"
    Dim Wb As Workbook
    Dim oModule As CodeModule
    Dim VbComp As VBComponent
    Dim x As Integer
    Dim Cible As String
    Dim file As String
    Dim i As Integer
     
    For i = 2901 To 3999
     
    file = Trim(Str(i))
     
     
    Application.Workbooks.Open "D:\Dossier\" & file & ".xls"
     
    Cible = "NomModule"
    'Définit le classeur de destination (qui doit être préalablement ouvert).
    Set Wb = Workbooks(file & ".xls")
     
    'Charge le module dans le classeur
    Set VbComp = Wb.VBProject.VBComponents.Import("D:\ThisWorkbook.cls")
    'Le renomme (pour le supprimer plus facilement ultérieurement
    VbComp.Name = Cible
     
    Set oModule = VbComp.CodeModule
     
    'Transfère les données chargées dans ThisWorkbook.
    'Attention les données existantes dans "ThisWorkbook" sont écrasées.
    With Wb.VBProject.VBComponents("ThisWorkbook").CodeModule
        x = .CountOfLines
        .DeleteLines 1, x
        .InsertLines 1, oModule.Lines(1, oModule.CountOfLines)
    End With
     
    'Suppression du module précédemment chargé
    With Wb.VBProject.VBComponents
        .Remove .Item(Cible)
    End With
     
    Workbooks(file & ".xls").Save
    Workbooks(file & ".xls").Close
     
    Next i
     
    End Sub
    Mais les macros ne s'écrive pas dans les fichiers natif Excel 95, sur ce je m'aperçois qu'en ouvrant manuellement les fichiers et en les enregistrant Excel prévient "3028.xls est un fichier de classeur Microsoft Excel 5.0/95. Voulez-vous convertir ce fichier au nouveau format?"

    Donc je réécris une petite macro pour ouvrir tout les fichiers et les enregistrer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub macro2()
     Dim i As Integer
     
     For i = 2900 To 3999
        Application.Workbooks.Open "D:\Dossier\" & i & ".xls"
        ActiveWorkbook.Save
        ActiveWorkbook.Close
     Next i
     
    End Sub
    Mais avec ce code Excel enregistre au format 95 et je ne sais pas comment le forcer à enregistrer au format 2002.

    Merci d'avance à ceux qui pourrons m'aider.

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename :=....., FileFormat :=xlNormal
    Application.DisplayAlerts = True
    ActiveWorkbook.Close

  3. #3
    Membre habitué
    Homme Profil pro
    Dessinateur industriel
    Inscrit en
    Avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Dessinateur industriel
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    Par défaut
    Merci pour ta réponse mais meme avec ton code le fichier reste en natif excel 95.

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, oops, une malencontreuse erreur de frappe ( corrigée depuis dans post #2 ).Ici tout fonctionne.

    Au final qqch comme
    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
    Option Explicit
     
    Sub tst()
    Dim sFichier As String
    Dim i As Long
        Application.ScreenUpdating = False
        For i = 2900 To 3999
            sFichier = "D:\Dossier\" & i & ".xls"
            Application.Workbooks.Open sFichier
            Application.DisplayAlerts = False
            ActiveWorkbook.SaveAs Filename:=sFichier, FileFormat:=xlNormal
            Application.DisplayAlerts = True
            ActiveWorkbook.Close
            Application.StatusBar = i
        Next i
        Application.ScreenUpdating = True
    End Sub

  5. #5
    Membre habitué
    Homme Profil pro
    Dessinateur industriel
    Inscrit en
    Avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Dessinateur industriel
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    Par défaut
    Merci beaucoup Kiki29 , ça y est tout fonctionne

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

Discussions similaires

  1. Access vers Excel puis vers PDF
    Par adelsunwind dans le forum IHM
    Réponses: 7
    Dernier message: 09/05/2009, 07h36
  2. Migration de Excel 2003 vers Excel 2007
    Par Daejung dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 02/05/2009, 13h18
  3. [FORMULAIRE] Vers Excel puis Vers Email
    Par Fanows dans le forum VBA Access
    Réponses: 3
    Dernier message: 12/02/2009, 11h01
  4. Extraction d'Excel monotable, vers Excel multitables
    Par lilascat dans le forum Excel
    Réponses: 4
    Dernier message: 06/02/2009, 14h59
  5. Access vers excel "sans avoir excel installer"
    Par psyko72 dans le forum VB.NET
    Réponses: 16
    Dernier message: 23/08/2007, 13h50

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