QQun peut-il me dire pourquoi la ligne suivante ne me retourne pas un
tableau contenant toutes les formules de ma feuille ?
Syntaxe_des_Formules = ActiveSheet.Cells. _
SpecialCells(xlCellTypeFormulas).FormulaLocal
Re bonsoir, Je n'ai pas sur mes pages de formules matricielles. mais simplement une liste de 100 voir 150 formules réparties sur toutes la pages (pas forcement à la suite les unes des autres). je vais revoir mes feuilles et tester ta proposition cette nuit. Merci pour ton aide.
@+ Bartez
"michdenis" a écrit dans le message de news: #
Bonjour Bartez,
Ceci devrait fonctionner sur l'ensemble de la plage. Sauf si tu as des formules matricielles, elles vont se copier mais
de façon matricielle.
Je n'ai pas trouvé un moyen de pouvoir identifier les cellules ayant une formule matricielle à partir du VBA. Si
quelqu'un connaît le moyen ... on pourra adapter la macro !
'----------------------------- Sub CopieDeFormulesDuneFeuilleAlautre()
Dim Rg As Range, C As Range On Error Resume Next 'Feuille source With Worksheets("Feuil1") Set Rg = .UsedRange.SpecialCells _ (xlCellTypeFormulas) End With
'Feuille destination With Worksheets("Feuil3") For Each C In Rg .Range(C.Address).FormulaLocal = _ Worksheets("Feuil1").Range(C.Address).FormulaLocal Next End With Set Rg = Nothing: Set C = Nothing End Sub '-----------------------------
Salutations!
"bartez" a écrit dans le message de news:
C'est encore moi... Je viens de voir que la variable adr ne dépasse jamais 257 caractères alors
qu'elle devrait pouvoir en supporter environ 2 milliards. Quand je test : ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas).Select pour voir ce que qui est réèlement sélectionné, j'ai bien toutes cellules contenant des formules qui apparaissent sélectionnées. Je ne comprends pas pourquoi adr ne récupère pas toutes ces adresses.
Si tu peux regarder ce qui pose problème, parce que moi je sèche !
@+ Philippe
"michdenis" a écrit dans le message de news: #
Bonjour Bartez,
Cette macro copie toutes les formules de la feuille 2 vers la feuille 3 à la même adresse que la feuille source.
'-------------------------------- Sub CopieDeFormulesDuneFeuilleAlautre()
On Error Resume Next 'Feuille source With Worksheets("Feuil2") adr = .UsedRange.SpecialCells _ (xlCellTypeFormulas).Address End With
'Cette fonction "Split" requiert excel 2000 'ou plus récent t = Split(adr, ",")
'Feuille destination With Worksheets("Feuil3") For Each a In t .Range(a).FormulaLocal = _ Worksheets("Feuil2").Range(a).FormulaLocal Next End With
End Sub '-----------------------------------
Salutations!
"bartez" a écrit dans le message de news:
Bonjour Denis,
Je ne comprends pas pourquoi ma ligne de code ne fonctionne pas. Dans la feuille il y a toujours des formules et le débuger ne me signale aucune erreur. enfait je cherche à copier facilement les formules d'une feuille sur une autre et surtout au même emplacement (de façon simple et rapide) et je pensais utiliser qqchose comme :
Avec addresse_des_formules je récupère bien une chaine qui je pense peut être utilisable sans trop de mal, mais pour les formules .... j'ai rien :(
Je vais quand même regarder ton code, mais je ne pourrais pas avant ce soir.
@+ Bartez
"michdenis" a écrit dans le message de news: #z5AZP#
Bonjour Bartez,
Essaie ceci : La méthode SpecialCells provoque une erreur 91 lorsqu'elle ne trouve pas
de cellules équivalentes à ce qu'elle cherche !
Dans la boucle For each ... J'ai mis un stop pour faciliter l'arrêt de la
macro.
'----------------------------------- Sub AfficherLesFormules()
Dim Rg As Range On Error Resume Next Set Rg = Feuil1.UsedRange.SpecialCells(xlCellTypeFormulas)
If Err <> 0 Then Err = 0 Exit Sub End If
For Each c In Rg MsgBox c.FormulaLocal Stop Next Set Rg = Nothing End Sub '-----------------------------------
Salutations!
"bartez" a écrit dans le message de news: %
Bonsoir !
QQun peut-il me dire pourquoi la ligne suivante ne me retourne pas un tableau contenant toutes les formules de ma feuille ? Syntaxe_des_Formules = ActiveSheet.Cells. _ SpecialCells(xlCellTypeFormulas).FormulaLocal
Merci de votre aide
Re bonsoir,
Je n'ai pas sur mes pages de formules matricielles. mais simplement une
liste de 100 voir 150 formules réparties sur toutes la pages (pas forcement
à la suite les unes des autres).
je vais revoir mes feuilles et tester ta proposition cette nuit.
Merci pour ton aide.
@+ Bartez
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
#AYIkrK2EHA.3820@TK2MSFTNGP11.phx.gbl...
Bonjour Bartez,
Ceci devrait fonctionner sur l'ensemble de la plage. Sauf si tu as des
formules matricielles, elles vont se copier mais
de façon matricielle.
Je n'ai pas trouvé un moyen de pouvoir identifier les cellules ayant une
formule matricielle à partir du VBA. Si
quelqu'un connaît le moyen ... on pourra adapter la macro !
'-----------------------------
Sub CopieDeFormulesDuneFeuilleAlautre()
Dim Rg As Range, C As Range
On Error Resume Next
'Feuille source
With Worksheets("Feuil1")
Set Rg = .UsedRange.SpecialCells _
(xlCellTypeFormulas)
End With
'Feuille destination
With Worksheets("Feuil3")
For Each C In Rg
.Range(C.Address).FormulaLocal = _
Worksheets("Feuil1").Range(C.Address).FormulaLocal
Next
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-----------------------------
Salutations!
"bartez" <bartez@free.fr> a écrit dans le message de news:
uXl43NK2EHA.2824@TK2MSFTNGP09.phx.gbl...
C'est encore moi...
Je viens de voir que la variable adr ne dépasse jamais 257 caractères
alors
qu'elle devrait pouvoir en supporter environ 2 milliards.
Quand je test :
ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas).Select
pour voir ce que qui est réèlement sélectionné, j'ai bien toutes cellules
contenant des formules qui apparaissent sélectionnées. Je ne comprends pas
pourquoi adr ne récupère pas toutes ces adresses.
Si tu peux regarder ce qui pose problème, parce que moi je sèche !
@+ Philippe
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
#6mopdH2EHA.3468@TK2MSFTNGP14.phx.gbl...
Bonjour Bartez,
Cette macro copie toutes les formules de la feuille 2
vers la feuille 3 à la même adresse que la feuille source.
'--------------------------------
Sub CopieDeFormulesDuneFeuilleAlautre()
On Error Resume Next
'Feuille source
With Worksheets("Feuil2")
adr = .UsedRange.SpecialCells _
(xlCellTypeFormulas).Address
End With
'Cette fonction "Split" requiert excel 2000
'ou plus récent
t = Split(adr, ",")
'Feuille destination
With Worksheets("Feuil3")
For Each a In t
.Range(a).FormulaLocal = _
Worksheets("Feuil2").Range(a).FormulaLocal
Next
End With
End Sub
'-----------------------------------
Salutations!
"bartez" <bartez@free.fr> a écrit dans le message de news:
enwTxaD2EHA.1392@tk2msftngp13.phx.gbl...
Bonjour Denis,
Je ne comprends pas pourquoi ma ligne de code ne fonctionne pas.
Dans la feuille il y a toujours des formules et le débuger ne me signale
aucune erreur.
enfait je cherche à copier facilement les formules d'une feuille sur une
autre et surtout au même emplacement (de façon simple et rapide) et je
pensais utiliser qqchose comme :
Avec addresse_des_formules je récupère bien une chaine qui je pense peut
être utilisable sans trop de mal, mais pour les formules .... j'ai rien
:(
Je vais quand même regarder ton code, mais je ne pourrais pas avant ce
soir.
@+ Bartez
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
#z5AZP#1EHA.2824@TK2MSFTNGP09.phx.gbl...
Bonjour Bartez,
Essaie ceci :
La méthode SpecialCells provoque une erreur 91 lorsqu'elle ne trouve
pas
de cellules équivalentes à ce qu'elle cherche !
Dans la boucle For each ... J'ai mis un stop pour faciliter l'arrêt de
la
macro.
'-----------------------------------
Sub AfficherLesFormules()
Dim Rg As Range
On Error Resume Next
Set Rg = Feuil1.UsedRange.SpecialCells(xlCellTypeFormulas)
If Err <> 0 Then
Err = 0
Exit Sub
End If
For Each c In Rg
MsgBox c.FormulaLocal
Stop
Next
Set Rg = Nothing
End Sub
'-----------------------------------
Salutations!
"bartez" <bartez@free.fr> a écrit dans le message de news:
%23Lu7D591EHA.412@TK2MSFTNGP14.phx.gbl...
Bonsoir !
QQun peut-il me dire pourquoi la ligne suivante ne me retourne pas un
tableau contenant toutes les formules de ma feuille ?
Syntaxe_des_Formules = ActiveSheet.Cells. _
SpecialCells(xlCellTypeFormulas).FormulaLocal
Re bonsoir, Je n'ai pas sur mes pages de formules matricielles. mais simplement une liste de 100 voir 150 formules réparties sur toutes la pages (pas forcement à la suite les unes des autres). je vais revoir mes feuilles et tester ta proposition cette nuit. Merci pour ton aide.
@+ Bartez
"michdenis" a écrit dans le message de news: #
Bonjour Bartez,
Ceci devrait fonctionner sur l'ensemble de la plage. Sauf si tu as des formules matricielles, elles vont se copier mais
de façon matricielle.
Je n'ai pas trouvé un moyen de pouvoir identifier les cellules ayant une formule matricielle à partir du VBA. Si
quelqu'un connaît le moyen ... on pourra adapter la macro !
'----------------------------- Sub CopieDeFormulesDuneFeuilleAlautre()
Dim Rg As Range, C As Range On Error Resume Next 'Feuille source With Worksheets("Feuil1") Set Rg = .UsedRange.SpecialCells _ (xlCellTypeFormulas) End With
'Feuille destination With Worksheets("Feuil3") For Each C In Rg .Range(C.Address).FormulaLocal = _ Worksheets("Feuil1").Range(C.Address).FormulaLocal Next End With Set Rg = Nothing: Set C = Nothing End Sub '-----------------------------
Salutations!
"bartez" a écrit dans le message de news:
C'est encore moi... Je viens de voir que la variable adr ne dépasse jamais 257 caractères alors
qu'elle devrait pouvoir en supporter environ 2 milliards. Quand je test : ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas).Select pour voir ce que qui est réèlement sélectionné, j'ai bien toutes cellules contenant des formules qui apparaissent sélectionnées. Je ne comprends pas pourquoi adr ne récupère pas toutes ces adresses.
Si tu peux regarder ce qui pose problème, parce que moi je sèche !
@+ Philippe
"michdenis" a écrit dans le message de news: #
Bonjour Bartez,
Cette macro copie toutes les formules de la feuille 2 vers la feuille 3 à la même adresse que la feuille source.
'-------------------------------- Sub CopieDeFormulesDuneFeuilleAlautre()
On Error Resume Next 'Feuille source With Worksheets("Feuil2") adr = .UsedRange.SpecialCells _ (xlCellTypeFormulas).Address End With
'Cette fonction "Split" requiert excel 2000 'ou plus récent t = Split(adr, ",")
'Feuille destination With Worksheets("Feuil3") For Each a In t .Range(a).FormulaLocal = _ Worksheets("Feuil2").Range(a).FormulaLocal Next End With
End Sub '-----------------------------------
Salutations!
"bartez" a écrit dans le message de news:
Bonjour Denis,
Je ne comprends pas pourquoi ma ligne de code ne fonctionne pas. Dans la feuille il y a toujours des formules et le débuger ne me signale aucune erreur. enfait je cherche à copier facilement les formules d'une feuille sur une autre et surtout au même emplacement (de façon simple et rapide) et je pensais utiliser qqchose comme :
Avec addresse_des_formules je récupère bien une chaine qui je pense peut être utilisable sans trop de mal, mais pour les formules .... j'ai rien :(
Je vais quand même regarder ton code, mais je ne pourrais pas avant ce soir.
@+ Bartez
"michdenis" a écrit dans le message de news: #z5AZP#
Bonjour Bartez,
Essaie ceci : La méthode SpecialCells provoque une erreur 91 lorsqu'elle ne trouve pas
de cellules équivalentes à ce qu'elle cherche !
Dans la boucle For each ... J'ai mis un stop pour faciliter l'arrêt de la
macro.
'----------------------------------- Sub AfficherLesFormules()
Dim Rg As Range On Error Resume Next Set Rg = Feuil1.UsedRange.SpecialCells(xlCellTypeFormulas)
If Err <> 0 Then Err = 0 Exit Sub End If
For Each c In Rg MsgBox c.FormulaLocal Stop Next Set Rg = Nothing End Sub '-----------------------------------
Salutations!
"bartez" a écrit dans le message de news: %
Bonsoir !
QQun peut-il me dire pourquoi la ligne suivante ne me retourne pas un tableau contenant toutes les formules de ma feuille ? Syntaxe_des_Formules = ActiveSheet.Cells. _ SpecialCells(xlCellTypeFormulas).FormulaLocal
Merci de votre aide
GD
M'en parle pas Jean-paul !!! ça n'arrete pas de déconner, 20 mn pour charger 80 messages !!! -serveur free ne réponds pas attendre encore 60 secondes etc...
dslam-v2 - Dslam non joignable 'bdi68-1 ble59-1 boi59-1 can59-1 hel59-1 lib59-1 rsa59-1 stp25-2 tou59-1 tri59-1 weg38-1 ycl38-1' - depuis : 02 h 28 min
je me demande même comment j'arrive encore à surfer ??? @+
jps wrote:
fastoche une fois que tout le monde l'a claironné haut et fort.... si tu continues à copier, geedee, je t'envoie du côté de chez swan isabelle (sachant qu'en inuit, swan signifie rainette) jps
"GD" a écrit dans le message de news:
Bonsour® "michel " ;o))) denis wrote:
Je n'ai pas trouvé un moyen de pouvoir identifier les cellules ayant une formule matricielle à partir du VBA. Si quelqu'un connaît le moyen ... on pourra adapter la macro !
regarde du coté de la fonction hasarray ;o))) Cette propriété a la valeur True si la cellule spécifiée fait partie d'une formule matricielle.Type de données Variant en lecture seule. Exemple Cet exemple montre comment afficher un message si la cellule active de la feuille Sheet1 fait partie d'une formule matricielle. Worksheets("Sheet1").Activate If ActiveCell.HasArray =True Then MsgBox "The active cell is part of an array" End If
@+
M'en parle pas Jean-paul !!!
ça n'arrete pas de déconner, 20 mn pour charger 80 messages !!!
-serveur free ne réponds pas attendre encore 60 secondes etc...
dslam-v2 - Dslam non joignable
'bdi68-1 ble59-1 boi59-1 can59-1 hel59-1 lib59-1 rsa59-1 stp25-2 tou59-1
tri59-1 weg38-1 ycl38-1' - depuis : 02 h 28 min
je me demande même comment j'arrive encore à surfer ???
@+
jps wrote:
fastoche une fois que tout le monde l'a claironné haut et fort....
si tu continues à copier, geedee, je t'envoie du côté de chez swan
isabelle (sachant qu'en inuit, swan signifie rainette)
jps
"GD" <nomail@nomail.net> a écrit dans le message de
news:OwoLAUL2EHA.3500@TK2MSFTNGP09.phx.gbl...
Bonsour® "michel " ;o)))
denis wrote:
Je n'ai pas trouvé un moyen de pouvoir identifier les cellules ayant
une formule matricielle à partir du VBA. Si quelqu'un connaît le
moyen ... on pourra adapter la macro !
regarde du coté de la fonction hasarray
;o)))
Cette propriété a la valeur True si la cellule spécifiée fait partie
d'une formule matricielle.Type de données Variant en lecture seule.
Exemple
Cet exemple montre comment afficher un message si la cellule active
de la feuille Sheet1 fait partie d'une formule matricielle.
Worksheets("Sheet1").Activate
If ActiveCell.HasArray =True Then
MsgBox "The active cell is part of an array"
End If
M'en parle pas Jean-paul !!! ça n'arrete pas de déconner, 20 mn pour charger 80 messages !!! -serveur free ne réponds pas attendre encore 60 secondes etc...
dslam-v2 - Dslam non joignable 'bdi68-1 ble59-1 boi59-1 can59-1 hel59-1 lib59-1 rsa59-1 stp25-2 tou59-1 tri59-1 weg38-1 ycl38-1' - depuis : 02 h 28 min
je me demande même comment j'arrive encore à surfer ??? @+
jps wrote:
fastoche une fois que tout le monde l'a claironné haut et fort.... si tu continues à copier, geedee, je t'envoie du côté de chez swan isabelle (sachant qu'en inuit, swan signifie rainette) jps
"GD" a écrit dans le message de news:
Bonsour® "michel " ;o))) denis wrote:
Je n'ai pas trouvé un moyen de pouvoir identifier les cellules ayant une formule matricielle à partir du VBA. Si quelqu'un connaît le moyen ... on pourra adapter la macro !
regarde du coté de la fonction hasarray ;o))) Cette propriété a la valeur True si la cellule spécifiée fait partie d'une formule matricielle.Type de données Variant en lecture seule. Exemple Cet exemple montre comment afficher un message si la cellule active de la feuille Sheet1 fait partie d'une formule matricielle. Worksheets("Sheet1").Activate If ActiveCell.HasArray =True Then MsgBox "The active cell is part of an array" End If
@+
GD
GD wrote:
dslam-v2 - Dslam non joignable 'ble59-1 boi59-1 can59-1 hel59-1 lib59-1 rsa59-1 tou59-1 tri59-1' - depuis :
ne nous emm..... plus avec ton free, geedee : t'as qu'à aller chez wanamou, comme tant de monde... jps
"GD" a écrit dans le message de news:
M'en parle pas Jean-paul !!! ça n'arrete pas de déconner, 20 mn pour charger 80 messages !!! -serveur free ne réponds pas attendre encore 60 secondes etc...
dslam-v2 - Dslam non joignable 'bdi68-1 ble59-1 boi59-1 can59-1 hel59-1 lib59-1 rsa59-1 stp25-2 tou59-1 tri59-1 weg38-1 ycl38-1' - depuis : 02 h 28 min
je me demande même comment j'arrive encore à surfer ??? @+
jps wrote:
fastoche une fois que tout le monde l'a claironné haut et fort.... si tu continues à copier, geedee, je t'envoie du côté de chez swan isabelle (sachant qu'en inuit, swan signifie rainette) jps
"GD" a écrit dans le message de news:
Bonsour® "michel " ;o))) denis wrote:
Je n'ai pas trouvé un moyen de pouvoir identifier les cellules ayant une formule matricielle à partir du VBA. Si quelqu'un connaît le moyen ... on pourra adapter la macro !
regarde du coté de la fonction hasarray ;o))) Cette propriété a la valeur True si la cellule spécifiée fait partie d'une formule matricielle.Type de données Variant en lecture seule. Exemple Cet exemple montre comment afficher un message si la cellule active de la feuille Sheet1 fait partie d'une formule matricielle. Worksheets("Sheet1").Activate If ActiveCell.HasArray =True Then MsgBox "The active cell is part of an array" End If
@+
ne nous emm..... plus avec ton free, geedee : t'as qu'à aller chez wanamou,
comme tant de monde...
jps
"GD" <nomail@nomail.net> a écrit dans le message de
news:e5pbi4L2EHA.936@TK2MSFTNGP12.phx.gbl...
M'en parle pas Jean-paul !!!
ça n'arrete pas de déconner, 20 mn pour charger 80 messages !!!
-serveur free ne réponds pas attendre encore 60 secondes etc...
dslam-v2 - Dslam non joignable
'bdi68-1 ble59-1 boi59-1 can59-1 hel59-1 lib59-1 rsa59-1 stp25-2 tou59-1
tri59-1 weg38-1 ycl38-1' - depuis : 02 h 28 min
je me demande même comment j'arrive encore à surfer ???
@+
jps wrote:
fastoche une fois que tout le monde l'a claironné haut et fort....
si tu continues à copier, geedee, je t'envoie du côté de chez swan
isabelle (sachant qu'en inuit, swan signifie rainette)
jps
"GD" <nomail@nomail.net> a écrit dans le message de
news:OwoLAUL2EHA.3500@TK2MSFTNGP09.phx.gbl...
Bonsour® "michel " ;o)))
denis wrote:
Je n'ai pas trouvé un moyen de pouvoir identifier les cellules ayant
une formule matricielle à partir du VBA. Si quelqu'un connaît le
moyen ... on pourra adapter la macro !
regarde du coté de la fonction hasarray
;o)))
Cette propriété a la valeur True si la cellule spécifiée fait partie
d'une formule matricielle.Type de données Variant en lecture seule.
Exemple
Cet exemple montre comment afficher un message si la cellule active
de la feuille Sheet1 fait partie d'une formule matricielle.
Worksheets("Sheet1").Activate
If ActiveCell.HasArray =True Then
MsgBox "The active cell is part of an array"
End If
ne nous emm..... plus avec ton free, geedee : t'as qu'à aller chez wanamou, comme tant de monde... jps
"GD" a écrit dans le message de news:
M'en parle pas Jean-paul !!! ça n'arrete pas de déconner, 20 mn pour charger 80 messages !!! -serveur free ne réponds pas attendre encore 60 secondes etc...
dslam-v2 - Dslam non joignable 'bdi68-1 ble59-1 boi59-1 can59-1 hel59-1 lib59-1 rsa59-1 stp25-2 tou59-1 tri59-1 weg38-1 ycl38-1' - depuis : 02 h 28 min
je me demande même comment j'arrive encore à surfer ??? @+
jps wrote:
fastoche une fois que tout le monde l'a claironné haut et fort.... si tu continues à copier, geedee, je t'envoie du côté de chez swan isabelle (sachant qu'en inuit, swan signifie rainette) jps
"GD" a écrit dans le message de news:
Bonsour® "michel " ;o))) denis wrote:
Je n'ai pas trouvé un moyen de pouvoir identifier les cellules ayant une formule matricielle à partir du VBA. Si quelqu'un connaît le moyen ... on pourra adapter la macro !
regarde du coté de la fonction hasarray ;o))) Cette propriété a la valeur True si la cellule spécifiée fait partie d'une formule matricielle.Type de données Variant en lecture seule. Exemple Cet exemple montre comment afficher un message si la cellule active de la feuille Sheet1 fait partie d'une formule matricielle. Worksheets("Sheet1").Activate If ActiveCell.HasArray =True Then MsgBox "The active cell is part of an array" End If