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

à propos de la méthode SpecialCells de l'objet Range

13 réponses
Avatar
MichDenis
Bonjour,

Avez-vous déjà remarqué que cette méthode "SpecialCells" fonctionne seulement si la
plage visée se situe à l'intérieur d'une plage de cellules qu'excel appelle UsedRange

Exemple : Pour ceux qui veulent faire un petit test :

Sur une feuille totalement vide et vierge :
Worksheets("Feuil1").Range("A1:A100").SpecialCells(xlCellTypeBlanks).Interior.ColorIndex = 3

retourne message d'erreur : pas de cellules correspondantes... c'est à dire qu'il ne trouve pas de
cellules vides...

Si dans la même feuille vierge, on entre en A25 une donnée, la même ligne de code va colorer
seulement les cellules de A1:A24 ... les cellules au-delà de A25 n'existe tout simplement pas
pour excel

Si par ailleurs, vous avez entré une donnée en A65 et que vous l'avez toute suite effacée,
il va colorer les cellules vides jusqu'à A65.

En conséquence, la méthode SpecialCells fonctionne seulement à l'intérieur de l'objet UsedRange
d'une feuille.

Vous saviez vous ? Et personne n'en a jamais parlé ? Spécial...!
L'aide d'excel sur le sujet ne mentionne rien sur le sujet !


Bonne journée.

10 réponses

1 2
Avatar
lSteph
Bonjour MD,

Oui et du même coup en revanche, si l'on applique préalablement un
format,
à la plage concernée cela fonctionne

'...
With [a1:c1000]
.Borders.LineStyle = xlNone
.SpecialCells(xlCellTypeBlanks).Interior.ColorIndex = 3
End With

'....

@+

--
lSteph


On 12 juin, 12:20, "MichDenis" wrote:
Bonjour,

Avez-vous déjà remarqué que cette méthode "SpecialCells" fonctionn e seulement si la
plage visée se situe à l'intérieur d'une plage de cellules qu'excel appelle UsedRange

Exemple : Pour ceux qui veulent faire un petit test :

Sur une feuille totalement vide et vierge :
Worksheets("Feuil1").Range("A1:A100").SpecialCells(xlCellTypeBlanks).Inter ior.ColorIndex = 3

retourne message d'erreur : pas de cellules correspondantes... c'est à d ire qu'il ne trouve pas de
cellules vides...

Si dans la même feuille vierge, on entre en A25 une donnée, la même ligne de code va colorer
seulement les cellules de A1:A24 ... les cellules au-delà de A25 n'exist e tout simplement pas
pour excel

Si par ailleurs, vous avez entré une donnée en A65 et que vous l'avez toute suite effacée,
il va colorer les cellules vides jusqu'à A65.

En conséquence, la méthode SpecialCells fonctionne seulement à l'int érieur de l'objet UsedRange
d'une feuille.

Vous saviez vous ? Et personne n'en a jamais parlé ? Spécial...!
L'aide d'excel sur le sujet ne mentionne rien sur le sujet !

Bonne journée.


Avatar
Jacky
Bonjour Denis

Oui, en effet, encore une bizarrerie d'xl.

--
Salutations
JJ


"MichDenis" a écrit dans le message de news:

Bonjour,

Avez-vous déjà remarqué que cette méthode "SpecialCells" fonctionne
seulement si la
plage visée se situe à l'intérieur d'une plage de cellules qu'excel
appelle UsedRange

Exemple : Pour ceux qui veulent faire un petit test :

Sur une feuille totalement vide et vierge :
Worksheets("Feuil1").Range("A1:A100").SpecialCells(xlCellTypeBlanks).Interior.ColorIndex
= 3

retourne message d'erreur : pas de cellules correspondantes... c'est à
dire qu'il ne trouve pas de
cellules vides...

Si dans la même feuille vierge, on entre en A25 une donnée, la même ligne
de code va colorer
seulement les cellules de A1:A24 ... les cellules au-delà de A25 n'existe
tout simplement pas
pour excel

