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 :

Sauvegarde impossible VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 38
    Points : 18
    Points
    18
    Par défaut Sauvegarde impossible VBA
    Bonjour,

    J'essaie d'enregistrer un fichier via une macro vba, voici ma macro :

    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
    50
    51
    52
    53
    54
    Public Sub somme()
    Application.ScreenUpdating = False
    ' ws1= reference à la feuille des clients
    Set ws1 = Worksheets(1)
    ' i pointeur de ligne dans la feuille clients
    i = 4
    ' nplc client en cours de traitement
    nplc = ""
    ' on parcourt la feuille des clients
    While ws1.Cells(i, "B") <> 0
    
     ' si le numéro de client sur la ligne i est différent du client en cours
    If ws1.Cells(i, "B") <> nplc Then
        ' si client en cours est non blanc
        If nplc <> "" Then
          wb.SaveAs ws2.Name & ".xlsx"
          wb.Close
        End If
        ' on crée un nouveau classeur extrait client
        ' wb classeur extrait client
       Set wb = Workbooks.Add
        ' ws2 feuille extrait client
       Set ws2 = wb.Worksheets(1)
        ' nplc = client en cours
       nplc = ws1.Cells(i, "B")
        Application.StatusBar = "Client " & nplc & " en cours de création"
        Name_Feuille = ("OTOC_Service_") & nplc & ("_") & Format(Date, "dd-mm-yyyy")
        ' on copie la ligne
        ws1.Range("A3:I3").Copy ws2.Range("A1")
        ' j pointeur de ligne dans le classeur extrait client
        j = 1
    
      End If
      ' si on n'a pas le statut = 0 sur cette ligne
      If Not (ws1.Range("A" & i)) = 0 Then
        ' incrémente pointeur de ligne
        j = j + 1
        'on copie la ligne
        ws1.Rows(i).Copy ws2.Range("A" & j)
        Range("H" & j + 1 & ":I" & j + 1).Formula = "=SUM(H2:H" & j & ")"
     End If
       
    ' on passe à la ligne client suivante
    i = i + 1
    Wend
    
    
    ' on enregistre le dernier classeur
    wb.SaveAs Name_Feuille & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
    Application.ScreenUpdating = True
    Set ws1 = Nothing
    Set ws2 = Nothing
    Application.StatusBar = "traitement terminé"
    End Sub
    La ligne en jaune représente l'erreur que je rencontre, auriez-vous une idée? Merci beaucoup!

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 161
    Points : 155
    Points
    155
    Par défaut
    Bonjour à tous,
    Ce classeur avec ce nom existe il déjà dans le répertoire de destination?
    si oui il faut changer le nom du nouveau classeur

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 38
    Points : 18
    Points
    18
    Par défaut
    Bonjour et tout d'abord merci.

    Pour répondre, non, ce nom de classeur n'existe pas encore, c'est un classeur crée qui a un nom différent du reste.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 161
    Points : 155
    Points
    155
    Par défaut
    De mon coté ce code fonctionne excel 2007
    je ne comprend pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Set wb = Workbooks.Add
    nplc = 5
    Name_Feuille = ("OTOC_Service_") & nplc & ("_") & Format(Date, "dd-mm-yyyy")
    wb.SaveAs Name_Feuille & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 38
    Points : 18
    Points
    18
    Par défaut
    D'où viens ton "nplc = 5"?

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Bonjour.
    Citation Envoyé par Rosees Voir le message
    La ligne en jaune représente l'erreur que je rencontre
    Et nous faire partager le message d'erreur, c'est trop demander ?‼

    Souvent la solution est proche via l'aide du message d'erreur …

    Ensuite quand une ligne est composée de variables comme Name_Feuille alimentée par nplc par exemple,
    ce n'est pas compliqué d'y placer un point d'arrêt puis de relancer l'exécution afin de vérifier les variables …

    Peut-être un caractère interdit pour un nom de fichier …

Discussions similaires

  1. [XL-2010] Sauvegarde impossible: Plantage VBA
    Par Excel_man dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/02/2013, 19h55
  2. gedit - sauvegarde impossible
    Par dracorb dans le forum Unix
    Réponses: 2
    Dernier message: 04/04/2011, 12h54
  3. [AC-97] Fermeture d'un état sans sauvegarder en VBA
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 8
    Dernier message: 24/11/2010, 11h46
  4. Sauvegarde impossible .
    Par OrthoMaker dans le forum XCode
    Réponses: 6
    Dernier message: 06/05/2010, 22h49
  5. Réponses: 0
    Dernier message: 04/02/2009, 16h12

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