Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1341 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Macro permettant de sauvegarder que quelques onglets

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Macro permettant de sauvegarder que quelques onglets

n°2153973
Lachanteus​e1
Posté le 23-08-2012 à 11:15:03  profilanswer
 

Bonjour,
 
J'ai parcourus le forum, mais je n'ai pas trouvé de réponse à ma question...
Alors voici mon problème :
J'ai un fichier Excel, qui comporte 15 onglets, dont 6 seulement sont apparents.
Une macro est intégrée à la première feuille qui permet d'ouvrir un autre fichier excel et de rapatrier des données.
Les divers onglets se remplissent.
Je souhaiterais faire une seconde macro qui me permettrais deux choses :
  - De verrouiller la fonction "enregistrer" pour qu'aucune modification ne soit apportée, mais qui propose à la place "enregistrer sous"
  - Que lors de "l'enregistrement sous" seulement 5 onglets se sauvegardent et qu'aucune macro ne soit sauvegardée.
 
Le but étant d'avoir un nouveau fichier Excel (ou sous format pdf) qui prenne beaucoup moins de place que celui contenant les 15 onglets et la macro.
 
Merci d'avance si quelqu'un peut me proposer une réponse.

mood
Publicité
Posté le 23-08-2012 à 11:15:03  profilanswer
 

n°2154003
rufo
Pas me confondre avec Lycos!
Posté le 23-08-2012 à 14:35:58  profilanswer
 

Le verrouillage de l'enregistrer sous doit se faire sur l'événement Open du classeur avec une boucle sur les onglets :

Code :
  1. 'A la fermeture du fichier, on verrouille les feuilles de données
  2.    For i = 1 To Worksheets.Count
  3.        Worksheets(i).Protect Contents:=True, UserInterfaceOnly:=True
  4.    Next


 
Pour l'enregistrer sous, ta macro doit :
1) ouvrir une boîte de dialogue qui va permettre de saisir le nouveau nom du fichier et son emplacement
2) créer un nouveau classeur vierge
3) déverrouiller la protection sur les onglets à copier qui a été mise en place à l'ouverture du classeur (mettre False à la place de True pour UserInterfaceOnly et Contents)
4) copier dedans le contenu des onglets que tu veux
5) enregistrer ce nouveau classeur avec le nom saisi par l'utilisateur en 1)
6) dans le classeur ayant servi de source, reverrouiller les onglets qui ont été copiés
 
Qq instructions qui te seront utiles :

Code :
  1. 'On active le fichier de référence
  2.            Workbooks(sNomFichierReference).Activate
  3.            
  4.            'On copie le contenu des feuilles de données dans le fichier de référence, au même endroit
  5.            For i = 1 To iNumFeuilles
  6.                'On définit la plage de cellules à copier pour chaque feuille
  7.                Workbooks(sNomFichierCourant).Worksheets(i).Range(sColonneMin & iLigneMin & ":" & sColonneMax & iLigneMax).Copy Destination:=Workbooks(sNomFichierReference).Worksheets(i).Range(sColonneMin & iLigneMin & ":" & sColonneMax & iLigneMax)
  8.            Next
  9.            
  10.            'La copie est terminée, on sauve et ferme le fichier de référence
  11.            Workbooks(sNomFichierReference).Save
  12.            Workbooks(sNomFichierReference).Close


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Macro permettant de sauvegarder que quelques onglets

 

Sujets relatifs
[VBA] Macro pour manipuler des valeurs entre 3 feuilles d'un classeurEnvoi des onglets par emails
macroMacro sur plusieurs fichier Excel d'un même répertoire
[Macro Excel] Dupliquer sans remplacer[macro excel] emplacement fixe mais nom de fichier changeant
[Excel - Macro] Boucle Do, trouver l'erreur...macro excel / classement de valeurs
macro Excel pour un graphique dynamique 
Plus de sujets relatifs à : Macro permettant de sauvegarder que quelques onglets


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR