OVH Cloud OVH Cloud

Copier seulement les Formules

7 réponses
Avatar
bartez
Bonsoir,

A1=2
A2=5
A3=A1+A2

Comment Copier A1:A3 sur une nouvelle feuille en ne collant que les Formules
: Donc en ne remplassant que les cellules dont le contenu commence par le
signe égal"=" et pas les valeures simple comme "2 ou 5" ,
Je pensais réussir en passant par :
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
mais ça ne fonctionne pas :) ça colle tout, formule et valeur.

Je suis encore obligé de m'en remettre à vos connaissances pour trouver une
solution ;) si solution il y a !

7 réponses

Avatar
Pounet95
Bonsoir,
A priori, c'est normal d'avoir les formules !
Un petit coup d'enregistreur de macro et voilà le code :

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:úlse, Transpose:úlse

On voit :=xlValues au lieu de xlPasteFormulas

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"bartez" a écrit dans le message de news:
%
Bonsoir,

A1=2
A2=5
A3¡+A2

Comment Copier A1:A3 sur une nouvelle feuille en ne collant que les
Formules
: Donc en ne remplassant que les cellules dont le contenu commence par le
signe égal"=" et pas les valeures simple comme "2 ou 5" ,
Je pensais réussir en passant par :
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
mais ça ne fonctionne pas :) ça colle tout, formule et valeur.

Je suis encore obligé de m'en remettre à vos connaissances pour trouver
une
solution ;) si solution il y a !





Avatar
Daniel.M
Bonjour,

Pour Copier seulement les Formules:
1.Copier tout
2.Enlever les constantes

Exemple:
Pour copier les formules (et formats) de A2:A10 à B2:B10

Range("A2:A10").Copy Range("B2:B10")
On Error Resume Next
Range("B2:B10").SpecialCells(xlCellTypeConstants,23).ClearContents
On Error Goto 0

Salutations,

Daniel M.

"bartez" wrote in message
news:%
Bonsoir,

A1=2
A2=5
A3¡+A2

Comment Copier A1:A3 sur une nouvelle feuille en ne collant que les Formules
: Donc en ne remplassant que les cellules dont le contenu commence par le
signe égal"=" et pas les valeures simple comme "2 ou 5" ,
Je pensais réussir en passant par :
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
mais ça ne fonctionne pas :) ça colle tout, formule et valeur.

Je suis encore obligé de m'en remettre à vos connaissances pour trouver une
solution ;) si solution il y a !





Avatar
bartez
Merci pour ta réponse, mais elle ne correspond pas tout a fait à ce que je
recherche.
En fait je ne veux pas effacer les cellules qui n'ont pas reçu de formules
mais copier seulement celles qui ont des formules.
Je vois que tu utilises
SpecialCells(xlCellTypeConstants
est-il possible d'utiliser qqchose comme ça pour selectionner seulement les
formules avant de tout coller ?
@+ Bartez

"Daniel.M" a écrit dans le message de
news:
Bonjour,

Pour Copier seulement les Formules:
1.Copier tout
2.Enlever les constantes

Exemple:
Pour copier les formules (et formats) de A2:A10 à B2:B10

Range("A2:A10").Copy Range("B2:B10")
On Error Resume Next
Range("B2:B10").SpecialCells(xlCellTypeConstants,23).ClearContents
On Error Goto 0

Salutations,

Daniel M.

"bartez" wrote in message
news:%
Bonsoir,

A1=2
A2=5
A3¡+A2

Comment Copier A1:A3 sur une nouvelle feuille en ne collant que les
Formules


: Donc en ne remplassant que les cellules dont le contenu commence par
le


signe égal"=" et pas les valeures simple comme "2 ou 5" ,
Je pensais réussir en passant par :
Selection.PasteSpecial Paste:=xlPasteFormulas,
Operation:=xlNone, _


SkipBlanks:úlse, Transpose:úlse
mais ça ne fonctionne pas :) ça colle tout, formule et valeur.

Je suis encore obligé de m'en remettre à vos connaissances pour trouver
une


solution ;) si solution il y a !









Avatar
bartez
C'est bien ce que tu m'explique....seulement je cherche justement à faire
l'inverse, ne copier que les formules et pas les valeurs ;)
@+

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

Bonsoir,
A priori, c'est normal d'avoir les formules !
Un petit coup d'enregistreur de macro et voilà le code :

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:úlse, Transpose:úlse

On voit :=xlValues au lieu de xlPasteFormulas

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"bartez" a écrit dans le message de news:
%
Bonsoir,

A1=2
A2=5
A3¡+A2

