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 :

enregistrer en automatique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2023
    Messages : 9
    Par défaut enregistrer en automatique
    Bonjour,

    J'ai un code pour enregistrer sous un fichier excel à la fermeture pour l'enregsitrer en format XLSX et PDF.
    ça fonctionne très bien.
    Par contre je fais un erreur dans mon chemin car il ne s'enregistre pas là ou je veux.
    Je lui demande de s'enregistrer sous :
    C:\Users\trans\Documents\TRANSMANUTENTION ET TP\DEVIS\DEVIS 2024

    et il s'enregistre sous :
    C:\Users\trans\Documents
    Je ne parviens pas à le faire aller jusque dans Devis 2024

    Voici mon 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
    Dim sPathUser As String
        'code d'origine
    '    sPathUser = Environ$("USERPROFILE") & "\Documents\Transmanutp\DEVIS\"
        sPathUser = Environ$("USERPROFILE") & "\\Documents\Transmanutp\TRANSMANUTENTION ET TP\DEVIS\DEVIS 2024"
     
     
     
        Sheets("Devis").Activate
        N_Devis = Range("F10").Value
        N_Nom = Range("E5").Value
        ActiveWorkbook.Sheets.Copy
        ActiveWorkbook.SaveAs Filename:=N_Devis & " - " & N_Nom & ".xlsx", FileFormat:=xlOpenXMLWorkbook
        ActiveWorkbook.Sheets("Devis").ExportAsFixedFormat Type:=xlTypePDF, Filename:=N_Devis & " - " & N_Nom & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
        ActiveWorkbook.Close
        ThisWorkbook.Activate
        Application.Quit
        Application.DisplayAlerts = False
    Merci de votre aide

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 179
    Billets dans le blog
    53
    Par défaut
    Bonjour
    Je n'ai effectué aucun test mais à la lecture rapide du code, je constate que vous alimentez la variable sPathUser qui semble contenir le chemin où sauver le fichier mais nulle part vous ne l'utilisez dans le code.
    Le chemin utilisé est contenu dans les variables N_Devis et N_Nom elles même contenant les valeurs des cellules F10 et E5 de la feuille Devis
    N'y a t'il pas un petit souci ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre régulier
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2023
    Messages : 9
    Par défaut
    et bien en fait c'est un fichier que j'ai recupéré mais je ne pense pas qu'il y ait une déclaration de variable ailleur.
    Le code initial qui fonctionnait tres bien est commenté.
    Le seul truc que l'on a changé c'est l'emplacement des devis, le chemin est plus long maintenant.

    Merci

  4. #4
    Membre régulier
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2023
    Messages : 9
    Par défaut code complet du fichier
    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
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
        Dim sPathUser As String
        'code d'origine
    '    sPathUser = Environ$("USERPROFILE") & "\Documents\Transmanutp\DEVIS\"
        sPathUser = Environ$("USERPROFILE") & "\\Documents\Transmanutp\TRANSMANUTENTION ET TP\DEVIS\DEVIS 2024"
     
     
     
        Sheets("Devis").Activate
        N_Devis = Range("F10").Value
        N_Nom = Range("E5").Value
        ActiveWorkbook.Sheets.Copy
        ActiveWorkbook.SaveAs Filename:=N_Devis & " - " & N_Nom & ".xlsx", FileFormat:=xlOpenXMLWorkbook
        ActiveWorkbook.Sheets("Devis").ExportAsFixedFormat Type:=xlTypePDF, Filename:=N_Devis & " - " & N_Nom & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
        ActiveWorkbook.Close
        ThisWorkbook.Activate
        Application.Quit
        Application.DisplayAlerts = False
     
    End Sub
     
    Private Sub Workbook_Open()
     
        Dim N_Devis As Integer
        Dim N_Devis_Full As String
        Dim N_Nom As String
        N_Devis = InputBox("Saisir le numéro de devis du jour : ")
        N_Nom = InputBox("Saisir le nom du client : ")
        Sheets("Numérotation").Activate
        Range("D2").Select
        Selection.Value = N_Devis
        N_Devis_Full = "'" & Range("B3").Value
        Sheets("Devis").Activate
        Range("E5").Select
        Selection.Value = N_Nom
        Range("F10").Select
        Selection.Value = N_Devis_Full
        Range("F11").Select
        Selection.Value = Date
     
    End Sub

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 179
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La seule chose que je puisse vous affirmer c'est que dans l'instruction ci-dessous, vous demandez de sauver le fichier à l'emplacement N_Devis & " - " & N_Nom & ".xlsx" soit le contenu des cellules F10 et E5 de la feuille Devis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Filename:=N_Devis & " - " & N_Nom & ".xlsx", FileFormat:=xlOpenXMLWorkbook

    A mon avis dans le code d'origine la cellule F10 de la feuille Devis est alimentée par la variable sPathUser soit le résultat de Environ$("USERPROFILE") & "\\Documents\Transmanutp\TRANSMANUTENTION ET TP\DEVIS\DEVIS 2024"

    [EDIT]
    A la place d'utiliser N.Devis vous pourriez peut-être utiliser la variable sPathUser
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 232
    Par défaut
    Bonjour,

    Modifiez votre chemin. Pas d'espace dans les noms.
    Il est probable que votre problème sera résolu.

  7. #7
    Membre régulier
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2023
    Messages : 9
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    La seule chose que je puisse vous affirmer c'est que dans l'instruction ci-dessous, vous demandez de sauver le fichier à l'emplacement N_Devis & " - " & N_Nom & ".xlsx" soit le contenu des cellules F10 et E5 de la feuille Devis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Filename:=N_Devis & " - " & N_Nom & ".xlsx", FileFormat:=xlOpenXMLWorkbook

    A mon avis dans le code d'origine la cellule F10 de la feuille Devis est alimentée par la variable sPathUser soit le résultat de Environ$("USERPROFILE") & "\\Documents\Transmanutp\TRANSMANUTENTION ET TP\DEVIS\DEVIS 2024"

    [EDIT]
    A la place d'utiliser N.Devis vous pourriez peut-être utiliser la variable sPathUser

    et bien je pense qu'il n'y a rien dans les feuilles et les cellules. En tout cas je ne trouve pas.
    Merci pour votre aide

Discussions similaires

  1. [AC-2003] Créer un enregistrement périodique automatiquement.
    Par finetos dans le forum Access
    Réponses: 6
    Dernier message: 06/12/2009, 10h35
  2. [AJAX] enregistrer brouillon automatiquement
    Par le savoir dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 28/02/2009, 03h50
  3. enregistrer sous automatiquement
    Par PC81 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/07/2008, 15h56
  4. macro pour un "enregistrer sous" automatique
    Par Cilou38 dans le forum VBA Word
    Réponses: 1
    Dernier message: 19/07/2007, 13h22
  5. Réponses: 4
    Dernier message: 23/06/2006, 13h29

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