Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recopier une cellule si formule ?

9 réponses
Avatar
celtic77
Bonjour,
Voil=E0 j'ai une base avec en colonne A des lignes avec valeur et
d'autres avec formules,
Ex
A1 555
A2 100
A3 =3DA1+A3
Je voudrais recopier en colonne B que les cellules contenant une
formule (A3 dans l'exemple mais pas A1 et A2)
J'ai cherch=E9 des formules du genre =3Dsi(estformule(A1);A1."") mais cela
ne marche pas !
Merci de votre aide, car j'ai beaucoup de lignes.

Celtic

9 réponses

Avatar
Coetera
a écrit dans le message de news:

Bonjour,
Voilà j'ai une base avec en colonne A des lignes avec valeur et
d'autres avec formules,
Ex
A1 555
A2 100
A3 ¡+A3
Je voudrais recopier en colonne B que les cellules contenant une
formule (A3 dans l'exemple mais pas A1 et A2)
J'ai cherché des formules du genre =si(estformule(A1);A1."") mais cela
ne marche pas !
Merci de votre aide, car j'ai beaucoup de lignes.


Dans un module ordinaire tu copies/colles la fonction perso suivante :

Function Avec_Formule(cel As Range)
If cel.HasFormula = True Then Avec_Formule = True
End Function

Dans ta feuille de calcul en B1 et recopie vers le bas :
=SI(Avec_Formule(A1);A1;"")

Etc
Avatar
celtic77
On 29 jan, 09:50, "Coetera" wrote:
a écrit dans le message de news:

Bonjour,
Voilà j'ai une base avec en colonne A des lignes avec valeur et
d'autres avec formules,
Ex
A1      555
A2      100
A3      ¡+A3
Je voudraisrecopieren colonne B que les cellules contenant uneformule(A3 dans l'exemple mais pas A1 et A2)
J'ai cherché des formules du genre =si(estformule(A1);A1."") mais cel a
ne marche pas !
Merci de votre aide,  car j'ai beaucoup de lignes.

Dans un module ordinaire tu copies/colles la fonction perso suivante :

Function Avec_Formule(cel As Range)
If cel.HasFormula = True Then Avec_Formule = True
End Function

Dans ta feuille de calcul en B1 et recopie vers le bas :
=SI(Avec_Formule(A1);A1;"")

Etc



Merci
mais je me suis mal exprimé, en effet cela me recopie la valeur, et je
voulais qu'il me recopie la formule !
Merci encore
Avatar
Coetera
Remplace la fonction perso par celle-là :

Function Avec_Formule(cel As Range)
If cel.HasFormula = True Then
Avec_Formule = cel
Else: Avec_Formule = ""
End If
End Function

Etc
Avatar
celtic77
On 29 jan, 10:10, wrote:
On 29 jan, 09:50, "Coetera" wrote:



> a écrit dans le message de news:
>
> Bonjour,
> Voilà j'ai une base avec en colonne A des lignes avec valeur et
> d'autres avec formules,
> Ex
> A1      555
> A2      100
> A3      ¡+A3
> Je voudraisrecopieren colonne B que les cellules contenant uneformule(A 3 dans l'exemple mais pas A1 et A2)
> J'ai cherché des formules du genre =si(estformule(A1);A1."") mais c ela
> ne marche pas !
> Merci de votre aide,  car j'ai beaucoup de lignes.

> Dans un module ordinaire tu copies/colles la fonction perso suivante :

> Function Avec_Formule(cel As Range)
> If cel.HasFormula = True Then Avec_Formule = True
> End Function

> Dans ta feuille de calcul en B1 et recopie vers le bas :
> =SI(Avec_Formule(A1);A1;"")

> Etc

Merci
mais je me suis mal exprimé, en effet cela me recopie la valeur, et je
voulais qu'il me recopie laformule!
Merci encore



C'est bon j'ai trouvé ! et oui il suffisait de copier la colonne et
ensuite faire atteindre cellule constante et supprimer ! comme cela je
n'ai que mais formules
En tout cas merci de ton aide et bonne journée
Avatar
Coetera
Il manque un morceau dans la recopie !

Function Avec_Formule(cel As Range)
If cel.HasFormula = True Then
Avec_Formule = cel.formula
Else: Avec_Formule = ""
End If
End Function

Etc
Avatar
celtic77
On 29 jan, 10:30, "Coetera" wrote:
Il manque un morceau dans la recopie !

Function Avec_Formule(cel As Range)
If cel.HasFormula = True Then
      Avec_Formule = cel.formula
      Else: Avec_Formule = ""
End If
End Function

Etc



Encore merci je vais la garder précieusement
Avatar
Modeste
Bonsour®
Bonne année !!! Meilleurs voeux à tous !!!

Voilà j'ai une base avec en colonne A des lignes avec valeur et
d'autres avec formules,
Ex
A1 555
A2 100
A3 ¡+A3
Je voudrais recopier en colonne B que les cellules contenant une
formule (A3 dans l'exemple mais pas A1 et A2)
J'ai cherché des formules du genre =si(estformule(A1);A1."") mais cela
ne marche pas !



Function Lire_formule(target, Optional typeL As Integer) As String
Select Case typeL
Case 1: Lire_formule = " " & IIf(target.HasFormula, target.FormulaLocal, "")
Case 2: Lire_formule = " " & IIf(target.HasFormula, target.Formula, "")
Case 3: Lire_formule = " " & IIf(target.HasFormula, target.FormulaR1C1Local, "")
Case 4: Lire_formule = " " & IIf(target.HasFormula, target.FormulaR1C1, "")
Case Else: Lire_formule = " " & IIf(target.HasFormula, target.FormulaLocal, "")
End Select
End Function

utilisation :
= LIRE_FORMULE(A3)
ou
=LIRE_FORMULE(A3; x)
x argument facultatif de type numérique,
suivant les valeurs 1,2,3 ou 4 restitue la formule selon les differentes notations possibles
(trés pratique pour traduction US)
Avatar
michdenis
Pour recopier toutes les formules de la colonne A:A
dans la colonne B:B de la feuil1

'-----------------------------
Sub test()
Dim AREA As Range
On Error Resume Next
With Feuil1
With .Range("A1:A" & .Range("A65536"). _
End(xlUp).Row).SpecialCells(xlCellTypeFormulas)
For Each AREA In .Areas
AREA.Offset(, 1).Formula = AREA.Formula
Next
End With
End With
End Sub
'-----------------------------



a écrit dans le message de groupe de discussion :

Bonjour,
Voilà j'ai une base avec en colonne A des lignes avec valeur et
d'autres avec formules,
Ex
A1 555
A2 100
A3 ¡+A3
Je voudrais recopier en colonne B que les cellules contenant une
formule (A3 dans l'exemple mais pas A1 et A2)
J'ai cherché des formules du genre =si(estformule(A1);A1."") mais cela
ne marche pas !
Merci de votre aide, car j'ai beaucoup de lignes.

Celtic
Avatar
celtic77
En tout cas merci pour vos réponse ca marche !!

michdenis a écrit :
Pour recopier toutes les formules de la colonne A:A
dans la colonne B:B de la feuil1

'-----------------------------
Sub test()
Dim AREA As Range
On Error Resume Next
With Feuil1
With .Range("A1:A" & .Range("A65536"). _
End(xlUp).Row).SpecialCells(xlCellTypeFormulas)
For Each AREA In .Areas
AREA.Offset(, 1).Formula = AREA.Formula
Next
End With
End With
End Sub
'-----------------------------



a �crit dans le message de groupe de disc ussion :

Bonjour,
Voil� j'ai une base avec en colonne A des lignes avec valeur et
d'autres avec formules,
Ex
A1 555
A2 100
A3 ¡+A3
Je voudrais recopier en colonne B que les cellules contenant une
formule (A3 dans l'exemple mais pas A1 et A2)
J'ai cherch� des formules du genre =si(estformule(A1);A1."") ma is cela
ne marche pas !
Merci de votre aide, car j'ai beaucoup de lignes.

Celtic