Deprotéger plusieurs feuilles
Résolu
Emilie
-
ThauTheme Messages postés 1442 Date d'inscription Statut Membre Dernière intervention -
ThauTheme Messages postés 1442 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Deprotéger plusieurs feuilles
- Comment faire un livret avec des feuilles a4 - Guide
- Regrouper plusieurs feuilles excel en une seule - Guide
- Bruler des feuilles de laurier - Guide
- Excel ne parvient pas à insérer les feuilles dans le classeur de destination ✓ - Forum Excel
- Créer plusieurs feuilles excel à partir d'une liste ✓ - Forum Excel
5 réponses
Bonjour Émilie,
Essaie comme ça :
Petite remarque sur la déclaration des variables. Tu peux déclarer plusieurs variables dans la même ligne mais il faut spécifier le type de chacune d'entre elles sinon elle prendra le type Variant par défaut (le plus gourmand en mémoire...)
Essaie comme ça :
Sub Copie_TBX() Dim Feuille As Worksheet Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer, f As Integer Dim g As Integer, h As Integer, i As Integer, j As Integer, k As Integer, l As Integer Workbooks.Open Filename:="MON FICHIER.xlsx", UpdateLinks:=0 ActiveWorkbook.SaveAs Filename:="MON FICHIER MENSUEL.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False For Each Feuille In ActiveWorkbook.Worksheets On Error Resume Next For a = 65 To 66 For b = 65 To 66 For c = 65 To 66 For d = 65 To 66 For e = 65 To 66 For f = 65 To 66 For g = 65 To 66 For h = 65 To 66 For i = 65 To 66 For j = 65 To 66 For k = 65 To 66 For l = 32 To 126 ActiveSheet.Unprotect Chr(a) & Chr(b) & Chr(c) & Chr(d) & Chr(e) & Chr(f) & Chr(g) & Chr(h) & Chr(i) & Chr(j) & Chr(k) & Chr(l) If ActiveSheet.ProtectContents = False Then GoTo suite End If Next l Next k Next j Next i Next h Next g Next f Next e Next d Next c Next b Next a suite: Feuille.Select Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False Range("A1").Select Next Feuille feuilleRef.Activate ActiveWorkbook.Save ActiveWindow.Close End Sub
Petite remarque sur la déclaration des variables. Tu peux déclarer plusieurs variables dans la même ligne mais il faut spécifier le type de chacune d'entre elles sinon elle prendra le type Variant par défaut (le plus gourmand en mémoire...)
Bonjour,
Merci pour le code. Toutefois ça ne fonctionne pas. Le fichier se créé mais il ne répond plus.
J'ai supprimer le copier coller dans la macro, ça créé la copie mais ne deprotège que la feuille active.
Merci pour le code. Toutefois ça ne fonctionne pas. Le fichier se créé mais il ne répond plus.
J'ai supprimer le copier coller dans la macro, ça créé la copie mais ne deprotège que la feuille active.
Re,
Pourtant le code de déprotection est à l'intérieur de la boucle des onglets (feuilles) !... Mais, reste à savoir si il est efficace à 100%... J'en doute.
Pourtant le code de déprotection est à l'intérieur de la boucle des onglets (feuilles) !... Mais, reste à savoir si il est efficace à 100%... J'en doute.
J'ai réussi :
Après avoir créé la macro qui enlève la protection (enleve_protection) à part voici le code :
Sub Copier_calculatrice()
Workbooks.Open Filename:= _
"MONFICHIER DE BASE.xlsx"
ActiveWorkbook.SaveAs Filename:= _
"MONFICHIERMENSUEL.xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Dim Feuille As Worksheet, mémo As Boolean, feuilleRef As Worksheet
Application.ScreenUpdating = False
Set feuilleRef = ActiveSheet
For Each Feuille In Worksheets
Feuille.Select
Application.Run "'MON FICHIER DE TRAVAIL.xlsm'!enleve_protection"
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range("A1").Select
Next Feuille
feuilleRef.Activate
Application.CutCopyMode = False
Application.ScreenUpdating = True
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
Merci de ton aide,
Après avoir créé la macro qui enlève la protection (enleve_protection) à part voici le code :
Sub Copier_calculatrice()
Workbooks.Open Filename:= _
"MONFICHIER DE BASE.xlsx"
ActiveWorkbook.SaveAs Filename:= _
"MONFICHIERMENSUEL.xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Dim Feuille As Worksheet, mémo As Boolean, feuilleRef As Worksheet
Application.ScreenUpdating = False
Set feuilleRef = ActiveSheet
For Each Feuille In Worksheets
Feuille.Select
Application.Run "'MON FICHIER DE TRAVAIL.xlsm'!enleve_protection"
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range("A1").Select
Next Feuille
feuilleRef.Activate
Application.CutCopyMode = False
Application.ScreenUpdating = True
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
Merci de ton aide,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question