excel 7 ou 10- empecher la suppression de lignes sans vérrouiller la feuille?

vl31

XLDnaute Nouveau
bonjour,

suite à une mésaventure qui m'a conduit à demander de l'aide sur ce forum (avec succés, merci encore!)

Je voudrais savoir si on peut empêcher quelqu'un de supprimer des lignes dans une feuille sans pour autant bloquer les saisies dans les cellules (pas de verrouillage total de la feuille donc).

peut être faut il en passer par du code vb mais là, je suis pas qualifiée donc si quelqu'un peut m'initier....
 

mikachu

XLDnaute Occasionnel
Re : excel 7 ou 10- empecher la suppression de lignes sans vérrouiller la feuille?

Bonjour,

En effet c'est faisable via vba

Si tu supprime une ligne, cela revient à modifier toutes les colonnes de la feuille. Sur un worksheet_change, tu vérifie cette condition si elle est vérifiée tu annules l'action
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Columns.Count = Columns.Count Then 'vérifie si la modification est réalisée sur toutes les colonnes de la feuille
    Application.EnableEvents = False 'excel ne détecte plus les nouveaux évènements
    MsgBox "Suppression de ligne interdite" 'affichage d'un message pour prévenir de l'interdiction de suppression de ligne
    Application.Undo 'annulation de la suppression
    Application.EnableEvents = True 'excel detecte à nouveau les évènements
End If
End Sub

A noter que cela ne fonctionne que si les macros sont activées...

mikachu
 

mikachu

XLDnaute Occasionnel
Re : excel 7 ou 10- empecher la suppression de lignes sans vérrouiller la feuille?

A noter que tu peux faire la même chose pour empêcher de supprimer des lignes...
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.rows.Count = rows.Count Then 'vérifie si la modification est réalisée sur toutes les colonnes de la feuille
   Application.EnableEvents = False 'excel ne détecte plus les nouveaux évènements
   MsgBox "Suppression de colonne interdite" 'affichage d'un message pour prévenir de l'interdiction de suppression de colonne
   Application.Undo 'annulation de la suppression
   Application.EnableEvents = True 'excel detecte à nouveau les évènements
End If
End Sub
 

Misange

XLDnaute Barbatruc
Re : excel 7 ou 10- empecher la suppression de lignes sans vérrouiller la feuille?

Bonjour

