Comment copier sans la protection
Résolu/Fermé
A voir également:
- Comment copier sans la protection
- Comment copier une vidéo youtube - Guide
- Super copier - Télécharger - Gestion de fichiers
- Copier texte pdf - Guide
- Copier disque dur - Guide
- Sentinel protection installer - Télécharger - Antivirus & Antimalwares
4 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
20 avril 2016 à 00:08
20 avril 2016 à 00:08
Bonjour,
Il suffit de copier les cellules de la feuille protégée dans un feuille vierge.
Par exemple (si feuille 1 protégée et feuille 2 vierge) :
Il suffit de copier les cellules de la feuille protégée dans un feuille vierge.
Par exemple (si feuille 1 protégée et feuille 2 vierge) :
Worksheets(1).Cells.Copy Worksheets(2).Cells
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
20 avril 2016 à 17:37
20 avril 2016 à 17:37
Bonjour,
Alors adaptes ce code :
Alors adaptes ce code :
Option Explicit Sub test() Dim wbk As Workbook Dim shp As Shape ' Créer un classeur vierge contenant une seule feuille Set wbk = Workbooks.Add(xlWBATWorksheet) ' Y copier les cellules de la feuille désirée (à adapter) ThisWorkbook.Worksheets("Feuil1").Cells.Copy wbk.Worksheets(1).Cells ' Supprimer toutes les formes posées sur la feuille For Each shp In wbk.Worksheets(1).Shapes shp.Delete Next shp End Sub
On y est presque. :)
Le code fonctionne mais il faudrait que le format de page reste le même (largeur des colonnes, hauteur des lignes, grandeur de page. En exécutant le code, les formats ne sont plus les mêmes. Il faudrait que tout reste sur une seule page pour pouvoir imprimer. Aussi, ma feuille contient une image qui disparaît quand j'exécute le code, elle devrait rester, sauf les boutons. Mais si c'est pas possible de garder l'image, sans les boutons je peux laisser tomber l'image.
Merci beaucoup votre aide est appréciée.
Le code fonctionne mais il faudrait que le format de page reste le même (largeur des colonnes, hauteur des lignes, grandeur de page. En exécutant le code, les formats ne sont plus les mêmes. Il faudrait que tout reste sur une seule page pour pouvoir imprimer. Aussi, ma feuille contient une image qui disparaît quand j'exécute le code, elle devrait rester, sauf les boutons. Mais si c'est pas possible de garder l'image, sans les boutons je peux laisser tomber l'image.
Merci beaucoup votre aide est appréciée.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
20 avril 2016 à 20:52
20 avril 2016 à 20:52
Bonjour
Les formats restent les mêmes (largeur des colonnes, Formats de cellules, MFC, ...), ce qui peut changer c'est la hauteur de certaines lignes et la mise en page qui n'est pas copiée !
Pour conserver l'image, il suffit de connaître son nom (il apparaît à gauche sur la barre des formules lorsque l'image est sélectionnée), et on peur copier les hauteurs de lignes :
Les formats restent les mêmes (largeur des colonnes, Formats de cellules, MFC, ...), ce qui peut changer c'est la hauteur de certaines lignes et la mise en page qui n'est pas copiée !
Pour conserver l'image, il suffit de connaître son nom (il apparaît à gauche sur la barre des formules lorsque l'image est sélectionnée), et on peur copier les hauteurs de lignes :
Option Explicit Sub test() Dim wbk As Workbook Dim wsh As Worksheet Dim shp As Shape Dim rng As Range Application.ScreenUpdating = False ' Définir la feuille source Set wsh = ThisWorkbook.Worksheets("Feuil1") ' Créer un classeur vierge contenant une seule feuille Set wbk = Workbooks.Add(xlWBATWorksheet) ' Sur la feuille 1 de ce classeur : With wbk.Worksheets(1) ' Y copier les cellules de la feuille source (à adapter) wsh.Cells.Copy .Cells ' Copier la hauteur des lignes For Each rng In .UsedRange.Rows rng.RowHeight = wsh.Rows(rng.Row).RowHeight Next rng ' Supprimer toutes les formes posées sur la feuille, sauf Image 1 For Each shp In .Shapes If shp.Name <> "Image 1" Then shp.Delete Next shp End With Application.ScreenUpdating = True End Sub
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
>
Caroline
20 avril 2016 à 21:54
20 avril 2016 à 21:54
Avec les principales propriétés de mise en page (ne conserves que celles qui sont utiles, ajoutes celles manquent) :
Patrice
Option Explicit Sub test() Dim wbk As Workbook Dim wsh As Worksheet Dim shp As Shape Dim rng As Range Dim psu As PageSetup Application.ScreenUpdating = False ' Définir la feuille source Set wsh = ThisWorkbook.Worksheets("Feuil1") ' Créer un classeur vierge contenant une seule feuille Set wbk = Workbooks.Add(xlWBATWorksheet) ' Sur la feuille 1 de ce classeur : With wbk.Worksheets(1) ' Y copier les cellules de la feuille source (à adapter) wsh.Cells.Copy .Cells ' Copier la hauteur des lignes For Each rng In .UsedRange.Rows rng.RowHeight = wsh.Rows(rng.Row).RowHeight Next rng ' Supprimer toutes les formes posées sur la feuille, sauf Image 1 For Each shp In .Shapes If shp.Name <> "Image 1" Then shp.Delete Next shp ' Copier la mise en page (principales propriétés) With .PageSetup ' Feuille .Orientation = wsh.PageSetup.Orientation .PaperSize = wsh.PageSetup.PaperSize .PrintArea = wsh.PageSetup.PrintArea ' Marges .TopMargin = wsh.PageSetup.TopMargin .BottomMargin = wsh.PageSetup.BottomMargin .RightMargin = wsh.PageSetup.RightMargin .LeftMargin = wsh.PageSetup.LeftMargin ' En têtes et pieds de page .RightFooter = wsh.PageSetup.RightFooter .CenterFooter = wsh.PageSetup.CenterFooter .LeftFooter = wsh.PageSetup.LeftFooter .RightHeader = wsh.PageSetup.RightHeader .CenterHeader = wsh.PageSetup.CenterHeader .LeftHeader = wsh.PageSetup.LeftHeader End With End With Application.ScreenUpdating = True End Sub
Patrice
Caroline
>
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
20 avril 2016 à 22:23
20 avril 2016 à 22:23
Merci infiniment! Cela fonctionne.
:)
:)
20 avril 2016 à 13:58
En même temps c'est une feuille que je voudrais copier dans un nouveau classeur et non sur une seconde feuille.
Ceci, pour ensuite envoyer cette dernière par courriel en pièce jointe, en format excel. (car le destinataire ne peut pas ouvrir les fichiers PDF)
Le but de ceci: En l'enregistrant dans un nouveau classeur, non protégé, on pourra effacer les boutons que contient le formulaire original qui ne servent à rien au destinataire. (Ces boutons servent au départ à sauter d'une feuille à une autre dans un gros classeur). Il faudrait que d'autres personnes puissent faire ceci facilement sans avoir besoin du mot de passe de protection du fichier principal.
Si non, j'ai pensé envoyer par courriel seulement la partie imprimable de la feuille (en utilisant l'affichage des sauts de page et en mettant en gris la partie que je ne veux pas) mais là non plus je ne vois pas comment faire. OUF. Merci si quelqu'un peut m'aider.
Merci