Vérouiller une formule mais possibilité de faire copier/coller

Bens77

XLDnaute Nouveau
Bonjour à tous,

Je suis désespéremment à la recherche d'un moyen de vérouiller certaines formules sensibles d'un fichier, tout en laissant la possibilité de faire un copier/coller de la ligne ...
Chaque jour je copie la ligne précédente.
Sur la même ligne j'ai aussi bien des formules que des cellules que je dois saisir, donc il faut en laisser certaines non vérouillées.

Je ne sais pas si il serait possible à chaque enregistrement de vérouiller toutes les cellules, du coup le lendemain je ne pourrais pas effacer les cellules supérieur à ma nouvelle ligne ...mais il me faudrait toujours la possibilité de faire le copier/coller de ma ligne le matin .... enfin je tourne en rond quoi ...

Si vous avez une idée, je suis preneur de tout. :)

Merci !!
 

Bens77

XLDnaute Nouveau
Re : Vérouiller une formule mais possibilité de faire copier/coller

Re
Une modif : protection des cellules calculées de la dernière ligne.
Cordialement

Merci Efgé !

Franchement c'est nickel !!

Je me rend compte que sur mon fichier, sur la dernière ligne j'ai quasi que des formules et très peu de cellule à renseigner.

Est il possible de faire la manip sur la dernière ligne dans l'autre sens, c'est à dire rendre tout inaccessible sauf les 13 premières colonnes ?

J'ai testé mais j'ai des erreurs dans le code ... pas doué le mec ...

Si non, merci pour tout :) :) :)
 

Efgé

XLDnaute Barbatruc
Re : Vérouiller une formule mais possibilité de faire copier/coller

Re
J'ai envoyé le fichier à un ami pour lui montrer, mais apparemment cela ne fonctionne pas chez lui. Est ce normal ?
Non :D.
Ce code, sans rien de particulier, a été fait sous 2003. Il fonctionne sous 2007 (testé chez moi).Il faut vérifier si votre ami a bien activé les macros. Parfois certaines entreprises interdisent l'utilisation de macro sur certains postes (si, si ça arrive :rolleyes: ). A voir...
Cordialement
 

Bens77

XLDnaute Nouveau
Re : Vérouiller une formule mais possibilité de faire copier/coller

Re tout le monde,

C'était un problème de sécurité sur les macro ... tout fonctionne à merveille !! :D

Voici mon code final :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim plg As Range
Dim derlig
derligne = Range("A" & Application.Rows.Count).End(xlUp).Row
Cancel = True
If Not Application.Intersect(Target, Range("A2:BZ2")) Is Nothing And Target.Count = 1 Then
If Target.Value <> "" Then
Range("A" & derligne + 1).Select
End If
End If
If Not Application.Intersect(Target, Range("A4:BZ" & derligne - 2)) Is Nothing And Target.Count = 1 Then
If Target.Value <> "" Then
Range("A" & derligne + 1).Select
End If
End If
If Not Application.Intersect(Target, Range("D" & derligne & ":E" & derligne)) Is Nothing And Target.Count = 1 Then
If Target.Value <> "" Then
Range("A" & derligne + 1).Select
End If
End If
If Not Application.Intersect(Target, Range("N" & derligne & ":BZ" & derligne)) Is Nothing And Target.Count = 1 Then
If Target.Value <> "" Then
Range("A" & derligne + 1).Select
End If
End If
End Sub​

Si quelqu'un a 2min pour m'expliquer rapidement un "if" et le bloc du début je suis preneur.

Un GRAND Merci Efgé !!

A bientôt ;)
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Vérouiller une formule mais possibilité de faire copier/coller

Re Bens77,
Je vais essayer d'expliquer... ;)
Les commentaires concernent la ligne juste en dessous:

Code:
[COLOR=seagreen][B]'Macro evennementielle qui se lance lorsque la selection change[/B][/COLOR]
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[COLOR=seagreen][B]'On déclare la variable plg (qui servira à définir les zones)[/B][/COLOR]
Dim plg As Range
[COLOR=seagreen][B]'On déclare la variable derligne (qui servira à trouver la dernière ligne non vide de la feuille)[/B][/COLOR]
Dim derlig As Long
[COLOR=seagreen][B]'On récupère le numéro de la dernière ligne (Row) non vide en colonne A et en remontant(Up) depuis la fin (Application.Rows.Count)[/B][/COLOR]
derligne = Range("A" & Application.Rows.Count).End(xlUp).Row
[COLOR=seagreen][B]'On désactive l'édition de la cellule au double click[/B][/COLOR]
Cancel = True
[COLOR=seagreen][B]'1er condition : Si la cellule sélectionnée (target) est dans la plage (Range("A2:BZ2")) et qu'il n'y a qu'une cellule de sélectionnée alors (Then)[/B][/COLOR]
If Not Application.Intersect(Target, Range("A2:BZ2")) Is Nothing And Target.Count = 1 Then
[COLOR=seagreen][B]'2em condition : Si la cellule est différente de rien (est vide) alors[/B][/COLOR]
If Target.Value <> "" Then
[COLOR=seagreen][B]'Selection de la première cellule vide en colonne A (en dessous de la derniere cellule non vide ( + 1))[/B][/COLOR]
Range("A" & derligne + 1).Select
[COLOR=seagreen][B]'Fin de la 2em condition[/B][/COLOR]
End If
[COLOR=seagreen][B]'Fin de la 1er condition[/B][/COLOR]
End If
[COLOR=seagreen][B]'ETC...[/B][/COLOR]
Cordialement

 

Bens77

XLDnaute Nouveau
Re : Vérouiller une formule mais possibilité de faire copier/coller

Merci Efgé !

J'avais presque compris :D

En testant le fichier, j'ai réussi à sélectionner une plage de cellule (soit via le clavier, soit la souris) et faire suppr ...

Il faut vraiment le vouloir mais je suppose qu'il n'y a pas de moyen de bloquer cette possibilité ?

Promis, après j'arrête ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 745
Messages
2 091 589
Membres
105 005
dernier inscrit
Marion43