Comment Copier A1:A3 sur une nouvelle feuille en ne collant que les
Formules
: Donc en ne remplassant que les cellules dont le contenu commence par
le


signe égal"=" et pas les valeures simple comme "2 ou 5" ,
Je pensais réussir en passant par :
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone,
_


SkipBlanks:úlse, Transpose:úlse
mais ça ne fonctionne pas :) ça colle tout, formule et valeur.

Je suis encore obligé de m'en remettre à vos connaissances pour trouver
une
solution ;) si solution il y a !








Avatar
Daniel.M
En fait je ne veux pas effacer les cellules qui n'ont pas reçu de formules
mais copier seulement celles qui ont des formules.


OK. Souvent, on utilise ce genre de code pour copier les formules sur une
ligne/colonne vierge. Ce n'était pas ton cas :-)

Je vois que tu utilises SpecialCells(xlCellTypeConstants
est-il possible d'utiliser qqchose comme ça pour selectionner seulement
les formules avant de tout coller ?


Oui, il y a SpecialCells(xlCellTypeFormulas, 23) mais dans ce cas, l'itération
est une aussi bonne solution.

Donc, mais en ne traitant pas les formules matricielles retournant des matrices:

Sub CopyFormule1()
Dim Plage As Range, C As Range
Dim DebLi As Long, Li As Long, DebCol As Integer, Col As Integer

Set Plage = Range("A2:A10") ' Source à ajuster
DebLi = Plage.Row
DebCol = Plage.Column
For Each C In Plage
If C.HasFormula Then
Li = 1 + C.Row - DebLi
Col = 1 + C.Column - DebCol
C.Copy Range("B2")(Li, Col) ' ajuster la destination, B2 si nécessaire
End If
Next C

End Sub

Salutations,

Daniel M.

"bartez" wrote in message
news:eEW%
Merci pour ta réponse, mais elle ne correspond pas tout a fait à ce que je
recherche.



@+ Bartez

"Daniel.M" a écrit dans le message de
news:
Bonjour,

Pour Copier seulement les Formules:
1.Copier tout
2.Enlever les constantes

Exemple:
Pour copier les formules (et formats) de A2:A10 à B2:B10

Range("A2:A10").Copy Range("B2:B10")
On Error Resume Next
Range("B2:B10").SpecialCells(xlCellTypeConstants,23).ClearContents
On Error Goto 0

Salutations,

Daniel M.

"bartez" wrote in message
news:%
Bonsoir,

A1=2
A2=5
A3¡+A2

Comment Copier A1:A3 sur une nouvelle feuille en ne collant que les
Formules


: Donc en ne remplassant que les cellules dont le contenu commence par
le


signe égal"=" et pas les valeures simple comme "2 ou 5" ,
Je pensais réussir en passant par :
Selection.PasteSpecial Paste:=xlPasteFormulas,
Operation:=xlNone, _


SkipBlanks:úlse, Transpose:úlse
mais ça ne fonctionne pas :) ça colle tout, formule et valeur.

Je suis encore obligé de m'en remettre à vos connaissances pour trouver
une


solution ;) si solution il y a !













Avatar
bartez
Merci pour ta proposition, je testerai ça demain et je te donnerai des
nouvelles. Histoire de savoir si ça à fonctionné.

Bonne nuit, je suis naz, je vais me coucher ;)
@+ Bartez

"Daniel.M" a écrit dans le message de
news: #
En fait je ne veux pas effacer les cellules qui n'ont pas reçu de
formules


mais copier seulement celles qui ont des formules.


OK. Souvent, on utilise ce genre de code pour copier les formules sur une
ligne/colonne vierge. Ce n'était pas ton cas :-)