Un petit truc tout bête mais qui marche très bien et sans macro pour faire ce que tu demandes :
tu sélectionnes par exemple les cellules Z1:Z300 (à toi d'adapter !)
tu tapes ="" dans la barre de formule et tu valides par ctrl+maj+enter
ca te crée une formule matricielle
si tu essaies de supprimer des lignes entre 1 et 300 ou d'en ajouter tu ne peux pas le faire. Tu récupères un message un peu sibyllin pour ceux qui ne connaissent pas : impossible de modifier une partie de formule matricielle.

évidemment tu peux faire pareil en A300:Z300 (ou ailleurs) pour protéger les colonnes.
 

vl31

XLDnaute Nouveau
Re : excel 7 ou 10- empecher la suppression de lignes sans vérrouiller la feuille?

très cool ces réponses rapides!
je viens de trouver le code ci dessous sur pcreview.co.uk
ça demande un mot de passe, comme ça moi je peux mais pas les autres.
ceci dit, et vu mon niveau en vb, je vais d'abord expérimenter la solution sans code.
Merci!!! à tous
j'espère pouvoir aider quelqu'un à mon tour un jour... trop cool ce forum.

‘includes override pasword set to a case’
sensitive MyPass
Change to suit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Msg As String
Dim pWord As String
pWord = "MyPass"
Msg = "Deleting Rows/Columns Not Permitted"
If Target.Address = Target.EntireRow.Address Or _
Target.Address = Target.EntireColumn.Address Then
response = InputBox("Enter password")
If response = pWord Then Exit Sub
With Application
EnableEvents = False
Undo
Msg = MsgBox(Msg, 16, "WARNING")
EnableEvents = True
End With
Else
Exit Sub
End If
End Sub
 

vl31

XLDnaute Nouveau
Re : excel 7 ou 10- empecher la suppression de lignes sans vérrouiller la feuille?

Mésange, je suis pas sur d'avoir compris la manip.
quand je tape ="" dans la barre de formule, je remplace la valeur de la cellule de la première colonne (pas glop!) et après je peux plus rien modifier dans les cellules de cette ligne.
Moi je veux empêcher que quelqu’un supprime une ligne, mais il doit pouvoir modifier le contenu des cellule quand même.
Je vais jouer avec la fonction vb pour voir.....
 

poilamonnez

XLDnaute Junior
Re : excel 7 ou 10- empecher la suppression de lignes sans vérrouiller la feuille?

bonjour,

Plus facilement tu selectionnes toutes les cellules avec le petit rectangle à gauche de "A" et au dessus de "1" . tu fait format cellule à l'onglet protection et du décoches la case "vérouillées".

Ensuite tu protéges la feuille en décochant la case "supprimer des lignes" et le tour et joué.

La formule de misange fonctionne mais interdit toute saisie dans les cellules ce qui ne semble pas correspondre à ta demande.

Cordialement
 

Misange

XLDnaute Barbatruc
Re : excel 7 ou 10- empecher la suppression de lignes sans vérrouiller la feuille?

Mais non ça n'interdit pas toute saisie :)
il ne s'agit évidemment pas de rentrer cette formule matricielle à la place du contenu d'une autre cellule mais quelque part ailleurs dans la feuille.
Disons que les données sur la feuille sont dans la plage A1 N445 et qu'on veuille empêcher toute suppression ou addition de ligne entre 1 et 445
on va saisir la formule ="" par exemple sur les cellules T1:T445 et valider de façon matricielle.
Rien n'apparait dans ces cellules mais elle empêchent toute suppression de ligne
Idem pour les colonnes. on fera la manip sur les cellules A500:N500 par exemple

Si on ne veut interdire la suppression de ligne que sur les 100 premières lignes mais laisser les autres libres pour ajout ou suppression, il suffit de ne rentre la formule matricielle que sur T1:T100.
 

vl31

XLDnaute Nouveau
Re : excel 7 ou 10- empecher la suppression de lignes sans vérrouiller la feuille?

ça c'est sans code vb et ça marche.
bon j'ai un peu plus de taf que ça car certaines cellules doivent être protégées mais c'est ce que je vais utiliser.
Poilamonnez, merci !

poilamonnez!!! j'adore ton pseudo :eek:
 

vl31

XLDnaute Nouveau
Re : empecher la suppression de lignes sans vérrouiller la feuille? [RESOLU]

ben oui Misange!... j'suis un peu neuneu moi des fois.
faut dire qu'avant de vous demander ça, j'ai fais chauffer le cerveau à cause de ces p...ins de lignes qui avaient été supprimées dans un fichier. Ca combiné à des cellules qui contenaient de valeurs avec une police de caractère à blanc (donc invisible) et un publipostage tordu, ça m'avait mis un bazar! Bref....du coup je veux empêcher les utilisateurs du fichier excel de virer des lignes à nouveau. Ta solution est pratique. Merci!!
 
Dernière édition:

GOSTO

XLDnaute Nouveau
Re : excel 7 ou 10- empecher la suppression de lignes sans vérrouiller la feuille?



Je met le code avec rectification
il est bon seulement que le codeur a juste fait quelque erreur de ma part
tient ceci ça marche impeccablement

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Msg As String
Dim pWord As String
Dim response As String
pWord = "MyPass"
Msg = "Interdition de supprimer colonne/ligne"
If Target.Address = Target.EntireRow.Address Or _
Target.Address = Target.EntireColumn.Address Then
response = InputBox("Enter password")
If response = pWord Then Exit Sub
With Application
.EnableEvents = False
.Undo
Msg = MsgBox(Msg, 16, "WARNING")
.EnableEvents = True
End With
Else
Exit Sub
End If
End Sub
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa