Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

selection cellules deverrouillées

4 réponses
Avatar
pskretch
Bonjour

Dans une plage d'une feuille non protégée, je souhaiterai sélectionner
(sélection multiple) toutes les cellules non verrouillées.
Est-ce possible par VBA ? (Excel 2010)

Merci d'avance

Skretch

4 réponses

Avatar
michdenis
Bonjour,

Il n'existe pas une façon simple de sélectionner des cellules d'après une de leurs propriétés.

Si la plage de cellules est restreindre, on peut boucler sur chacune des cellules de la plage

Attention, la variable X ne peut pas contenir une chaîne de caractères de plus de 255 caractères
ce qui limite le nombre de cellules à sélectionner...

Mais au lieu de sélectionner ces cellules, tu peux te demander si l'action que tu veux exercer
sur ces cellules requiert une sélection...à cet effet, si tu précisais le résultat recherché, il
y aura peut-être une ou des approches plus appropriées que la sélection.

'------------------------------------
Sub test()
Dim C As Range, X As String
For Each C In Range("A1:E10")
If C.Locked = False Then
X = X & C.Address(0, 0) & ","
End If
Next
If X <> "" Then
X = Left(X, Len(X) - 1)
Range(X).Select
End If
End Sub
'------------------------------------


MichD
--------------------------------------------
"pskretch" a écrit dans le message de groupe de discussion : 4d789fd0$0$7719$

Bonjour

Dans une plage d'une feuille non protégée, je souhaiterai sélectionner
(sélection multiple) toutes les cellules non verrouillées.
Est-ce possible par VBA ? (Excel 2010)

Merci d'avance

Skretch
Avatar
pskretch
Merci MichD pour ta réponse qui me va bien ( avec malheureusement la limite
des 255 caractères).
J'espérai pouvoir passer avec SpecialCells(xlCellTypeSameFormatConditions)
mais je ne comprends pas comment l'utiliser.

Pour info, je souhaite pouvoir visualiser facilement toutes les cellules
déverrouillées, quitte à leur appliquer une mise en forme particulière sur
différents fichiers en vidéo projection.

Skretch



"michdenis" a écrit dans le message de groupe de discussion :
ilah9d$o1k$

Bonjour,

Il n'existe pas une façon simple de sélectionner des cellules d'après une de
leurs propriétés.

Si la plage de cellules est restreindre, on peut boucler sur chacune des
cellules de la plage

Attention, la variable X ne peut pas contenir une chaîne de caractères de
plus de 255 caractères
ce qui limite le nombre de cellules à sélectionner...

Mais au lieu de sélectionner ces cellules, tu peux te demander si l'action
que tu veux exercer
sur ces cellules requiert une sélection...à cet effet, si tu précisais le
résultat recherché, il
y aura peut-être une ou des approches plus appropriées que la sélection.

'------------------------------------
Sub test()
Dim C As Range, X As String
For Each C In Range("A1:E10")
If C.Locked = False Then
X = X & C.Address(0, 0) & ","
End If
Next
If X <> "" Then
X = Left(X, Len(X) - 1)
Range(X).Select
End If
End Sub
'------------------------------------


MichD
--------------------------------------------
"pskretch" a écrit dans le message de groupe de discussion :
4d789fd0$0$7719$

Bonjour

Dans une plage d'une feuille non protégée, je souhaiterai sélectionner
(sélection multiple) toutes les cellules non verrouillées.
Est-ce possible par VBA ? (Excel 2010)

Merci d'avance

