Protection et déprotection feuille lors de l'exécution du macro


#1

Bonjour à tous,
J’ai les codes suivants en copiant des données de l’onglet Détail et de les coller dans l’onglet “Historik”.
Le problème c’est que ces deux onglets ne peuvent pas être protégés pour que la macro soit exécuté.
Je voudrais que ces feuilles soient protégés et qu’en lançant un bouton, il n’y a pas de problème.
Ci-après les codes:

Sub nouveauenregistrement()

’ nouveauenregistrement Macro
’ ajout de données

Application.ScreenUpdating = False
Range(“D11”).Select
Range(“D11”).Copy
Range(“D10”).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets(“Historik”).Select
Rows(“13:13”).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range(“A13”).Select
Sheets(“Détail”).Select
Range(“D8”).Select
Selection.Copy
Sheets(“Historik”).Select
Range(“C13”).Select
ActiveSheet.Paste
Sheets(“Détail”).Select
Range(“D5”).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(“Historik”).Select
Range(“D13”).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets(“Détail”).Select
Range(“D6”).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(“Historik”).Select
Range(“E13”).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets(“Détail”).Select
Range(“D7”).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(“Historik”).Select
Range(“F13”).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets(“Détail”).Select
ActiveWindow.SmallScroll Down:=9
Range(“E24”).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(“Historik”).Select
Range(“G13”).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets(“Détail”).Select
Range(“E26”).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(“Historik”).Select
Range(“H13”).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(“G13:H13”).Select
Application.CutCopyMode = False
Selection.NumberFormat = “###,###”" Ar"""
Range(“I3”).Select
Selection.Copy
Range(“B13”).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(“B13:H13”).Select
Application.CutCopyMode = False
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Font
.Color = -10477568
.TintAndShade = 0
End With
Range(“B13”).Select
Selection.Copy
Sheets(“Détail”).Select
ActiveWindow.SmallScroll Down:=-12
Range(“D4”).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ExecuteExcel4Macro “PRINT(2,1,1,1,2,TRUE,FALSE)”
Sheets(“Historik”).Select
Range(“Tableau4[#Headers]”).Select
Selection.AutoFilter
Range(“Tableau4[[#Headers],[N°]]”).Select
ActiveWorkbook.Worksheets(“Historik”).ListObjects(“Tableau4”).Sort.SortFields. _
Clear
ActiveWorkbook.Worksheets(“Historik”).ListObjects(“Tableau4”).Sort.SortFields. _
Add Key:=Range(“Tableau4[[#All],[N°]]”), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(“Historik”).ListObjects(“Tableau4”).Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range(“Tableau4[#Headers]”).Select
Selection.AutoFilter
Columns(“D:F”).Select
With Selection
.HorizontalAlignment = xlLeft
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range(“Tableau4[[#Headers],[NOM ET PRENOMS]:[DIRECTION]]”).Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range(“E2”).Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Columns(“G:H”).Select
With Selection
.HorizontalAlignment = xlGeneral
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range(“Tableau4[[#Headers],[MONTANT FACTURE]:[MONTANT REMBOURSABLE]]”).Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub

Vous remerciant par avance,
Cordialement,


#2

Bonjour,

Sheets("nom de l'onglet").unprotect
au début de la macro

Sheets("nom de l'onglet").protect
à la fin de la macro


#3

Bonjour Mimimathy,
Mon macro a beaucoup de va et vient entre l’onglet “Détail” et " Historik".
Comment je vais y procéder?
Merci


#4

Re,

Avec un classeur modèle, c’est mieux pour travailler :wink:


#5

Re,
C’est d’accord.
Ci-joint le fichier modèle
Merci
=> Copie de Matrice .xlsm (45,3 Ko)


#6

Re,

Regarde si tu n’as pas un problème avec ton classeur joint :thinking:


#7

Re,
Je comprends pas ta remarque!


#8

Re,

Eh bien teste pour voir une macro dans ton classeur joint :thinking:


#9

Re,
ah, j’ai compris, le code VBA est protégé par mdp.
Vraiment désolé!
=> Copie de Matrice .xlsm (45,3 Ko)


#10

Re,

Persiste et signe :-1::-1:


#11

Re,
Toutes mes excuses!!
=> Copie de Matrice .xlsm (45,3 Ko)


#12

Re,
Je pense que le fichier que j’ai envoyé dernièrement est traitable?
Merci à vous!


#13

Re,

Traitable,
Avec autant de module dont 80% sont vides et de plus d’autres modules qui ne servent à rien et ta macro établit avec l’enregistreur
Un classeur sans données exemple,

Non mais, il y a dés fois image


#14

Bonjour,
Qu’attendez vous de ma part alors pourque nous puissions avancer?
Merci


#15

Re,
Bon, après quand même une paire de post, déjà un classeur sans mot de passe,
mais un classeur sans aucune données !
Place au moins des données bidons dans ta feuille, histoire de voir le type et le formatage à y mettre
Ta macro est à refaire de A à Z
L’enregistreur de macro peut servir pour mettre en place un filtre comme tu as fait, ou des lignes de présentation, mais pas pour faire un copier / coller entre feuille.
Sur au moins 50 lignes, tout peut être réduit à moins de 10

Teste ceci
Copie de Matrice test.xlsm (46,9 Ko)


#16

Re,
Je vous remercie et je suis vraiment désolé pour la complication de mon cas.
Je ne possède pas de connaissance en VBA et je suis très limité sur l’enregistrement des macros.
Merci à vous!
Cordialement,