Si par ailleurs, vous avez entré une donnée en A65 et que vous l'avez
toute suite effacée,
il va colorer les cellules vides jusqu'à A65.

En conséquence, la méthode SpecialCells fonctionne seulement à l'intérieur
de l'objet UsedRange
d'une feuille.

Vous saviez vous ? Et personne n'en a jamais parlé ? Spécial...!
L'aide d'excel sur le sujet ne mentionne rien sur le sujet !


Bonne journée.




Avatar
Jacky
Rapport indirect avec ceci ???
http://support.microsoft.com/kb/832293

--
Salutations
JJ


"Jacky" a écrit dans le message de news:

Bonjour Denis

Oui, en effet, encore une bizarrerie d'xl.

--
Salutations
JJ


"MichDenis" a écrit dans le message de news:

Bonjour,

Avez-vous déjà remarqué que cette méthode "SpecialCells" fonctionne
seulement si la
plage visée se situe à l'intérieur d'une plage de cellules qu'excel
appelle UsedRange

Exemple : Pour ceux qui veulent faire un petit test :

Sur une feuille totalement vide et vierge :
Worksheets("Feuil1").Range("A1:A100").SpecialCells(xlCellTypeBlanks).Interior.ColorIndex
= 3

retourne message d'erreur : pas de cellules correspondantes... c'est à
dire qu'il ne trouve pas de
cellules vides...

Si dans la même feuille vierge, on entre en A25 une donnée, la même ligne
de code va colorer
seulement les cellules de A1:A24 ... les cellules au-delà de A25 n'existe
tout simplement pas
pour excel

Si par ailleurs, vous avez entré une donnée en A65 et que vous l'avez
toute suite effacée,
il va colorer les cellules vides jusqu'à A65.

En conséquence, la méthode SpecialCells fonctionne seulement à
l'intérieur de l'objet UsedRange
d'une feuille.

Vous saviez vous ? Et personne n'en a jamais parlé ? Spécial...!
L'aide d'excel sur le sujet ne mentionne rien sur le sujet !


Bonne journée.








Avatar
MichDenis
bonjour lSteph

| Oui '....
*** et tu as lu ça où ? Une bande dessinée ? ;-))

OK pour les formats ! lorsqu'on a compris que la méthode specialcells
s'appliquait seulement à l'intérieur de ce qu'excel appelle UsedRange

Salutations.
Avatar
MichDenis
Bonjour Jacky

| Oui, en effet, encore une bizarrerie d'xl.


En principe, ça semble être logique : Si excel considère
une feuille vierge comme n'ayant aucune plage définie existante
il est difficile qu'il trouve ces cellules vides dans cette plage... tu suis ?

Cependant, l'aide d'excel tait ce rapprochement entre specialcells et
UsedRange...je suppose que c'est d'une telle trivialité qu'il n'a pas jugé
de nous aider à comprendre... si jamais c'est le but de l'aide !
;-))
Avatar
Daniel.j
Bonjour
Concernant ce point: (juste pour souligner cette bizarrerie...)
Si par ailleurs, vous avez entré une donnée en A65 et que vous l'avez toute
suite effacée,
'il va colorer les cellules vides jusqu'à A65.


En reinitialisant les cellules avec cette macro
Sub Réinit()
Dim LesCell As Worksheet
For Each LesCell In Worksheets
Dummy = LesCell.UsedRange(1)
Next LesCell
Worksheets("Feuil1").Range("A1:A100").SpecialCells(xlCellTypeBlanks).Interior.ColorIndex
= 3
End Sub
l'erreur se reproduit ..........

Daniel

"MichDenis" a écrit dans le message de news:
%

Bonjour Jacky

| Oui, en effet, encore une bizarrerie d'xl.


En principe, ça semble être logique : Si excel considère
une feuille vierge comme n'ayant aucune plage définie existante
il est difficile qu'il trouve ces cellules vides dans cette plage... tu
suis ?

