Deprotection

bonsoir

je me trouve devant un petit soucis que je n'arrive pas à résoudre , il est assez simple d'apparence :

je joins le petit bout de code concerné , le but est de retirer une feuille d'un classeur B par son nom , en comparant

une colonne d'une feuille nommée "correction " de mon classeur A si le nom de cette feuille s'y trouve on l'ôte de B

j'ai deja introduit les variables . le probleme est que j'obtient une erreur de type 1004 me specifiant que mon classeur est

protegé pourtant il me semble avoir justement levé la protection de B pour pouvoir retirer la feuille voulue

Application.DisplayAlerts = False
Workbooks.Open Filename:=chemin & "\B.xls"
Workbooks("B.xls").Unprotect "victor"

Set Wkb = Workbooks("A.xls").Sheets("Correction")
    S = Wkb.Range("L15")
    Workbooks("B.xls").Activate
For Each feuille In Sheets
    If (feuille.Name) = S Then

feuille.Delete   ' cette instruction est surlignée en jaune par le debugeur
        Exit For
    End If
Next feuille

Merci pour tout conseil

Bonsoir,

Vu ton code, je penses que ton classeur est déprotégé pas la feuille. Ce n'est pas la même chose.

Rajoute avant la suppression

feuille.Unprotect

et teste.

merci pour cette réponse , j'ai fait le test de suppression d'une feuille protegée lorsque le classeur ne l'est pas et il est donc possible

de supprimer une feuille protegée


j'ai toutefois essayé ta proposition mais ca ne marche pas

il y a toujours une chose qui m'echappe c'est que la feuille souhaitée est quand meme effacée bien que l'erreur 1004 de protection

apparaisse , j'ai essayé d'intercaler l'instruction " application.display alerte := false et meme On error resume next .au debut du code .. rien n'y fait .

Merci pour toute idée s'il y en a

Re,

Merci de nous envoyer les deux classeurs avec la macro. Je pense que on te proposera une solution très rapidement. Ce n'est pas facile de te proposer une solution sans les clés du problème.

bonjour

te remerciant quand meme Yvouille

les deux fichier sont un peu volumineux pour etre envoyés : 24 Mo

j'ai pu m'en sortir en inserant l'instruction " on error resume next " comme ceci :

Set Wkb = Workbooks("A.xls").Sheets("Correction")
    S = Wkb.Range("L15")
    Workbooks("B.xls").Activate
For Each feuille In Sheets
On error resume next
    If (feuille.Name) = S Then

feuille.Delete   ' cette instruction est surlignée en jaune par le debugeur
       Exit For
    End If
Next feuille

et depuis ca marche parfaitement

Merci à tout ceux qui m'ont répondu

Rechercher des sujets similaires à "deprotection"