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 :

[VBA-E] enregistrer un classeur excel depuis un autre classeur


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 32
    Points
    32
    Par défaut [VBA-E] enregistrer un classeur excel depuis un autre classeur
    bonjour,

    je souhaite enregistrer un classeur excel(que l'on apellera B) depuis un autre classeur excel (que l'on appellera A).

    tout est par programmation VBA dans A

    B est ouvert en modification

    je modifie des cellules de B via A (en fait je modifie des mots de passe ou des droits d'accès ou j'ajoute ou supprime des utilisateurs)
    jusque là pas de problème.

    je quitte A (on ferme et on enregistre A et B), les modifications ne sont pas prises en compte.

    j'ai essayer B.save
    B.saveas (B)
    B.close savechanges:=true
    à chaque fois Excel m'envoie un message (que je sais bloquer) me demandant confirmation.je répond oui à chaque fois

    A et B sont fermés. Si je réouvre A ou B aucune de mes modifications ne sont prises en compte.

    j'ai même essayer d'appeler depuis A des auto_macro de B sans succès.

    En fait mon erreur ressemble un peu à B qui serait en lecture seule or ce n'est pas le cas.

    soit je fais quelque chose de faux, soit je n'utilise pas les bons code,...

    merci de m'aider.
    je ne suis en mesure de répondre et tester que du lundi au vendredi courant de la journée

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Points : 566
    Points
    566
    Par défaut
    PEut être bête qce que je vais te dire mais çà peut être une erreur

    Est-ce que par hasard, tu ne ferais pas ton A.quit avant le B.Save ??
    Si c'est le cas, c'est normal qu'il enregistre rien car il quitte tout avant la sauvegarde.....

    Fait d'abord les sauvegardesavant de quitter ton fichier

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 32
    Points
    32
    Par défaut
    non je l'ai vérifier. j'y avais déjà pensé mais merci d'avoir essayer

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Points : 566
    Points
    566
    Par défaut
    Essaie de mettre en commentaire la partie A.Quit et vérifie si ton classeur B est bien sauvegardé avant de tout fermé...
    Es-tu sûr du chemin où tu le sauvegardes ????

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    c'est peut etre une histoire de priorité ou d'activeworkbook
    puisque tu fermes tout en même temps tu peux essayer ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Wb As Workbook
    For Each Wb In Application.Workbooks
        If Not Wb.Name = ActiveWorkbook.Name Then Wb.Close True
    Next Wb
    là, il va te fermer (et enregistrer)tout classeur excel ouvert à l'exeption du classeur actif, donc ton A, et donc, si ça marche et qu'il enregistre, c'est que ça ne viens pas du classeur B mais de ton code

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 32
    Points
    32
    Par défaut
    je vous remercie

    j'essaierai lundi et je vous dirais si cela à fonctionner.

    merci et bon WE

  7. #7
    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
    Citation Envoyé par alsimbad
    c'est peut etre une histoire de priorité ou d'activeworkbook
    puisque tu fermes tout en même temps tu peux essayer ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Wb As Workbook
    For Each Wb In Application.Workbooks
        If Not Wb.Name = ActiveWorkbook.Name Then Wb.Close True
    Next Wb
    là, il va te fermer (et enregistrer)tout classeur excel ouvert à l'exeption du classeur actif, donc ton A, et donc, si ça marche et qu'il enregistre, c'est que ça ne viens pas du classeur B mais de ton code
    Attention à ne pas confondre le classeur actif (celui qui est affiché, qui a le focus) et le classeur où tourne la macro.
    Celui où tourne le code s'appelle ThisWorkbook!

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    yes, oeuf corse
    c'est this workbook

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 32
    Points
    32
    Par défaut
    c'était bien une histoire de priorité comme vous l'aviez dit.
    je pensais qu'en étant sur une feuille active on pouvait l'enregistrer

    mais apparement non.

    merci à tous

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

Discussions similaires

  1. [XL-2007] exporter les une ligne excel vers un autre classeur excel en vba
    Par Maxim0 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/06/2011, 21h55
  2. [XL-2007] exporter les donnée excel vers un autre classeur excel en vba
    Par aminee1666 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/06/2011, 10h58
  3. créer un classeur Excel à partir d'autres classeurs
    Par aweb dans le forum Macros et VBA Excel
    Réponses: 30
    Dernier message: 30/08/2010, 13h40
  4. Réponses: 1
    Dernier message: 29/05/2008, 17h10
  5. Enregistrer une feuille Excel sur un autre classeur
    Par Manou34 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/01/2008, 16h41

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