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 ...
Re : Vérouiller une formule mais possibilité de faire copier/coller
Bonjour Bens77,
Je pense qu'il faut interdire la saisie de données dans les cellules non vides plutôt que de protéger la feuille.
Je vous joint un "début de commencement d'idée".
Avec quelques explications complémentaires et un petit fichier exemple, je pense qu'une solution devrait apparaitre (peut être pas par moi, mais l'important c'est d'avancer )
Cordialement
Bonjour Bens77,
Je pense qu'il faut interdire la saisie de données dans les cellules non vides plutôt que de protéger la feuille.
Je vous joint un "début de commencement d'idée".
Avec quelques explications complémentaires et un petit fichier exemple, je pense qu'une solution devrait apparaitre (peut être pas par moi, mais l'important c'est d'avancer )
Cordialement
Bonjour Efgé,
Effectivement cela pourrait être une solution mais déjà je ne sais pas le mettre en place, et est il possible de bloquer certaines cellule après avoir été saisi manuellement ...?
Je joins un exemple de fichier, les formules a ne surtout pas effacer en jaune, mais avoir la possibilité de copier la ligne tous les jours. Dans l'idéal, il faudrait même que les cellules saisies manuellement les jours précédents ne soit plus modifiables ... J'en demande peut être beaucoup ...
Re : Vérouiller une formule mais possibilité de faire copier/coller
Bonjour
Autre piste si on n'écrit qu'une ligne par jour :
A la fermeture du classeur une macro pourrait
copier la dernière ligne et ne pas protéger les cellules en blanc
verrouiller toutes les autres
Ainsi lorsque l'on ferme le classeur il est prêt pour le lendemain. Éventuellement un message pour demander confirmation avant, si on le rouvre juste pour consultation.
Re : Vérouiller une formule mais possibilité de faire copier/coller
Re
Si j'ai bien compris:
Possibilité de copier la derniére ligne existante (copie de la dernière ligne existante et insertion de la ligne copiée), possibilité de modifier la "nouvelle dernière ligne", interdiction de modifier les lignes au dessus de la "nouvelle dernière ligne".
Le code ci-dessous est à mettre dans le code la feuille 1 (click droit sur l'onlet / Visualiser le code et coller les lignes ci-dessous.
Code:
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
Set plg = Range("A1:I" & Derligne - 1)
If Not Application.Intersect(Target, plg) Is Nothing And Target.Count = 1 Then
If Target.Value <> "" Then
Range("A" & Derligne + 1).Select
End If
End If
End Sub
Voir le fichier joint.
En cas de problème n'hésitez pas à poster .
Cordialement
Autre piste si on n'écrit qu'une ligne par jour :
A la fermeture du classeur une macro pourrait
copier la dernière ligne et ne pas protéger les cellules en blanc
verrouiller toutes les autres
Ainsi lorsque l'on ferme le classeur il est prêt pour le lendemain. Éventuellement un message pour demander confirmation avant, si on le rouvre juste pour consultation.
Re
Si j'ai bien compris:
Possibilité de copier la derniére ligne existante (copie de la dernière ligne existante et insertion de la ligne copiée), possibilité de modifier la "nouvelle dernière ligne", interdiction de modifier les lignes au dessus de la "nouvelle dernière ligne".
Le code ci-dessous est à mettre dans le code la feuille 1 (click droit sur l'onlet / Visualiser le code et coller les lignes ci-dessous.
Code:
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
Set plg = Range("A1:I" & Derligne - 1)
If Not Application.Intersect(Target, plg) Is Nothing And Target.Count = 1 Then
If Target.Value <> "" Then
Range("A" & Derligne + 1).Select
End If
End If
End Sub
Voir le fichier joint.
En cas de problème n'hésitez pas à poster .
Cordialement
C'est parfait ! Par contre est il possible de rendre inacessible les cellules contenant les formules du jour en plus ?
Et est il possible de modifier une des cellules supérieur exceptionnellement ? (au cas où j'ai mal renseigné quelque chose)
C'est parfait ! Par contre est il possible de rendre inacessible les cellules contenant les formules du jour en plus ?
Et est il possible de modifier une des cellules supérieur exceptionnellement ? (au cas où j'ai mal renseigné quelque chose)
Désolé, pour ma 2ème question il suffit de supprimer le code ...
Par contre, il me faudrait étendre cela sur un max de 100 colonnes (au plus large possible, j'anticipe), Est ce possible ?? Je ne trouve pas la notion de nombre de colonne dans le code ... (je vous confirme, je n'y connais rien... sorry)
Désolé, pour ma 2ème question il suffit de supprimer le code ...
Par contre, il me faudrait étendre cela sur un max de 100 colonnes (au plus large possible, j'anticipe), Est ce possible ?? Je ne trouve pas la notion de nombre de colonne dans le code ... (je vous confirme, je n'y connais rien... sorry)
Re : Vérouiller une formule mais possibilité de faire copier/coller
Pour résumé,
C'est parfait !
Il ne manquerai plus que :
- la possibilité de rendre inaccessible les cellules de la dernière ligne contenant une formule
- si possible rendre accessible seulement la 3e ligne du fichier
Re : Vérouiller une formule mais possibilité de faire copier/coller
Re le fil
Bens77,
Pour les formules;
On peut, par exemple, en cas de modifications intempestives, remettre les formules en place à l'ouverture du classeur(Même après enregistrement des modifications) :
A Mettre dans le ThisWorkbook:
Code:
Private Sub Workbook_Open()
Range("D1:D" & Range("A65536").End(xlUp).Row).FormulaLocal = "=B1-C1"
Range("E1:E" & Range("A65536").End(xlUp).Row).FormulaLocal = "=B1"
Range("I1:I" & Range("A65536").End(xlUp).Row).FormulaLocal = "=Si(B1<D1;1;3)"
End Sub
Voir pièce jointe
Si vos formules contiennent des " il faut les doubler. Exemple :
=Si(A1=5;"";A1) devient =Si(A1=5;"""";A1)
Pour la possibilité de modifier une cellule déja saisie, j'ai mis une case a cocher.
Par contre je ne sais pas "rendre accessible seulement la 3e ligne du fichier"
Cordialement
Re : Vérouiller une formule mais possibilité de faire copier/coller
Bonjour à tous et merci beaucoup pour votre aide !
Merci Efgé et Chris pour vos fichiers, le code suivant reste le plus proche de ce que je cherche :
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
Set plg = Range("A4:BZ" & Derligne - 2)
If Not Application.Intersect(Target, plg) Is Nothing And Target.Count = 1 Then
If Target.Value <> "" Then
Range("A" & Derligne + 1).Select
End If
End If
End Sub
Par contre, est il possible de définir 2 plages différentes, car je souhaiterais laisser la ligne n°3 modifiable mais pas la 1 ni 2 ?
Et Bien sur, est il possible de rendre inaccessible les cellules contenant une formule même sur la ligne que je copie le matin ? pour ne pas effacer une formule du jour.
Merci pour votre aide, ce code me sert déjà et c'est la quasi perfection !
Re : Vérouiller une formule mais possibilité de faire copier/coller
Re
Une proposition pour laisser la 3em ligne accessible.
Pour les formules, en fermant le classeur vous les remettez automatiquement. (ThisWorkbook/ Before close).
Cordialement