Insertion sous une feuille protéger
Bonjour à toutes et à tous,
Je suis confronté à un problème que je n'arrive pas à résoudre malgré de nombreuses recherches sur le Web.
Mon problème est le suivant : J'ai un bouton permettant de lancer une macro qui elle-même lance un formulaire. Cette macro rajoute une ligne dans le tableau et les informations complétés dans le formulaire s'écrivent dans la ligne rajoutée.Or, lorsque je protège mon tableau nommé "Xx 2019", il m'est impossible de faire fonctionner cette macro :
Message d'erreur :
"Erreur d'éxécution '1004'
La méthode Insert de la classe Range a échoué".
J'aimerais donc savoir s'il existe une solution à ce problème.
Mon code :
Workbook :
Private Sub Workbook_Open()
Dim WS_Count As Integer
Dim I As Integer
WS_Count = ActiveWorkbook.Worksheets.Count
For I = 1 To WS_Count
With ActiveWorkbook.Worksheets(I)
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, UserInterfaceOnly:=True
End With
Next I
End SubModule (Macro que je lance avec mon bouton :
Sub Test()
Dim DernLigne As Long
Ligne = ActiveCell.Row
If Range("B" & Ligne) = "" Then
If Range("C" & Ligne) = "" Then
If Range("D" & Ligne) = "" Then
If Range("E" & Ligne) = "" Then
If Range("F" & Ligne) = "" Then
If Range("G" & Ligne) = "" Then
UserForm2.Show
Else
Rows(Ligne + 1).Insert Shift:=xlDown
UserForm1.Show
End If
Else
Rows(Ligne + 1).Insert Shift:=xlDown
UserForm1.Show
End If
Else
Rows(Ligne + 1).Insert Shift:=xlDown
UserForm1.Show
End If
Else
Rows(Ligne + 1).Insert Shift:=xlDown
UserForm1.Show
End If
Else
Rows(Ligne + 1).Insert Shift:=xlDown
UserForm1.Show
End If
Else
Rows(Ligne + 1).Insert Shift:=xlDown
UserForm1.Show
End If
End SubUserForm :
Private Sub CommandButton2_Click()
Unload Me
End Sub
'Pour le formulaire
'Pour le bouton Nouveau contact
Private Sub CommandButton1_Click()
If MsgBox("Confirmez-vous l'insertion ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
L = ActiveCell.Row + 1
Range("B" & L).Value = TextBox1
Range("C" & L).Value = TextBox2
Range("D" & L).Value = TextBox3
Range("E" & L).Value = TextBox4
Range("F" & L).Value = TextBox5
Range("G" & L).Value = TextBox6
End If
End Sub
Private Sub Label4_Click()
End Sub
Private Sub UserForm_Click()
Dim J As Long
Dim I As Integer
Set Ws = Sheets("Xx 2019") 'Correspond au nom de votre onglet dans le fichier Excel
For I = 1 To 7
Me.Controls("TextBox" & I).Visible = True
Next I
End SubMerci d'avance je compte sur vous
Bonne journée
Flammz
Bonjour et bienvenue,
Merci de joindre un fichier à ta demande pour une aide adaptée du forum.
Cdlt.
Re-Bonjour,
Ci-joint le tableau Excel. J'ai enlevé la protection vous pouvez y accéder.
Flammz
Re,
Ton ficher en retour, et un peu de lecture :
https://docs.microsoft.com/fr-fr/office/vba/api/excel.worksheet.protect
A te relire.
Cdlt.
Re,
Merci beaucoup Jean-Eric je me penche sur le code que vous avez rajouté car je ne le comprends pas. Je reviens vers vous ci d'ici fin d'apres-midi je ne comprends toujours pas.
Derinière question, quel mot de passe avez vous mit ?^^"
Flammz
Oubliez ma question sur le mot de passe j'ai trouvé par moi-même dans votre code ^^