Je vois que tu utilises SpecialCells(xlCellTypeConstants
est-il possible d'utiliser qqchose comme ça pour selectionner seulement
les formules avant de tout coller ?


Oui, il y a SpecialCells(xlCellTypeFormulas, 23) mais dans ce cas,
l'itération

est une aussi bonne solution.

Donc, mais en ne traitant pas les formules matricielles retournant des
matrices:


Sub CopyFormule1()
Dim Plage As Range, C As Range
Dim DebLi As Long, Li As Long, DebCol As Integer, Col As Integer

Set Plage = Range("A2:A10") ' Source à ajuster
DebLi = Plage.Row
DebCol = Plage.Column
For Each C In Plage
If C.HasFormula Then
Li = 1 + C.Row - DebLi
Col = 1 + C.Column - DebCol
C.Copy Range("B2")(Li, Col) ' ajuster la destination, B2 si
nécessaire

End If
Next C

End Sub

Salutations,

Daniel M.

"bartez" wrote in message
news:eEW%
Merci pour ta réponse, mais elle ne correspond pas tout a fait à ce que
je


recherche.



@+ Bartez

"Daniel.M" a écrit dans le message de
news:
Bonjour,

Pour Copier seulement les Formules:
1.Copier tout
2.Enlever les constantes

Exemple:
Pour copier les formules (et formats) de A2:A10 à B2:B10

Range("A2:A10").Copy Range("B2:B10")
On Error Resume Next
Range("B2:B10").SpecialCells(xlCellTypeConstants,23).ClearContents
On Error Goto 0

Salutations,

Daniel M.

"bartez" wrote in message
news:%
Bonsoir,

A1=2
A2=5
A3¡+A2

Comment Copier A1:A3 sur une nouvelle feuille en ne collant que les
Formules


: Donc en ne remplassant que les cellules dont le contenu commence
par




le
signe égal"=" et pas les valeures simple comme "2 ou 5" ,
Je pensais réussir en passant par :
Selection.PasteSpecial Paste:=xlPasteFormulas,
Operation:=xlNone, _


SkipBlanks:úlse, Transpose:úlse
mais ça ne fonctionne pas :) ça colle tout, formule et valeur.

Je suis encore obligé de m'en remettre à vos connaissances pour
trouver




une
solution ;) si solution il y a !

















Avatar
bartez
Merci Daniel pour ton code d'hier,
Tout est Ok. J'ai testé et ça ne me prend bien que les toutes les formules
pour les copier ou je veux.
bonne journée et encore merci !
@+ Bartez

"bartez" a écrit dans le message de news:
uG$
Merci pour ta proposition, je testerai ça demain et je te donnerai des
nouvelles. Histoire de savoir si ça à fonctionné.

Bonne nuit, je suis naz, je vais me coucher ;)
@+ Bartez

"Daniel.M" a écrit dans le message de
news: #
En fait je ne veux pas effacer les cellules qui n'ont pas reçu de
formules


mais copier seulement celles qui ont des formules.


OK. Souvent, on utilise ce genre de code pour copier les formules sur
une


ligne/colonne vierge. Ce n'était pas ton cas :-)

Je vois que tu utilises SpecialCells(xlCellTypeConstants
est-il possible d'utiliser qqchose comme ça pour selectionner
seulement



les formules avant de tout coller ?


Oui, il y a SpecialCells(xlCellTypeFormulas, 23) mais dans ce cas,
l'itération

est une aussi bonne solution.

Donc, mais en ne traitant pas les formules matricielles retournant des
matrices:


Sub CopyFormule1()
Dim Plage As Range, C As Range
Dim DebLi As Long, Li As Long, DebCol As Integer, Col As Integer

Set Plage = Range("A2:A10") ' Source à ajuster
DebLi = Plage.Row
DebCol = Plage.Column
For Each C In Plage
If C.HasFormula Then
Li = 1 + C.Row - DebLi
Col = 1 + C.Column - DebCol
C.Copy Range("B2")(Li, Col) ' ajuster la destination, B2 si
nécessaire

End If
Next C

End Sub

Salutations,

Daniel M.

"bartez" wrote in message
news:eEW%
Merci pour ta réponse, mais elle ne correspond pas tout a fait à ce
que



je
recherche.



@+ Bartez

"Daniel.M" a écrit dans le message
de



news:
Bonjour,

Pour Copier seulement les Formules:
1.Copier tout
2.Enlever les constantes

Exemple:
Pour copier les formules (et formats) de A2:A10 à B2:B10

Range("A2:A10").Copy Range("B2:B10")
On Error Resume Next
Range("B2:B10").SpecialCells(xlCellTypeConstants,23).ClearContents
On Error Goto 0

Salutations,

Daniel M.

"bartez" wrote in message
news:%
Bonsoir,

A1=2
A2=5
A3¡+A2

Comment Copier A1:A3 sur une nouvelle feuille en ne collant que
les





Formules
: Donc en ne remplassant que les cellules dont le contenu commence
par




le
signe égal"=" et pas les valeures simple comme "2 ou 5" ,
Je pensais réussir en passant par :
Selection.PasteSpecial Paste:=xlPasteFormulas,
Operation:=xlNone, _


SkipBlanks:úlse, Transpose:úlse
mais ça ne fonctionne pas :) ça colle tout, formule et valeur.

Je suis encore obligé de m'en remettre à vos connaissances pour
trouver




une
solution ;) si solution il y a !