Prolème de protection.

  • Initiateur de la discussion Initiateur de la discussion pat12
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pat12

XLDnaute Occasionnel
Bonjour,
J'ai un code qui fait deux actions:
Il supprimer des lignes sur une feuille inventaire.
Il efface des cellules sur une feuille Recherche
Ce code fonctionne très bien, mais j'ai placé dans ThisWorkbook un code pour protéger les feuilles (sans mot de passe).
Il faut donc enlever et remettre la protection au début et a la fin du code sachant qu'il fait deux action sur deux feuille différant et la je bloque.
J’ai besoin d’aide.
Merci
Private Sub CommandButton5_Click()
Select Case MsgBox(">>>ATTENTION<<<" & Chr(13) & "Vous allez supprimer définitivement les lignes sélectionnées dans le listing. " & Chr(13) & "Voulez-vous continuer.", vbYesNo, "Suppression des lignes")
Case vbYes
Dim Lig As Long, Grille As Variant, Trouve As Range, Plage As Range
For Lig = 1 To Selection.Rows.Count
Grille = Selection(Lig, 5).Value
With Sheets("inventaire")
Set Trouve = .Range("E8:E" & .[E65536].End(xlUp).Row).Find(Grille, LookIn:=xlValues, lookat:=xlWhole)
If Not Trouve Is Nothing Then
If Plage Is Nothing Then
Set Plage = .Rows(Trouve.Row)
Else: Set Plage = Union(Plage, .Rows(Trouve.Row))
End If
End If
End With
Next
If Not Plage Is Nothing Then Plage.Delete
Range("A9:L1634").Select
Selection.ClearContents
Range("A9").Select
Case vbNo
'procédure si click sur Annuler
End Select
End Sub
 
Re : Prolème de protection.

Désolé je n'arrive toujours pas à le faire fonctionner avec les protections, malgré ton excellente explication.
Le code ce bloque sur (Plage.Delete) qu'il met en jaune.
Il ne me reste plus qua ne rien protéger.
pat12
 
Re : Prolème de protection.

Poutan le code fonctionne trés bien sans les protections des feuilles ?

Le fichier est trop volumineux pour passer par le site.

En deux mots je sélectionne des lignes sur la feuille inventaire par des couleurs, ensuite je vais sur la page recherche et la je clique sur un bouton qui correspond a la couleur que je veux les lignes sélectionner sur la première feuille ce copie dans celle la.

La mon code rentre en fonction la.
Je sélectionne les lignes complète de la feuille je clique sur le bouton et j’ai un message qui me rappelle que je vais supprimer les lignes définitivement sur la première feuille et effacer simplement les lignes sur la deuxième feuille.
Ce n’est pas facile d’expliquer en écrivent, j’espère que j’ai été clair.
Merci encore.
 
Re : Prolème de protection.

Re,

Peux-tu réduire ton fichier en laissant suffisamment de données pour qu'il soit compréhensible et exploitable, ton code et, au besoin, une explication du fonctionnement, car, là, je ne vois personnellement pas, mais, bon, d'autres verront peut-être plus clair.

Tu le zippes avec le compresseur intégré de Windows, ce qui permet d'y mettre pas mal de données.
 
Re : Prolème de protection.

Bonjour Pat12, JeanPierre 🙂,
Est-il normal que ta feuille soit dans la boucle et non pas extérieure à la boucle ? J'aurais plutôt tendance à l'écrire comme ceci
Code:
Private Sub CommandButton5_Click()
Select Case MsgBox(">>>ATTENTION<<<" & Chr(13) & "Vous allez supprimer définitivement les lignes sélectionnées dans le listing. " & Chr(13) & "Voulez-vous continuer.", vbYesNo, "Suppression des lignes")
Case vbYes
Dim Lig As Long, Grille As Variant, Trouve As Range, Plage As Range
[COLOR=red][B]With Sheets("inventaire")[/B][/COLOR]
[B][COLOR=red].Unprotect[/COLOR][/B]
For Lig = 1 To Selection.Rows.Count
Grille = Selection(Lig, 5).Value
Set Trouve = .Range("E8:E" & .[E65536].End(xlUp).Row).Find(Grille, LookIn:=xlValues, lookat:=xlWhole)
If Not Trouve Is Nothing Then
If Plage Is Nothing Then
Set Plage = .Rows(Trouve.Row)
Else: Set Plage = Union(Plage, .Rows(Trouve.Row))
End If
End If
Next
If Not Plage Is Nothing Then Plage.Delete
[COLOR=seagreen]Range("A9:L1634").Select[/COLOR]
[COLOR=seagreen]Selection.ClearContents[/COLOR]
[COLOR=seagreen]Range("A9").Select[/COLOR]
[COLOR=red][B].Protect[/B][/COLOR]
[B][COLOR=red]End With[/COLOR][/B]
Case vbNo
'procédure si click sur Annuler
End Select
End Sub
D'autre part les lignes en vert sont en référence de feuille relative et non absolue, ne manquerait-il pas un petit "." ?
Bon dimanche 😎
 
Re : Prolème de protection.

Re 🙂,
Si ces ligne sont bien sur la feuille Inventaire :
Code:
[COLOR=#2e8b57].Range("A9:L1634")[/COLOR][COLOR=seagreen].ClearContents[/COLOR]
[COLOR=seagreen].Range("A9").Select[/COLOR]
Sinon,
Code:
[COLOR=#2e8b57]Sheets("Autre").Range("A9:L1634").ClearContents[/COLOR]
[COLOR=seagreen]Sheets("Autre").Range("A9").Select[/COLOR]
A + 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
223
Réponses
4
Affichages
461
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
317
Réponses
7
Affichages
163
Retour