[VBA] Créer un range à partir d'une recherche
Résolu
Telithaldynos
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
Yoda -
Yoda -
Bonjour,
Je travaille sur une macro permettant d'ajouter des articles dans un colis. La fiche de description définitive du colis doit être dans un autre document excel.
Pour éviter les incohérences, il est important d'interdire la modification d'un valeur une fois le colis créé par la macro.
Dans cette optique, je souhaite verrouiller la page complète, à l'exception des articles n'ayant pas encore été ajouté à un colis.
Ma problèmatique est donc de crée un range dépendant d'une recherche.
Je contrôle la présence d'une date dans la colonne C. Je souhaite inclure dans mon range les cellules de la colonne A dont la colonne C est vide.
Malheureusement ,je ne parviens pas à faire cet ajout au range.
Si "C i" est vide alors "A i" est libre
Si "C i" est renseigner alors "A i" est verrouillé.
Je travaille sur une macro permettant d'ajouter des articles dans un colis. La fiche de description définitive du colis doit être dans un autre document excel.
Pour éviter les incohérences, il est important d'interdire la modification d'un valeur une fois le colis créé par la macro.
Dans cette optique, je souhaite verrouiller la page complète, à l'exception des articles n'ayant pas encore été ajouté à un colis.
Ma problèmatique est donc de crée un range dépendant d'une recherche.
Je contrôle la présence d'une date dans la colonne C. Je souhaite inclure dans mon range les cellules de la colonne A dont la colonne C est vide.
Malheureusement ,je ne parviens pas à faire cet ajout au range.
Si "C i" est vide alors "A i" est libre
Si "C i" est renseigner alors "A i" est verrouillé.
A voir également:
- [VBA] Créer un range à partir d'une recherche
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Créer un compte google - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Créer un lien pour partager des photos - Guide
- Créer un compte gmail - Guide
3 réponses
Plus simplement, voila comment je voyais la chose:
Cette ligne
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
dépend des options de protection. Tu peux aussi définir un mot de passe.
Fais des essais en passant par l'enregistreur de macros.
ActiveSheet.Unprotect For i = 1 To j Range("A" & i).Select If Range("C" & i).Value = "" Then Selection.Locked = False Else Selection.Locked = True End If Next ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Cette ligne
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
dépend des options de protection. Tu peux aussi définir un mot de passe.
Fais des essais en passant par l'enregistreur de macros.
Bonjour,
Dans Excel, une cellule est verrouillée lorsque la protection de la feuille est active.
Par défaut, toutes les cellules sont verrouillées. Il faut donc définir avant les cellules qui doivent rester accessibles (Propriété cellule).
Dans ton cas:
-desactiver la protection de la feuille
-Si "C i" est vide alors "A i" est déverrouillé
-Si "C i" est renseigner alors "A i" est verrouillé
-activer la protection de la feuille
;)
Dans Excel, une cellule est verrouillée lorsque la protection de la feuille est active.
Par défaut, toutes les cellules sont verrouillées. Il faut donc définir avant les cellules qui doivent rester accessibles (Propriété cellule).
Dans ton cas:
-desactiver la protection de la feuille
-Si "C i" est vide alors "A i" est déverrouillé
-Si "C i" est renseigner alors "A i" est verrouillé
-activer la protection de la feuille
;)
C'est tout à fait mon but. Toutefois je souhaite que la sélection des cellules à verrouillé soit porté par la macro VBA.
Ma question est donc : comment définir un "range" à partir de liste de cellule retournée par une boucle de recherche type :
For i = 1 To j
if cells (i,3) <> "" then "ajouter la cellule au range sélectionné"
Next i
ActiveSheet.Protection.AllowEditRanges.Add _
Title:="Libre" _
range:=range("selection")
Ma question est donc : comment définir un "range" à partir de liste de cellule retournée par une boucle de recherche type :
For i = 1 To j
if cells (i,3) <> "" then "ajouter la cellule au range sélectionné"
Next i
ActiveSheet.Protection.AllowEditRanges.Add _
Title:="Libre" _
range:=range("selection")