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 :

Problème lors de la sauvegarde [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 229
    Par défaut Problème lors de la sauvegarde
    Salut à tous,

    J'ai un petit problème pas négligeable qui se pose,

    J'ai un programme avec plusieurs modules

    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
     
    Sub fichier_parPM()
    Dim nb_pm As Integer
    Dim i As Integer
     
    Application.ScreenUpdating = False
    Chemin = "C:\Users\frdorap\Documents\fichier analyse\"
    Fichier = "analyse " & nom_PM & " du " & Format(Date, "dd_mmm_yyyy")
     
    With Feuil3
    .Columns("A:A").Hidden = False
    nb_pm = .Cells(.Rows.Count, 1).End(xlUp).Row
     
    For i = 1 To nb_pm
      nom_PM = .Cells(i, 1).Value
       Call mise_en_forme  'met en forme le fichier resultat
       Call ouvrir_analyse_pm  'ouvre et enregistre le fichier
       Call controle_technique  'traite les contrôle des résultat
     
    Application.DisplayAlerts = False
    Workbooks("analyse " & nom_PM & " du " & Format(Date, "dd_mmm_yyyy") & ".xls").SaveAs Chemin & Fichier & ".xls"
     
    Workbooks("analyse " & nom_PM & " du " & Format(Date, "dd_mmm_yyyy") & ".xls").Close
    Application.DisplayAlerts = True
    Next i
     
    .Columns("A:A").Hidden = True
     
    End With
     
    Application.ScreenUpdating = True
    Shell "Explorer.exe ""C:\Users\frdorap\Documents\fichier analyse""", vbNormalFocus
    le problème c'est qu'il y a des macro accroché à une page des fichiers qui sont créés... et lors de la sauvegarde, il perd toute les macro.

    Comment faire pour ne pas perdre ces ligne de code??

    N'hésitez pas à demander plus de précision, c'est très difficile à expliquer comme il faut le problème par ce que je vais pas donner tout le code.

    Merci d'avance pour votre aide
    Cdt
    DoDo

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,

    en fait il nous faudrait plus la partie de code avec l'enregistrement en lui meme (ligne de code avec Save ou SaveAs).

    Il est probable que cela se joue a ce niveau la.

    De la meme facon, nous donner la partie du code avec l'ouverture du fichier peut se reveler etre pertinente
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Comme tu travailles avec XL 2007, le format d'enregistrement par défaut est probablement .xlsx.
    Si c'est bien le cas, quand tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("analyse " & nom_PM & " du " & Format(Date, "dd_mmm_yyyy") & ".xls").SaveAs Chemin & Fichier & ".xls"
    tu enregistres un classeur au format .xlsx, mais avec un suffixe .xls.

    Cela devrait poser 2 pb :
    • Tu perds les modules du classeur (tout le projet VBA)
    • Quand tu ouvres ensuite ce classeur, tu dois avoir un message qui dit que l'extension du fichier ne correspond pas à son format.
    Tu dois choisir si tu veux enregistrer au format xls ou xlsm.

    Pour cela, après le chemin du fichier, tu précises
    • pour format 97-2003 : xlExcel8
    • pour format xlsm : xlOpenXMLWorkbookMacroEnabled.

    Ce qui donne, par exemple pour le format xls
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("analyse " & nom_PM & " du " & Format(Date, "dd_mmm_yyyy") & ".xls").SaveAs Chemin & Fichier & ".xls", xlExcel8
    Cordialement,

    PGZ

  4. #4
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 229
    Par défaut
    bonjour jpcheck,
    en ce qui concerne les ligne de code avec saveas les voici:

    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
     
    Sub ouvrir_analyse_pm()
     
    Dim wb1 As Workbook
    Dim wb As Workbook
    Dim Chemin As String, Fichier As String
    Dim ws As Worksheet
     
    Application.ScreenUpdating = False
     
    Chemin = "C:\Users\frdorap\Documents\fichier analyse\"
    Fichier = "analyse " & nom_PM & " du " & Format(Date, "dd_mmm_yyyy") '& ".xls"
     
    'Si le fichier existe déjà
    If Dir(Fichier & ".xls") <> "" Then
        On Error Resume Next
        Set wb1 = Workbooks(Fichier & ".xls")
        On Error Resume Next
        'si le fichier est ouvert (dans la même instance excel), on le ferme
        If Not wb1 Is Nothing Then wb1.Close False
    End If
    Set ws = Worksheets("Rapport_Analyse")
    If ws.Visible = xlSheetHidden Or ws.Visible = xlSheetVeryHidden Then
    ws.Visible = xlSheetVisible
    End If
    Set wb1 = Workbooks("analyse tarif t & t-1.xls")
    wb1.Worksheets("Rapport_Analyse").Copy
     
    Application.DisplayAlerts = False
     
    Set wb = ActiveWorkbook
    nom = wb.name
     
    ActiveWorkbook.SaveAs Chemin & Fichier & ".xls"
    wb1.Worksheets("Rapport_Analyse").Visible = xlHidden
    Application.DisplayAlerts = True
     
    Application.ScreenUpdating = True
     
    Set wb = Nothing
    Set wb1 = Nothing
    salut pgz,
    j'ai pensé déjà à changer, mais lorsque j'ai été me renseigner sur la version office des utilisateurs, ils ont pour la plupart 2003.
    donc je suis obliger d'enregistrer en format xls...

    Mais je pense que le problème vient de là, y aurait-ils une possibilité de réctifier ce problème.?

    Merci

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 229
    Par défaut
    J'ai rien dis Pgz, autant pour moi, ta méthode avec xlExcel8 marche parfaitement bien

    Je te remercie,
    Merci beaucoup
    Cdt
    DoDo

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

Discussions similaires

  1. Problème lors d'une sauvegarde de BD MySQL
    Par jerem_orga dans le forum Administration
    Réponses: 1
    Dernier message: 06/06/2012, 17h07
  2. Problème lors de la sauvegarde
    Par fasarah dans le forum Eclipse
    Réponses: 2
    Dernier message: 25/10/2010, 00h33
  3. Problème lors de la sauvegarde d'un fichier .mat
    Par said_gi dans le forum MATLAB
    Réponses: 2
    Dernier message: 22/05/2010, 11h23
  4. [Crystal Report] Problème lors de sauvegarde en pdf
    Par Roach- dans le forum Windows Forms
    Réponses: 0
    Dernier message: 02/02/2009, 17h56
  5. problème lors de la sauvegarde du fichier XML
    Par DiamonDonald dans le forum VB.NET
    Réponses: 15
    Dernier message: 11/02/2008, 16h02

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