Bonjour,
J'aimerais à partir d'une plage R donnée, obtenir la
collection des sous-plages (un peu comme R.Areas ou
R.SpecialCells donc) telle que chaque sous-plage est :
- soit la plage correspondant à une et une seule formule
matricielle (et dont au moins une cellule se trouve dans R)
- soit une cellule unique
Voyez-vous une méthode efficace pour y parvenir ?
Merci d'avance.
Bonjour,
J'aimerais à partir d'une plage R donnée, obtenir la
collection des sous-plages (un peu comme R.Areas ou
R.SpecialCells donc) telle que chaque sous-plage est :
- soit la plage correspondant à une et une seule formule
matricielle (et dont au moins une cellule se trouve dans R)
- soit une cellule unique
Voyez-vous une méthode efficace pour y parvenir ?
Merci d'avance.
Bonjour,
J'aimerais à partir d'une plage R donnée, obtenir la
collection des sous-plages (un peu comme R.Areas ou
R.SpecialCells donc) telle que chaque sous-plage est :
- soit la plage correspondant à une et une seule formule
matricielle (et dont au moins une cellule se trouve dans R)
- soit une cellule unique
Voyez-vous une méthode efficace pour y parvenir ?
Merci d'avance.
bonjour GL,
pour savoir si une cellule contient une formule matricielle
If ActiveCell.HasArray Then MsgBox "cette cellule contient une formule matricielle"
par la suite tu pourrait utiliser une des propriétés
Range.Dependents
Range.DirectDependents
Range.DirectPrecedents
par exemple:
x = ActiveCell.DirectPrecedents.Address
petit hic, cette propriété fonctionne uniquement sur la feuille active et ne
peut pas suivre des références distantes.
pour savoir si une cellule fait partie de plusieurs plages d'adresse
Set isect = Application.Intersect(Range("rg1"), Range("rg2"), Range("rg3")) '
jusqu'à Range("rg30")
If isect Is Nothing Then
isabelle
Le 2014-05-29 08:21, GL a écrit :Bonjour,
J'aimerais à partir d'une plage R donnée, obtenir la
collection des sous-plages (un peu comme R.Areas ou
R.SpecialCells donc) telle que chaque sous-plage est :
- soit la plage correspondant à une et une seule formule
matricielle (et dont au moins une cellule se trouve dans R)
- soit une cellule unique
Voyez-vous une méthode efficace pour y parvenir ?
Merci d'avance.
bonjour GL,
pour savoir si une cellule contient une formule matricielle
If ActiveCell.HasArray Then MsgBox "cette cellule contient une formule matricielle"
par la suite tu pourrait utiliser une des propriétés
Range.Dependents
Range.DirectDependents
Range.DirectPrecedents
par exemple:
x = ActiveCell.DirectPrecedents.Address
petit hic, cette propriété fonctionne uniquement sur la feuille active et ne
peut pas suivre des références distantes.
pour savoir si une cellule fait partie de plusieurs plages d'adresse
Set isect = Application.Intersect(Range("rg1"), Range("rg2"), Range("rg3")) '
jusqu'à Range("rg30")
If isect Is Nothing Then
isabelle
Le 2014-05-29 08:21, GL a écrit :
Bonjour,
J'aimerais à partir d'une plage R donnée, obtenir la
collection des sous-plages (un peu comme R.Areas ou
R.SpecialCells donc) telle que chaque sous-plage est :
- soit la plage correspondant à une et une seule formule
matricielle (et dont au moins une cellule se trouve dans R)
- soit une cellule unique
Voyez-vous une méthode efficace pour y parvenir ?
Merci d'avance.
bonjour GL,
pour savoir si une cellule contient une formule matricielle
If ActiveCell.HasArray Then MsgBox "cette cellule contient une formule matricielle"
par la suite tu pourrait utiliser une des propriétés
Range.Dependents
Range.DirectDependents
Range.DirectPrecedents
par exemple:
x = ActiveCell.DirectPrecedents.Address
petit hic, cette propriété fonctionne uniquement sur la feuille active et ne
peut pas suivre des références distantes.
pour savoir si une cellule fait partie de plusieurs plages d'adresse
Set isect = Application.Intersect(Range("rg1"), Range("rg2"), Range("rg3")) '
jusqu'à Range("rg30")
If isect Is Nothing Then
isabelle
Le 2014-05-29 08:21, GL a écrit :Bonjour,
J'aimerais à partir d'une plage R donnée, obtenir la
collection des sous-plages (un peu comme R.Areas ou
R.SpecialCells donc) telle que chaque sous-plage est :
- soit la plage correspondant à une et une seule formule
matricielle (et dont au moins une cellule se trouve dans R)
- soit une cellule unique
Voyez-vous une méthode efficace pour y parvenir ?
Merci d'avance.
j'oubliais le "Precedents"
x1 = Range(Rng).Precedents.Address
isabelle
Le 2014-05-29 09:32, isabelle a écrit :bonjour GL,
pour savoir si une cellule contient une formule matricielle
If ActiveCell.HasArray Then MsgBox "cette cellule contient une formule
matricielle"
par la suite tu pourrait utiliser une des propriétés
Range.Dependents
Range.DirectDependents
Range.Direct
par exemple:
x = ActiveCell.DirectPrecedents.Address
petit hic, cette propriété fonctionne uniquement sur la feuille active et ne
peut pas suivre des références distantes.
pour savoir si une cellule fait partie de plusieurs plages d'adresse
Set isect = Application.Intersect(Range("rg1"), Range("rg2"), Range("rg3")) '
jusqu'à Range("rg30")
If isect Is Nothing Then
isabelle
Le 2014-05-29 08:21, GL a écrit :Bonjour,
J'aimerais à partir d'une plage R donnée, obtenir la
collection des sous-plages (un peu comme R.Areas ou
R.SpecialCells donc) telle que chaque sous-plage est :
- soit la plage correspondant à une et une seule formule
matricielle (et dont au moins une cellule se trouve dans R)
- soit une cellule unique
Voyez-vous une méthode efficace pour y parvenir ?
Merci d'avance.
j'oubliais le "Precedents"
x1 = Range(Rng).Precedents.Address
isabelle
Le 2014-05-29 09:32, isabelle a écrit :
bonjour GL,
pour savoir si une cellule contient une formule matricielle
If ActiveCell.HasArray Then MsgBox "cette cellule contient une formule
matricielle"
par la suite tu pourrait utiliser une des propriétés
Range.Dependents
Range.DirectDependents
Range.Direct
par exemple:
x = ActiveCell.DirectPrecedents.Address
petit hic, cette propriété fonctionne uniquement sur la feuille active et ne
peut pas suivre des références distantes.
pour savoir si une cellule fait partie de plusieurs plages d'adresse
Set isect = Application.Intersect(Range("rg1"), Range("rg2"), Range("rg3")) '
jusqu'à Range("rg30")
If isect Is Nothing Then
isabelle
Le 2014-05-29 08:21, GL a écrit :
Bonjour,
J'aimerais à partir d'une plage R donnée, obtenir la
collection des sous-plages (un peu comme R.Areas ou
R.SpecialCells donc) telle que chaque sous-plage est :
- soit la plage correspondant à une et une seule formule
matricielle (et dont au moins une cellule se trouve dans R)
- soit une cellule unique
Voyez-vous une méthode efficace pour y parvenir ?
Merci d'avance.
j'oubliais le "Precedents"
x1 = Range(Rng).Precedents.Address
isabelle
Le 2014-05-29 09:32, isabelle a écrit :bonjour GL,
pour savoir si une cellule contient une formule matricielle
If ActiveCell.HasArray Then MsgBox "cette cellule contient une formule
matricielle"
par la suite tu pourrait utiliser une des propriétés
Range.Dependents
Range.DirectDependents
Range.Direct
par exemple:
x = ActiveCell.DirectPrecedents.Address
petit hic, cette propriété fonctionne uniquement sur la feuille active et ne
peut pas suivre des références distantes.
pour savoir si une cellule fait partie de plusieurs plages d'adresse
Set isect = Application.Intersect(Range("rg1"), Range("rg2"), Range("rg3")) '
jusqu'à Range("rg30")
If isect Is Nothing Then
isabelle
Le 2014-05-29 08:21, GL a écrit :Bonjour,
J'aimerais à partir d'une plage R donnée, obtenir la
collection des sous-plages (un peu comme R.Areas ou
R.SpecialCells donc) telle que chaque sous-plage est :
- soit la plage correspondant à une et une seule formule
matricielle (et dont au moins une cellule se trouve dans R)
- soit une cellule unique
Voyez-vous une méthode efficace pour y parvenir ?
Merci d'avance.
bonjour GL,
pour savoir si une cellule contient une formule matricielle
If ActiveCell.HasArray Then MsgBox "cette cellule contient une formule
matricielle"
par la suite tu pourrait utiliser une des propriétés
Range.Dependents
Range.DirectDependents
Range.DirectPrecedents
pour savoir si une cellule fait partie de plusieurs plages d'adresse
Set isect = Application.Intersect(Range("rg1"), Range("rg2"),
Range("rg3")) ' jusqu'à Range("rg30")
If isect Is Nothing Then
bonjour GL,
pour savoir si une cellule contient une formule matricielle
If ActiveCell.HasArray Then MsgBox "cette cellule contient une formule
matricielle"
par la suite tu pourrait utiliser une des propriétés
Range.Dependents
Range.DirectDependents
Range.DirectPrecedents
pour savoir si une cellule fait partie de plusieurs plages d'adresse
Set isect = Application.Intersect(Range("rg1"), Range("rg2"),
Range("rg3")) ' jusqu'à Range("rg30")
If isect Is Nothing Then
bonjour GL,
pour savoir si une cellule contient une formule matricielle
If ActiveCell.HasArray Then MsgBox "cette cellule contient une formule
matricielle"
par la suite tu pourrait utiliser une des propriétés
Range.Dependents
Range.DirectDependents
Range.DirectPrecedents
pour savoir si une cellule fait partie de plusieurs plages d'adresse
Set isect = Application.Intersect(Range("rg1"), Range("rg2"),
Range("rg3")) ' jusqu'à Range("rg30")
If isect Is Nothing Then
« Si la cellule spécifiée fait partie d'un tableau, cette propriété
renvoie un objet Range qui représente l'ensemble du tableau.En
lecture seule. »
en anglais :
« If the specified cell is part of an array, returns a Range object
that represents the entire array.»
Au passage, les méthodes .FillRight et .FillDown se moquent totalement
des formules matricielles...
« Si la cellule spécifiée fait partie d'un tableau, cette propriété
renvoie un objet Range qui représente l'ensemble du tableau.En
lecture seule. »
en anglais :
« If the specified cell is part of an array, returns a Range object
that represents the entire array.»
Au passage, les méthodes .FillRight et .FillDown se moquent totalement
des formules matricielles...
« Si la cellule spécifiée fait partie d'un tableau, cette propriété
renvoie un objet Range qui représente l'ensemble du tableau.En
lecture seule. »
en anglais :
« If the specified cell is part of an array, returns a Range object
that represents the entire array.»
Au passage, les méthodes .FillRight et .FillDown se moquent totalement
des formules matricielles...
Le 2014-05-29 10:39, GL a écrit :« Si la cellule spécifiée fait partie d'un tableau, cette propriété
renvoie un objet Range qui représente l'ensemble du tableau.En
lecture seule. »
en anglais :
« If the specified cell is part of an array, returns a Range object
that represents the entire array.»
le mot "array" dans ce contexte est un objet ".ListObjects(xlSrcRange)"
aucun rapport avec une matrice d'une formule matricielle
Au passage, les méthodes .FillRight et .FillDown se moquent totalement
des formules matricielles...
je n'ai jamais eu de problème avec les méthodes .FillRight et .FillDown
si tu expliquait le problème rencontré...
Le 2014-05-29 10:39, GL a écrit :
« Si la cellule spécifiée fait partie d'un tableau, cette propriété
renvoie un objet Range qui représente l'ensemble du tableau.En
lecture seule. »
en anglais :
« If the specified cell is part of an array, returns a Range object
that represents the entire array.»
le mot "array" dans ce contexte est un objet ".ListObjects(xlSrcRange)"
aucun rapport avec une matrice d'une formule matricielle
Au passage, les méthodes .FillRight et .FillDown se moquent totalement
des formules matricielles...
je n'ai jamais eu de problème avec les méthodes .FillRight et .FillDown
si tu expliquait le problème rencontré...
Le 2014-05-29 10:39, GL a écrit :« Si la cellule spécifiée fait partie d'un tableau, cette propriété
renvoie un objet Range qui représente l'ensemble du tableau.En
lecture seule. »
en anglais :
« If the specified cell is part of an array, returns a Range object
that represents the entire array.»
le mot "array" dans ce contexte est un objet ".ListObjects(xlSrcRange)"
aucun rapport avec une matrice d'une formule matricielle
Au passage, les méthodes .FillRight et .FillDown se moquent totalement
des formules matricielles...
je n'ai jamais eu de problème avec les méthodes .FillRight et .FillDown
si tu expliquait le problème rencontré...
Bonjour,
As-tu vraiment un vrai problème à soumettre avec une formule
particulière, à l'intérieur d'une application précise?
Alors, pourquoi ne pas le préciser dans ta question? Lorsque quelqu'un
pose ce type de question à la queue leu leu,
je devins suspicieux quant à ses intentions.
Un petit exemple simple :
Tu sélectionnes la plage A1:A13 directement dans la feuille
A1 étant la cellule active, un clic sur la touche F2 et la cellule A1
passe en mode édition
tu insères cette grosse formule : =Ligne() et tu valides par Ctrl + Maj
+ Enter
A1:A13 affiche leur numéro de ligne et l'on vient de créer une matrice
sur plusieurs lignes, impossible de supprimer le contenu d'une cellule
particulière de cette plage.
Ta question si j'ai bien compris, comment fait-on pour reproduire cela
en VBA?
Après avoir passé des heures à chercher une solution, je te propose
quelque chose de très complexe qui n'est pas à la portée de tous...
'---------------------------------------
Sub test()
With Range("B1:B13")
.FormulaArray = "=Row()"
End With
End Sub
'---------------------------------------
Bonjour,
As-tu vraiment un vrai problème à soumettre avec une formule
particulière, à l'intérieur d'une application précise?
Alors, pourquoi ne pas le préciser dans ta question? Lorsque quelqu'un
pose ce type de question à la queue leu leu,
je devins suspicieux quant à ses intentions.
Un petit exemple simple :
Tu sélectionnes la plage A1:A13 directement dans la feuille
A1 étant la cellule active, un clic sur la touche F2 et la cellule A1
passe en mode édition
tu insères cette grosse formule : =Ligne() et tu valides par Ctrl + Maj
+ Enter
A1:A13 affiche leur numéro de ligne et l'on vient de créer une matrice
sur plusieurs lignes, impossible de supprimer le contenu d'une cellule
particulière de cette plage.
Ta question si j'ai bien compris, comment fait-on pour reproduire cela
en VBA?
Après avoir passé des heures à chercher une solution, je te propose
quelque chose de très complexe qui n'est pas à la portée de tous...
'---------------------------------------
Sub test()
With Range("B1:B13")
.FormulaArray = "=Row()"
End With
End Sub
'---------------------------------------
Bonjour,
As-tu vraiment un vrai problème à soumettre avec une formule
particulière, à l'intérieur d'une application précise?
Alors, pourquoi ne pas le préciser dans ta question? Lorsque quelqu'un
pose ce type de question à la queue leu leu,
je devins suspicieux quant à ses intentions.
Un petit exemple simple :
Tu sélectionnes la plage A1:A13 directement dans la feuille
A1 étant la cellule active, un clic sur la touche F2 et la cellule A1
passe en mode édition
tu insères cette grosse formule : =Ligne() et tu valides par Ctrl + Maj
+ Enter
A1:A13 affiche leur numéro de ligne et l'on vient de créer une matrice
sur plusieurs lignes, impossible de supprimer le contenu d'une cellule
particulière de cette plage.
Ta question si j'ai bien compris, comment fait-on pour reproduire cela
en VBA?
Après avoir passé des heures à chercher une solution, je te propose
quelque chose de très complexe qui n'est pas à la portée de tous...
'---------------------------------------
Sub test()
With Range("B1:B13")
.FormulaArray = "=Row()"
End With
End Sub
'---------------------------------------