A voir également:
- Excel/figer une ligne
- Aller à la ligne excel - Guide
- Figer une ligne excel - Guide
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Calculer une moyenne sur excel - Guide
4 réponses
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
9 oct. 2008 à 13:31
9 oct. 2008 à 13:31
Salut,
En supposant que ton fichier est protégé, et que les cellules accessibles sont déverrouillées que la zone concernée est B1 à B50 et que ta cellule ne se déplace pas après validation
Avec ce code lorsque tu saisiras un ? dans cette zone B1:B50 les cellules de la colonne A à la colonne G sur la même ligne se verrouilleront et le fichier se déprotégera. Si un mot de passe pour la protection existe, il conviendra de le saisir dans le code de déprotection de la macro
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B1:B50)) Is Nothing Then
If ActiveCell = "?" Then
ActiveSheet.Unprotect
Range(ActiveCell.Offset(0, -1), ActiveCell.Offset(0, 5)).Select
selection.Locked = True
selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End If
End Sub
Testes ce code et on en reparle des modifications à apporter.
A+
En supposant que ton fichier est protégé, et que les cellules accessibles sont déverrouillées que la zone concernée est B1 à B50 et que ta cellule ne se déplace pas après validation
Avec ce code lorsque tu saisiras un ? dans cette zone B1:B50 les cellules de la colonne A à la colonne G sur la même ligne se verrouilleront et le fichier se déprotégera. Si un mot de passe pour la protection existe, il conviendra de le saisir dans le code de déprotection de la macro
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B1:B50)) Is Nothing Then
If ActiveCell = "?" Then
ActiveSheet.Unprotect
Range(ActiveCell.Offset(0, -1), ActiveCell.Offset(0, 5)).Select
selection.Locked = True
selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End If
End Sub
Testes ce code et on en reparle des modifications à apporter.
A+
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
9 oct. 2008 à 14:20
9 oct. 2008 à 14:20
Bonjour,
autre solution avec 'validation'
- Sélectionner les cellules à protéger par exemple les colonnes B à G
- menu 'données / validation...."
- Autoriser: 'personnalisé', formule: =$A1<>"?"
- onglet 'alerte d'erreur': mettre un message explicatif
- valider
un ? en colonne A empeche la saisie sur ces colonnes.
Si le ? est en colonne C, sélectionner les colonnes A:B et D:G avant de mettre la validation.
La formule sera: =$C1<>"?"
eric
autre solution avec 'validation'
- Sélectionner les cellules à protéger par exemple les colonnes B à G
- menu 'données / validation...."
- Autoriser: 'personnalisé', formule: =$A1<>"?"
- onglet 'alerte d'erreur': mettre un message explicatif
- valider
un ? en colonne A empeche la saisie sur ces colonnes.
Si le ? est en colonne C, sélectionner les colonnes A:B et D:G avant de mettre la validation.
La formule sera: =$C1<>"?"
eric
Moi je veux juste figer la ligne..j'ai l'impression que tu fais figer les colonnes en même temps.
Ex: la colonne A c'est la colonne où je remplis les codes, si je mets un points d'interrogation en A1 je veux que la ligne 1 seulement soit figer et pas le reste.De plus j'ai déjà utiliser la fonction validation et il me dit de supprimer les règlages courants.
Ex: la colonne A c'est la colonne où je remplis les codes, si je mets un points d'interrogation en A1 je veux que la ligne 1 seulement soit figer et pas le reste.De plus j'ai déjà utiliser la fonction validation et il me dit de supprimer les règlages courants.
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
9 oct. 2008 à 14:42
9 oct. 2008 à 14:42
La formule est =$A1<>"?" (absolu colonne/relatif ligne) donc sur la ligne 2 tu testes A2 etc
Toutes les lignes avec ? sont bloquées, sur les autres la saisie est autorisée.
Maintenant si tu as d'autres validations sur les cellules sois tu cumules les tests dans des ET() et des OU() ce qui va pê te compliquer la vie, soit tu fais avec la macro de Mike
eric
PS: je te faisais sélectionner les colonnes pour que ça s'applique sur toutes les lignes... Mais tu peux restreindre à une plage sélectionnée, de B3 à G10 si tu veux. Selon la ligne de la 1ère cellule de ta sélection la formule change. Là ça serait =$A3<>"?"
Toutes les lignes avec ? sont bloquées, sur les autres la saisie est autorisée.
Maintenant si tu as d'autres validations sur les cellules sois tu cumules les tests dans des ET() et des OU() ce qui va pê te compliquer la vie, soit tu fais avec la macro de Mike
eric
PS: je te faisais sélectionner les colonnes pour que ça s'applique sur toutes les lignes... Mais tu peux restreindre à une plage sélectionnée, de B3 à G10 si tu veux. Selon la ligne de la 1ère cellule de ta sélection la formule change. Là ça serait =$A3<>"?"
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
>
caro
9 oct. 2008 à 15:19
9 oct. 2008 à 15:19
=ou(test1;test2)
si un des 2 test est VRAI tu auras VRAI donc interdiction de la saisie
dans test1 et test2 tu ne mets pas le =
si un des 2 test est VRAI tu auras VRAI donc interdiction de la saisie
dans test1 et test2 tu ne mets pas le =
caro
>
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
10 oct. 2008 à 08:28
10 oct. 2008 à 08:28
D'accord merci beaucoup pour les infos!!
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
9 oct. 2008 à 14:55
9 oct. 2008 à 14:55
Salut Eriiic & Caro,
Pour commencer merci Eriiic de me remémorer cette possibilité qui est surement la plus approprié et la moins contraignante pour les besoins de Caro, la feuille n’a pas besoin d’être protégé et il suffit de changer le «?» dans la colonne A ou celle prédéfinie, pour de nouveau accéder aux cellules prédéfinies dans le code de validation.
Dans le cas d’un code VBA la manip est plus lourde, tout dépend des accès que l'on souhaite contrôler.
A+
Pour commencer merci Eriiic de me remémorer cette possibilité qui est surement la plus approprié et la moins contraignante pour les besoins de Caro, la feuille n’a pas besoin d’être protégé et il suffit de changer le «?» dans la colonne A ou celle prédéfinie, pour de nouveau accéder aux cellules prédéfinies dans le code de validation.
Dans le cas d’un code VBA la manip est plus lourde, tout dépend des accès que l'on souhaite contrôler.
A+
9 oct. 2008 à 14:37