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 l'enregistrement d'une copie de mon fichier [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut Problème lors de l'enregistrement d'une copie de mon fichier
    Bonjour,
    Je cherche à créé une macro pour envoyer un fichier par mail à plusieurs destinataire avec Outlook.
    Le code va générer la liste des destinataire et la modifier si nécessaire, ajout et/ou suppression d'une adresse.
    J'ai donc inséré une nouvelle feuille qui contient la liste des destinataires, feuille que je ne veux pas envoyer.
    Je souhaite donc copier la feuille qui m’intéresse dans un nouveau et l'enregistrer dans le même dossier avec un nom légèrement modifié.
    Pour cela j'ai inséré ces lignes dans ma macro.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim SourceFile As Workbook
    Dim DestFile As Workbook
    Dim Chemin As String
     
    Chemin = ThisWorkbook.Path
    Worksheets("WORKLOAD").Copy
    Set DestFile = ActiveWorkbook
    ActiveWorkbook.SaveAs Filename = Chemin & "\" & SourceFile.Name & "_"
    Or le fichier copié est nommé "FALSE" et non pas du même nom que mon fichier source.
    Quelle boulette ai-je commis ?

    Merci pour votre aide et vos conseils

    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  2. #2
    Membre actif
    Homme Profil pro
    Enthousiaste Excel
    Inscrit en
    Avril 2015
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enthousiaste Excel

    Informations forums :
    Inscription : Avril 2015
    Messages : 155
    Points : 242
    Points
    242
    Par défaut
    en mettant :

    debug.print Sourcefile.name
    debug.print Chemin
    , tu as quoi ?

  3. #3
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    SourceFile = Nothing dans ton code présenté

    ça ne doit pas être le seul problème, mais rectifie ça déjà, on verra ensuite si ça continue de coincer

  4. #4
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Bonjour John et Joe,
    J'ai bien évidement mis des petits espions un peu partout , sur
    Chemin
    et sur
    SourceFile.Name
    et j'ai bien les valeurs que je recherche et pourtant... mon fichier s'enregistre avec comme nom "FALSE"

    Cela me fait penser à une valeur que prendrai une variable,
    =TRUE
    ou
    = FALSE
    mais je ne sais pas d'où cela vient...

    Pour info j'ai écris ces lignes sur la base du code suivant proposé par Bbill, une référence sur ce site selon moi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub macro()
     Dim objWorkbookCible As Workbook
     Dim objworkbooksource As Workbook
      Set objworkbooksource = ActiveWorkbook
      Worksheets(1).Copy
      Set objWorkbookCible = ActiveWorkbook
      ActiveWorkbook.SaveAs objworkbooksource.Name & "_" & objworkbooksource.Worksheets(1).Name
    End Sub
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  5. #5
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Euh ...

    tu l'instancies où Sourcefile ?

    je vois rien dans ton code ... contrairement à celui de bbil

    Rajoute Set SourceFile = ActiveWorkbook juste après les déclarations, tu verras


    Pour l'histoire du False : si le chemin d'accès est faux, ou le fichier ne comporte pas de nom ==> le retour est FALSE

    C'est comme quand tu utilises la boite de dialogue "SaveAs" :

    - si on indique un chemin et un nom de fichier : On a en retour une chaine de caractère qui représente la valeur
    - si on annule la boite de dialogue : la chaine retournée et FALSE

  6. #6
    Membre actif
    Homme Profil pro
    Enthousiaste Excel
    Inscrit en
    Avril 2015
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enthousiaste Excel

    Informations forums :
    Inscription : Avril 2015
    Messages : 155
    Points : 242
    Points
    242
    Par défaut
    Par hasard, ca serait pas un problème d'extension ?

    Quand j'utilisae l'enregistreur de macro j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Filename:="blabla\\Classeur1.xlsx"
    AVEC une extention et un autre parametre genre FileFormat

    en plus tu rajoutes un "_".

    A creuser ?

  7. #7
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Joe,
    SourceFile est bien instancié, j'ai oublié de copier la ligne pour ce post, noyée parmi d'autre...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set SourceFile = ActiveWorkbook
    Par contre mon chemin ne peut être que correct car j'ai déclaré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chemin = ThisWorkbook.Path


    Le nom est selon moi bien existant lui aussi et d'ailleurs je vois la valeur dans la fenêtre Espions.
    Je vais mettre un espions supplémentaire sur
    FileName
    , histoire de voir...

    et je ne vois rien, ma feuille est enregistrée, est active ce qui fait que mes espions cherche sur cette feuille, où il n'y a rien....

    John,
    J'ai mis histoire d'avoir un nom différent et ne pas écraser mon fichier source, mais même sans cela j'ai le même problème

    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  8. #8
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Voici un exemple tout simple qui fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub TestSaveAs()
     
    Dim Chemin As String
    Dim NomFichier As String
    Dim Extension As String
     
     
    Chemin = ThisWorkbook.Path
    NomFichier = Mid(ThisWorkbook.Name, 1, Len(ThisWorkbook.Name) - 5)
    Extension = Mid(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4)
    Worksheets("Feuil1").Copy
    ActiveWorkbook.SaveAs Chemin & "\" & NomFichier & "_" & Extension
     
    End Sub

  9. #9
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Joe et John
    Auriez-vous une autre idée pour enregistrer ma feuille dans un autre classeur et dans un autre dossier par exemple, sachant que le fichier fichier d'origine est au format xlsm et que je voudrais un format xlsx.
    En attendant pour contourner le problème je vais mettre mon code dans un fichier spécifique et j'irai chercher le fichier dont j'ai besoin dans un dossier donné, il ne sera donc plus au format xlsm puisqu'il n'y aura plus de macro dedans..
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  10. #10
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Pour passer d'un xlsm à un xlsx proprement, ajoute la propriété "FileFormat" avec la valeur xlExcel12

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Chemin & "\" & NomFichier & "_" & Extension, xlExcel12

  11. #11
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Joe


    C'est ce que je voulais, mais comme je veux un format xlsx j'ai simplement supprimé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Extension As String
    Extension = Mid(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4)
    et remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Chemin & "\" & NomFichier & "_" & Extension
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Chemin & "\" & FileName & "_" & "xlsx"
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  12. #12
    Membre actif
    Homme Profil pro
    Enthousiaste Excel
    Inscrit en
    Avril 2015
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enthousiaste Excel

    Informations forums :
    Inscription : Avril 2015
    Messages : 155
    Points : 242
    Points
    242
    Par défaut
    Je te l'avais dit ;-)

  13. #13
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Joe, John, Le forum
    Dès que j'aurai finalisé mon code je le mettrai dans la rubrique "Contribuez", je pense qu'il pourra servir... A tout le moins pour la partie qui génère la liste des destinataires multiples d'un mail.
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  14. #14
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    oui ça pourra servir pour d'autres

    j'irai jeter un œil ... et me permettrai de te piquer la méthode, ou d'y proposer une amélioration si ta solution est moins "jolie" ou "malléable" que la mienne (qui gère sur une même procédure des multi-listes de diffusions en fonction du type de mail que j'envoie ... en 2 boucle : une pour le type de mail, l'autre pour la mise en copie ou en destinataire principale)

  15. #15
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Citation Envoyé par Djohn92 Voir le message
    Je te l'avais dit ;-)
    Merci John, j'avais la tête dans le guidon et n'y ai pas fais attention
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  16. #16
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour,

    J'arrive un peu tard mais le problème d'origine était là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Filename = Chemin & "\" & SourceFile.Name & "_"
    La bonne syntaxe est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Filename:=Chemin & "\" & SourceFile.Name & "_"
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  17. #17
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Merci Alain,
    Des petits points, des petits points toujours des petits points, des points de première classe, des points de seconde classe ....
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

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

Discussions similaires

  1. Problème lors de l'importation d'une date dans un fichier
    Par juju05 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/01/2010, 15h42
  2. Réponses: 2
    Dernier message: 18/04/2007, 17h37
  3. [POO] Problème lors de l'appel d'une propriété d'un objet.
    Par akecoocoo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/08/2005, 08h51
  4. Problème lors d'un Update sur une date
    Par Nany dans le forum ASP
    Réponses: 3
    Dernier message: 19/05/2004, 22h37

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