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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
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.
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.
isabelle
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.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.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.
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.
isabelle
un autre hic,
les proriétés Dependents et Precedents ne fonctionnent pas avec les formules utilisant "INDIRECT" =SOMME(INDIRECT(ADRESSE(1;1)&":"&ADRESSE(LIGNE()-1;1)))
isabelle
Le 2014-05-29 09:48, isabelle a écrit :
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.
un autre hic,
les proriétés Dependents et Precedents ne fonctionnent pas avec les formules
utilisant "INDIRECT"
=SOMME(INDIRECT(ADRESSE(1;1)&":"&ADRESSE(LIGNE()-1;1)))
isabelle
Le 2014-05-29 09:48, isabelle a écrit :
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.
les proriétés Dependents et Precedents ne fonctionnent pas avec les formules utilisant "INDIRECT" =SOMME(INDIRECT(ADRESSE(1;1)&":"&ADRESSE(LIGNE()-1;1)))
isabelle
Le 2014-05-29 09:48, isabelle a écrit :
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.
GL
Le 29/05/2014 15: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"
oui. Pour une plage on a : Plage.HasArray signifie VRAI il n'y a que des formules matricielles (pas forcément la même formule ni la même matrice) FAUX il n'y a aucune formule matricielle NULL il y a des formules matricielles et d'autres choses (constantes/formules non matricielles etc)
par la suite tu pourrait utiliser une des propriétés Range.Dependents Range.DirectDependents Range.DirectPrecedents
Il y a le problème de INDIRECT (bien vu d'ailleurs ! ce qui implique qu'on ne devrait utiliser INDIRECT que quand c'est impossible de faire autrement...) mais je ne vois pas que ça me permet de résoudre la question.
J'ai trouvé : Cellule.CurrentArray qui renvoie la plage de validation de la formule matricielle contenue dans Cellule. L'aide pas très claire d'office dit :
« 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.»
Donc on peut s'en sortir en parcourant les différentes cellules de la collection .SpecialCells(xlCellTypeFormulas) et en regardant leur .HasArray et le cas échéant leur .CurrentArray. Mais c'est un peu technique...
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
oui j'ai fait cela : For Each Cellule in .SpecialCells(xlCellTypeFormulas) If Intersect(Cellule,<Cellules et CurrentArray déjà trouvés)=Nothing Regarde Cellule.HasArray et si VRAI ajoute Cellule.CurrentArray à la collection. Next Cellule
Au passage, les méthodes .FillRight et .FillDown se moquent totalement des formules matricielles...
Merci, Bonne journée.
Le 29/05/2014 15: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"
oui. Pour une plage on a :
Plage.HasArray signifie
VRAI il n'y a que des formules matricielles
(pas forcément la même formule ni la même matrice)
FAUX il n'y a aucune formule matricielle
NULL il y a des formules matricielles et d'autres
choses (constantes/formules non matricielles etc)
par la suite tu pourrait utiliser une des propriétés
Range.Dependents
Range.DirectDependents
Range.DirectPrecedents
Il y a le problème de INDIRECT (bien vu d'ailleurs ! ce qui implique
qu'on ne devrait utiliser INDIRECT que quand c'est impossible de faire
autrement...) mais je ne vois pas que ça me permet de résoudre la
question.
J'ai trouvé : Cellule.CurrentArray
qui renvoie la plage de validation de la formule matricielle contenue
dans Cellule. L'aide pas très claire d'office dit :
« 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.»
Donc on peut s'en sortir en parcourant les différentes cellules de
la collection .SpecialCells(xlCellTypeFormulas) et en regardant leur
.HasArray et le cas échéant leur .CurrentArray. Mais c'est un peu
technique...
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
oui j'ai fait cela :
For Each Cellule in .SpecialCells(xlCellTypeFormulas)
If Intersect(Cellule,<Cellules et CurrentArray déjà trouvés)=Nothing
Regarde Cellule.HasArray
et si VRAI ajoute Cellule.CurrentArray
à la collection.
Next Cellule
Au passage, les méthodes .FillRight et .FillDown se moquent totalement
des formules matricielles...
pour savoir si une cellule contient une formule matricielle
If ActiveCell.HasArray Then MsgBox "cette cellule contient une formule matricielle"
oui. Pour une plage on a : Plage.HasArray signifie VRAI il n'y a que des formules matricielles (pas forcément la même formule ni la même matrice) FAUX il n'y a aucune formule matricielle NULL il y a des formules matricielles et d'autres choses (constantes/formules non matricielles etc)
par la suite tu pourrait utiliser une des propriétés Range.Dependents Range.DirectDependents Range.DirectPrecedents
Il y a le problème de INDIRECT (bien vu d'ailleurs ! ce qui implique qu'on ne devrait utiliser INDIRECT que quand c'est impossible de faire autrement...) mais je ne vois pas que ça me permet de résoudre la question.
J'ai trouvé : Cellule.CurrentArray qui renvoie la plage de validation de la formule matricielle contenue dans Cellule. L'aide pas très claire d'office dit :
« 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.»
Donc on peut s'en sortir en parcourant les différentes cellules de la collection .SpecialCells(xlCellTypeFormulas) et en regardant leur .HasArray et le cas échéant leur .CurrentArray. Mais c'est un peu technique...
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
oui j'ai fait cela : For Each Cellule in .SpecialCells(xlCellTypeFormulas) If Intersect(Cellule,<Cellules et CurrentArray déjà trouvés)=Nothing Regarde Cellule.HasArray et si VRAI ajoute Cellule.CurrentArray à la collection. Next Cellule
Au passage, les méthodes .FillRight et .FillDown se moquent totalement des formules matricielles...
Merci, Bonne journée.
isabelle
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é...
isabelle
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é...
« 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é...
isabelle
GL
Le 29/05/2014 17:29, isabelle a écrit :
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
Apparemment si puisque Cellule.CurrentArray renvoie bien l'objet Range correspondant à la zone de validation de la formule matricielle dont Cellule fait partie...
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é...
Exemple :
A B 1| 1 {=GRANDE.VALEUR($A$5;{1;2;3;4;5})} 2| 2 {...<matrice>...} 3| 3 {...<matrice>...} 4| 4 {...<matrice>...} 5| 5 {...<matrice>...}
Tu sélectionnes maintenant B3:C3 et copie vers la droite (CTRL+D) il y a C3 affiche 5.
Je voudrais que dans ce cas la matrice complète soit recopiée vers la droite (une matrice est un bloc : c'est une seule cellule qui contient une matrice, mais qui a besoin de plusieurs cases pour s'afficher).
Cdt.
Le 29/05/2014 17:29, isabelle a écrit :
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
Apparemment si puisque Cellule.CurrentArray renvoie bien l'objet Range
correspondant à la zone de validation de la formule matricielle dont
Cellule fait partie...
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é...
Exemple :
A B
1| 1 {=GRANDE.VALEUR($A$5;{1;2;3;4;5})}
2| 2 {...<matrice>...}
3| 3 {...<matrice>...}
4| 4 {...<matrice>...}
5| 5 {...<matrice>...}
Tu sélectionnes maintenant B3:C3 et copie vers la droite (CTRL+D)
il y a C3 affiche 5.
Je voudrais que dans ce cas la matrice complète soit recopiée vers
la droite (une matrice est un bloc : c'est une seule cellule qui
contient une matrice, mais qui a besoin de plusieurs cases pour
s'afficher).
« 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
Apparemment si puisque Cellule.CurrentArray renvoie bien l'objet Range correspondant à la zone de validation de la formule matricielle dont Cellule fait partie...
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é...
Exemple :
A B 1| 1 {=GRANDE.VALEUR($A$5;{1;2;3;4;5})} 2| 2 {...<matrice>...} 3| 3 {...<matrice>...} 4| 4 {...<matrice>...} 5| 5 {...<matrice>...}
Tu sélectionnes maintenant B3:C3 et copie vers la droite (CTRL+D) il y a C3 affiche 5.
Je voudrais que dans ce cas la matrice complète soit recopiée vers la droite (une matrice est un bloc : c'est une seule cellule qui contient une matrice, mais qui a besoin de plusieurs cases pour s'afficher).
Cdt.
MichD
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
'---------------------------------------
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 '---------------------------------------
;-))
GL
Le 29/05/2014 19:43, MichD a écrit :
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?
Heu.. non ça n'a rien à voir. J'aurais voulu construire un objet Range dont chaque .Area contient une et une seule formule matricielle.
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 '---------------------------------------
Clairement, cela ne répond pas à la question posée ci-dessus...
Le 29/05/2014 19:43, MichD a écrit :
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?
Heu.. non ça n'a rien à voir. J'aurais voulu construire un objet Range
dont chaque .Area contient une et une seule formule matricielle.
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
'---------------------------------------
Clairement, cela ne répond pas à la question posée ci-dessus...
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?
Heu.. non ça n'a rien à voir. J'aurais voulu construire un objet Range dont chaque .Area contient une et une seule formule matricielle.
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 '---------------------------------------
Clairement, cela ne répond pas à la question posée ci-dessus...