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 plante avec macro sauvegarde feuille et enregistrement [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut Excel plante avec macro sauvegarde feuille et enregistrement
    Bonjour,

    Je souhaite faire une sauvegarde de ma feuille et enregistrement vers un classeur nommé Dossier_Factures et avec pour nom, "le nom du client et le N°Facture à sauvegarder"

    Voici le début de code qui hélas fait me donne un message d'erreur a chaque fois que je veut enregistrer

    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
    Private Function SaveFacture(Sh1 As Worksheet) As String
    Application.ScreenUpdating = False
    Dim fPath As String, VBC As Object, o As Shape, i%, Rng As Range, v As Variant
    ' Adapter la configuration du nom en fonction de tes choix
    ' Penser à faire la même modif dans la procédure ListBox1_Click du module UserForm1
    fPath = "(" & Sh1.Range("N11") & ") " & Sh1.Range("I10")
    fPath = PathFactures & fPath & " " & Sh1.Range("C13") & ".xls"
    Sh1.Copy
    ' Effacement des noms
    With ActiveWorkbook
      i = .Names.Count
      If i Then For i = .Names.Count To 1 Step -1: .Names(i).Delete: Next i
    End With
    ' Remplacement des formules par leur valeur
    For Each Rng In ActiveSheet.UsedRange
      If Rng.HasFormula Then v = Rng.Value: Rng.FormulaR1C1 = v
    Next Rng
    ' Destruction des boutons sur la feuille
    For Each o In ActiveSheet.Shapes
      If InStr(1, o.Name, "CommandButton") Then o.Delete
    Next o
    ' Effacement des colonnes inutiles
    ActiveSheet.Columns("K:V").Delete Shift:=xlToLeft
    ' Définition de la zône d'impression
    ActiveSheet.PageSetup.PrintArea = "$A$1:$K$55"
    ' Destruction du code de la feuille
    For Each VBC In ActiveWorkbook.VBProject.VBComponents
      If VBC.Type = 100 Then
        With VBC.CodeModule
          .DeleteLines 1, .CountOfLines
        End With
      End If
    Next VBC
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs fPath
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Call PrintFacture(True)
    ActiveWorkbook.Close
    SaveFacture = "file:///" & fPath
    End Function
    Merci d'avance

    Cordialement

    Max

  2. #2
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Bonjour,

    - quel message d'erreur?
    - quelle est la ligne concernée?

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonjour issoram,

    Excuse moi j'avais oublié.

    Message d'erreur :
    L'accés par programme au projet visual Basic n'est pas fiable
    Ligne concernée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each VBC In ActiveWorkbook.VBProject.VBComponents
    Merci d'avance

    Max

  4. #4
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Dans options/ Centre de confidentialité / paramètres des macros
    cocher: Accès approuvé au modèle d'objet du projet VBA.

    ça devrait passer.

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Re,

    Exact sa fonctionne très bien .

    Je te remercie beaucoup et te souhaite une bonne journée

    Max

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

Discussions similaires

  1. [XL-2013] Enregistrer un fichier Excel 2013 en Excel 2007 avec macros
    Par TOUGMA dans le forum Excel
    Réponses: 7
    Dernier message: 02/03/2014, 08h03
  2. [XL-2003] Taille impressionante d'un fichier excel partagé avec macro
    Par Jeuson dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/07/2013, 14h45
  3. [XL-2007] Excel plante avec macro sauvegarde feuille vers nouveau classeur avec nom spécifique
    Par stephadm dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 10/05/2012, 14h59
  4. [XL-2007] Excel plante avec les Userform
    Par catetesse dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/10/2011, 13h54

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