Microsoft 365 supprimer le @ en début de formule

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous,
Je vous souhaite une belle journée :)

De bon matin, j'ai déjà besoin d'aide.
J'ai fait ce petit code :
VB:
Sub Macro1()
    ActiveCell = "=IF(ISNUMBER(ActiveCell)=FALSE,"""",ActiveCell)"
    'ActiveCell.Offset(0, -1) = "=IF(ISNUMBER(ActiveCell.Offset(0, -1))=FALSE,"""",ActiveCell.Offset(0, -1))"
    [R3].Copy
    [R4:R11].Select
    ActiveSheet.Paste
    [R3].Select
    Application.CutCopyMode = False
End Sub
La formule qui s'affiche dans ma cellule est la suivante : =@SI(ESTNUM(@ActiveCell)=FAUX;"";ActiveCell)
J'essaie de faire en sorte qu'il ne mette pas ces @ intempestifs.

Je n'ai pas trouvé comment m'en débarrasser.
Auriez-vous la solution ?
Je vous remercie :)

Je continue à chercher,
lionel :)
 

patricktoulon

XLDnaute Barbatruc
bonjour lionel
ou tu a vu qu'une fonction activecell existe toi dans excel ?
activecell n'existe qu'en VBA elle désigne la cellule active
en formule ça n'existe pas

VB:
ActiveCell.formula= "=IF(ISNUMBER(" & ActiveCell.address(0,0) & ")=FALSE,""""," & ActiveCell.address(0,0) & ")"
est en plus là tu remet en cause le problème de référence circulaire
on ne peut pas mettre une formule dans une cellule qui ferait une operation sur la cellule elle même donc c'est tout ton raisonnement qui est à revoir
 

Usine à gaz

XLDnaute Barbatruc
Bonjour Patrick et merci d'être là :)
Merci pour le code qui fonctionne mais qui ne calcul pas sur la bonne cellule (S au lieu de J).

Je vais mieux expliquer ma problématique :
Le code que je voudrais écrire doit me renvoyer en colonne S la formule suivante
J'ai :

en J3 : "13.11.202100:00" le code doit me renvoyer en colonne "S"
la formule : =SI(ESTNUM(J3)=FAUX;"";J3) résultat affiché = 13.11.202100:00"

en j4 : "RdV Fait" le code doit me renvoyer en colonne "S"
la formule : =SI(ESTNUM(J4)=FAUX;"";J4) résultat affiché = ""

je tente de modifier ton code mais je n'y arrive pas :)
lionel :)
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Re :)
Je l'ai fait comme ça :
VB:
Sub Macro2()
    Range("s3").Select
    ActiveCell.Formula = "=IF(ISNUMBER(RC[-9])=FALSE,"""",RC[-9])"
    [s3].Copy
    [s4:s11].Select
    ActiveSheet.Paste
    [s3:s11].Copy
    [s3].PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("s3").Select
    Application.CutCopyMode = False
End Sub
:)
 

Usine à gaz

XLDnaute Barbatruc
Re :)
Je l'ai fait comme ça :

VB:
Sub soussou()
    [s3:s11] = ""
    ActiveSheet.Range("s3:s11").Formula = "=IF(ISNUMBER(RC[-9])=FALSE,"""",RC[-9])"
    ActiveSheet.Range("s3:s11").Copy: Range("s3:s10").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    Range("s3").Select
End Sub
lionel :)
 

sousou

XLDnaute Barbatruc
Cà c'est pas possible, si tu supprimes la formule par les valeurs, lorsque la colonne j sera modifier la colonne s ne le sera plus.

Pour copier les valeur, fait ceci
For n = 3 To 11
If IsNumeric(Cells(n, 10)) = True Then Cells(n, 19) = Cells(n, 10) Else Cells(n, 19) = ""
Next
 

patricktoulon

XLDnaute Barbatruc
Si, je veux que les calculs se fassent mais en finalité que ce soit les valeurs qui restent dans la cellule :)
des fois je te jure Lionel je me demande si tu disjoncte pas un peu
pourquoi ne le fait tu pas en vba directement avec résultat en dur alors
au pire tu fait un evaluate de ta formule si tu sais pas la traduire en VBA et ça t'enverra le résultat en dur dans les cells
là tu change les cells donc un calculate ensuite la formule elle même génère un calculate et ensuite tu durci les valeurs avec .value=.value et encore un calculate
si ça peut te calmer je veux bien t'offrir une calculette :D😂😂😂😂

a ben @sousou a tout dit on c'est croisé
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
et ben alors sert toi du change et fait tes calcul en vba ou evaluate en vba si tu sais pas traduire une formule en code VBA
c'est tout
et même(facultatif) au pire histoire d’économiser tu peut shunter le calculate puisque tout ce fait par VBA
c'est pas tres pratique ton principe et même dangereux qui sait si tu a 10000 ligne qui se calcule ton copy paste(qui pourrait être simplement remplacé par ".value=.value") peut être fait avant les calculs

tu fait des trucs toi des fois 😂😂😂
 

Discussions similaires

Statistiques des forums

Discussions
315 103
Messages
2 116 238
Membres
112 695
dernier inscrit
ben44115