OVH Cloud OVH Cloud

copie de plage matricielle (ou TABLE())

3 réponses
Avatar
Pascal Engelmajer
Bonjour
Sub copie()
Dim cell As Range
For Each cell In Sheets(1).UsedRange
ad = cell.Address
if cell.HasArray then Sheets(2).Range(ad).FormulaArray =
cell.FormulaArray
Next cell
End Sub
voici une procédure simple mais sur une plage matricielle la copie n'est
plus matricielle...
et TABLE() provoque la célèbre erreur 1004...
Comment résoudre ce problème qui interdit la fiabilité de la copie tout en
copiant cellule par cellule...
--
Merci
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel

3 réponses

Avatar
Modeste
Bonjour Pascal,
pourquoi tiens-tu à copier cellule par cellule ???
fiabilité de la copie ???

mefiance toutefois avec les plages nommées et adresses
absolues

Sub Macro1()
Sheets("Feuil1").Select
ActiveSheet.UsedRange.Select
Selection.Copy
Sheets("Feuil2").Select
Range("A1").Select
'---autre destination ex: Range("AA32").Select
ActiveSheet.Paste
End Sub

;o)))
@+

-----Message d'origine-----
Bonjour
Sub copie()
Dim cell As Range
For Each cell In Sheets(1).UsedRange
ad = cell.Address
if cell.HasArray then Sheets(2).Range
(ad).FormulaArray =

cell.FormulaArray
Next cell
End Sub
voici une procédure simple mais sur une plage
matricielle la copie n'est

plus matricielle...
et TABLE() provoque la célèbre erreur 1004...
Comment résoudre ce problème qui interdit la fiabilité
de la copie tout en

copiant cellule par cellule...
--
Merci
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait
pas ou il va."

Sénèque.
http://www.ilyapa.net/excel


.



Avatar
Pascal Engelmajer
Salut,
Merci de ta réponse
pourquoi tiens-tu à copier cellule par cellule ???
En fait il ne s'agit pas d'une copie mais d'une création par programme

d'une table avec une formule du genre {=TABLE(A1*A2)} sur n colonnes et m
lignes.
Je me satisferais de {¡:A8*B2:B10}
c'est devant l'impossibilité d'avoir un résultat correct que j'ai écris
l'exemple avec une recopie
-
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Modeste" a écrit dans le message de
news: c7a201c438da$4168cdf0$
Bonjour Pascal,
pourquoi tiens-tu à copier cellule par cellule ???
fiabilité de la copie ???

mefiance toutefois avec les plages nommées et adresses
absolues

Sub Macro1()
Sheets("Feuil1").Select
ActiveSheet.UsedRange.Select
Selection.Copy
Sheets("Feuil2").Select
Range("A1").Select
'---autre destination ex: Range("AA32").Select
ActiveSheet.Paste
End Sub

;o)))
@+

-----Message d'origine-----
Bonjour
Sub copie()
Dim cell As Range
For Each cell In Sheets(1).UsedRange
ad = cell.Address
if cell.HasArray then Sheets(2).Range
(ad).FormulaArray >cell.FormulaArray

Next cell
End Sub
voici une procédure simple mais sur une plage
matricielle la copie n'est

plus matricielle...
et TABLE() provoque la célèbre erreur 1004...
Comment résoudre ce problème qui interdit la fiabilité
de la copie tout en

copiant cellule par cellule...
--
Merci
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait
pas ou il va."

Sénèque.
http://www.ilyapa.net/excel


.



Avatar
Pascal Engelmajer
Salut à tous,
une précision :
j'ai une série de fichiers texte contenant les éléments de la plage
matricielle à créer, plage dont la dimension varie du simple au décuple de 5
lignes x 5 colonnes à 80 lignes x 20 colonnes.
ex.
"A2:A6";"B1:B4";"¢:A6*B1:B4"
"1";"2";"3";"4";"5"
"1";"2";"3";"4"
ce qui doit donner une table de Pythagore 1x1, 1x2, ..., 5x4
pas de pb pour les entêtes de lignes et de colonnes FormulaArray
mais impossible d'activer le mode
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
Merci de ta réponse
pourquoi tiens-tu à copier cellule par cellule ???
En fait il ne s'agit pas d'une copie mais d'une création par programme

d'une table avec une formule du genre {=TABLE(A1*A2)} sur n colonnes et m
lignes.
Je me satisferais de {¡:A8*B2:B10}
c'est devant l'impossibilité d'avoir un résultat correct que j'ai écris
l'exemple avec une recopie
-
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Modeste" a écrit dans le message de
news: c7a201c438da$4168cdf0$
Bonjour Pascal,
pourquoi tiens-tu à copier cellule par cellule ???
fiabilité de la copie ???

mefiance toutefois avec les plages nommées et adresses
absolues

Sub Macro1()
Sheets("Feuil1").Select
ActiveSheet.UsedRange.Select
Selection.Copy
Sheets("Feuil2").Select
Range("A1").Select
'---autre destination ex: Range("AA32").Select
ActiveSheet.Paste
End Sub

;o)))
@+

-----Message d'origine-----
Bonjour
Sub copie()
Dim cell As Range
For Each cell In Sheets(1).UsedRange
ad = cell.Address
if cell.HasArray then Sheets(2).Range
(ad).FormulaArray > >cell.FormulaArray

Next cell
End Sub
voici une procédure simple mais sur une plage
matricielle la copie n'est

plus matricielle...
et TABLE() provoque la célèbre erreur 1004...
Comment résoudre ce problème qui interdit la fiabilité
de la copie tout en

copiant cellule par cellule...
--
Merci
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait
pas ou il va."

Sénèque.
http://www.ilyapa.net/excel


.