Cependant, l'aide d'excel tait ce rapprochement entre specialcells et
UsedRange...je suppose que c'est d'une telle trivialité qu'il n'a pas jugé
de nous aider à comprendre... si jamais c'est le but de l'aide !
;-))




Avatar
lSteph
;o)) la réponse "Oui "
porte sur le "aviez vous remarqué.. et "oui" d'accord qu'il semble
bien s'agir bien du usedrange
"oui ", aussi d'accord que rien vu de précis dans l'aide, ni dans
les bandes dessinées!

le formatage bidon permet de contourner le souci.
On 12 juin, 12:52, "MichDenis" wrote:
bonjour lSteph

| Oui '....
*** et tu as lu ça où ? Une bande dessinée ? ;-))

OK pour les formats ! lorsqu'on a compris que la méthode specialcells
s'appliquait seulement à l'intérieur de ce qu'excel appelle UsedRange

Salutations.


"

Avatar
MichDenis
Ben sûr !

Quand une feuille est vierge,

Set rg = Feuil1.UsedRange
x = rg.Address
x = A1

Même si j'écris :
Feuil1.Range("A1").SpecialCells(xlCellTypeBlanks).Interior.ColorIndex =3
la ligne de code plante, car pour la méthode SpecialCells la feuille ne contient
aucune plage de cellules identifiables (pas d'objets range définis).

La méthode SpecialCells n'est applicable que sur une plage définie à
l'intérieur de l'objet "UsedRange"





"Daniel.j" a écrit dans le message de news:
Bonjour
Concernant ce point: (juste pour souligner cette bizarrerie...)
Si par ailleurs, vous avez entré une donnée en A65 et que vous l'avez toute
suite effacée,
'il va colorer les cellules vides jusqu'à A65.


En reinitialisant les cellules avec cette macro
Sub Réinit()
Dim LesCell As Worksheet
For Each LesCell In Worksheets
Dummy = LesCell.UsedRange(1)
Next LesCell
Worksheets("Feuil1").Range("A1:A100").SpecialCells(xlCellTypeBlanks).Interior.ColorIndex
= 3
End Sub
l'erreur se reproduit ..........

Daniel

"MichDenis" a écrit dans le message de news:
%

Bonjour Jacky

| Oui, en effet, encore une bizarrerie d'xl.


En principe, ça semble être logique : Si excel considère
une feuille vierge comme n'ayant aucune plage définie existante
il est difficile qu'il trouve ces cellules vides dans cette plage... tu
suis ?

Cependant, l'aide d'excel tait ce rapprochement entre specialcells et
UsedRange...je suppose que c'est d'une telle trivialité qu'il n'a pas jugé
de nous aider à comprendre... si jamais c'est le but de l'aide !
;-))




Avatar
Fredo P
| Oui, en effet, encore une bizarrerie d'xl.


En principe, ça semble être logique : Si excel considère
une feuille vierge comme n'ayant aucune plage définie existante
Je ne trouve pas logique lorsque dans un test similaire, en appliquant

seulement un format sur la cellule C20 (par ex), le test colore A1:A20 et
qu'ensuite après avoir supprimer les colonnes A:C le test persiste à colorer
A1:A20.

Avatar
Modeste
Bonsour® Fredo P avec ferveur ;o))) vous nous disiez :

En principe, ça semble être logique : Si excel considère
une feuille vierge comme n'ayant aucune plage définie existante
Je ne trouve pas logique lorsque dans un test similaire, en appliquant

seulement un format sur la cellule C20 (par ex), le test colore
A1:A20 et qu'ensuite après avoir supprimer les colonnes A:C le test
persiste à colorer A1:A20.


Vierge ou pas vierge ???
encore un pavé dans la cour à Rachida !!!!!
;o)))

un territoire vierge c'est un endroit ou la main de l'homme n'a jamais mis les pieds !!!
;o)))




--
--
@+
;o)))


1 2