Skretch
Avatar
MichD
(Désolé pour le délai, je n'ai pu me connecter au serveur durant les 2 derniers jours)

Effectivement, en passant par une mise en forme conditionnelle,

Dans ton cas, tu sélectionnes toutes les cellules non verrouillées
et tu utilises cette formule dans ta mise en forme conditionnelle :

ÎLLULE("protect";A3)=0

A3 étant la première cellule de la plage le plus près de cells(1,1)

Tu n'es pas obligé d'appliquer un format particulier de cellule...

Et pour sélectionner toutes les cellules qui ont la même mise en forme conditionnelle,


La cellule A3 étant une des cellules de la plage ayant reçu cette mise en forme :
'--------------------------------
Sub test()

Range("A3").SpecialCells(xlCellTypeSameFormatConditions).Select

End Sub
'--------------------------------



MichD
--------------------------------------------



MichD
--------------------------------------------
"pskretch" a écrit dans le message de groupe de discussion : 4d791427$0$32423$

Merci MichD pour ta réponse qui me va bien ( avec malheureusement la limite
des 255 caractères).
J'espérai pouvoir passer avec SpecialCells(xlCellTypeSameFormatConditions)
mais je ne comprends pas comment l'utiliser.

Pour info, je souhaite pouvoir visualiser facilement toutes les cellules
déverrouillées, quitte à leur appliquer une mise en forme particulière sur
différents fichiers en vidéo projection.

Skretch



"michdenis" a écrit dans le message de groupe de discussion :
ilah9d$o1k$

Bonjour,

Il n'existe pas une façon simple de sélectionner des cellules d'après une de
leurs propriétés.

Si la plage de cellules est restreindre, on peut boucler sur chacune des
cellules de la plage

Attention, la variable X ne peut pas contenir une chaîne de caractères de
plus de 255 caractères
ce qui limite le nombre de cellules à sélectionner...

Mais au lieu de sélectionner ces cellules, tu peux te demander si l'action
que tu veux exercer
sur ces cellules requiert une sélection...à cet effet, si tu précisais le
résultat recherché, il
y aura peut-être une ou des approches plus appropriées que la sélection.

'------------------------------------
Sub test()
Dim C As Range, X As String
For Each C In Range("A1:E10")
If C.Locked = False Then
X = X & C.Address(0, 0) & ","
End If
Next
If X <> "" Then
X = Left(X, Len(X) - 1)
Range(X).Select
End If
End Sub
'------------------------------------


MichD
--------------------------------------------
"pskretch" a écrit dans le message de groupe de discussion :
4d789fd0$0$7719$

Bonjour

Dans une plage d'une feuille non protégée, je souhaiterai sélectionner
(sélection multiple) toutes les cellules non verrouillées.
Est-ce possible par VBA ? (Excel 2010)

Merci d'avance

Skretch
Avatar
pskretch
Bonjour
Super malin de passer par la MFC !
Merci

De mon coté, j'avais trouver sur un site ce code qui marche bien aussi :

Sub test3()
Dim C As Range, NelleSelection As Range
For Each C In Range("A1:K30")
If C.Locked = False Then
If NelleSelection Is Nothing Then
Set NelleSelection = C
Else
Set NelleSelection = Union(NelleSelection, C)
End If
End If
Next C
If Not NelleSelection Is Nothing Then NelleSelection.Select
End Sub

Merci encore

Skretch





"MichD" a écrit dans le message de groupe de discussion :
ilgqb2$aht$

(Désolé pour le délai, je n'ai pu me connecter au serveur durant les 2
derniers jours)

Effectivement, en passant par une mise en forme conditionnelle,

Dans ton cas, tu sélectionnes toutes les cellules non verrouillées
et tu utilises cette formule dans ta mise en forme conditionnelle :

ÎLLULE("protect";A3)=0

A3 étant la première cellule de la plage le plus près de cells(1,1)

Tu n'es pas obligé d'appliquer un format particulier de cellule...

Et pour sélectionner toutes les cellules qui ont la même mise en forme
conditionnelle,


La cellule A3 étant une des cellules de la plage ayant reçu cette mise en
forme :
'--------------------------------
Sub test()

Range("A3").SpecialCells(xlCellTypeSameFormatConditions).Select

End Sub
'--------------------------------



MichD
--------------------------------------------



MichD
--------------------------------------------
"pskretch" a écrit dans le message de groupe de discussion :
4d791427$0$32423$

Merci MichD pour ta réponse qui me va bien ( avec malheureusement la limite
des 255 caractères).
J'espérai pouvoir passer avec SpecialCells(xlCellTypeSameFormatConditions)
mais je ne comprends pas comment l'utiliser.

Pour info, je souhaite pouvoir visualiser facilement toutes les cellules
déverrouillées, quitte à leur appliquer une mise en forme particulière sur
différents fichiers en vidéo projection.

Skretch



"michdenis" a écrit dans le message de groupe de discussion :
ilah9d$o1k$

Bonjour,

Il n'existe pas une façon simple de sélectionner des cellules d'après une de
leurs propriétés.

Si la plage de cellules est restreindre, on peut boucler sur chacune des
cellules de la plage

Attention, la variable X ne peut pas contenir une chaîne de caractères de
plus de 255 caractères
ce qui limite le nombre de cellules à sélectionner...

Mais au lieu de sélectionner ces cellules, tu peux te demander si l'action
que tu veux exercer
sur ces cellules requiert une sélection...à cet effet, si tu précisais le
résultat recherché, il
y aura peut-être une ou des approches plus appropriées que la sélection.

'------------------------------------
Sub test()
Dim C As Range, X As String
For Each C In Range("A1:E10")
If C.Locked = False Then
X = X & C.Address(0, 0) & ","
End If
Next
If X <> "" Then
X = Left(X, Len(X) - 1)
Range(X).Select
End If
End Sub
'------------------------------------


MichD
--------------------------------------------
"pskretch" a écrit dans le message de groupe de discussion :
4d789fd0$0$7719$

Bonjour

Dans une plage d'une feuille non protégée, je souhaiterai sélectionner
(sélection multiple) toutes les cellules non verrouillées.
Est-ce possible par VBA ? (Excel 2010)

Merci d'avance

Skretch