Microsoft 365 code vba qui renvoie la formule avec @ dedans

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite une belle journée 🙂

J'ai un souci de code que je ne parviens pas à résoudre,
voici mon code :
VB:
Sub Mise_à_jour()
'ATTENTION Formule : si RdV déjà   : RdV Fait Facturé

    [o2] = "=COUNTIF(R[3]C:R[9996]C,""><"")"
    [M4] = "=IF(SUM(--(ISNUMBER(SEARCH(RC[-11],Facture!R2C[-8]:R30C[-8]))))>=1,RC[-11],"""")"
  
    'ME RENVOIE EN M4 : =SI(SOMME(--(ESTNUM(CHERCHE(B4;@Facture!E$2:E$30))))>=1;B4;"")
  
    [M4].Copy
    [m5:m13].Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
  
    [J4] = "=IF(RC[3]<>"""",""RdV Fait Facturé"",""RdV Fait"")"
    [J4].Copy
    [J5:J13].Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("J4:J13").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
  
    Columns("m:q").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("A1").Select
End Sub
Le code " [M4] = "=IF(SUM(--(ISNUMBER(SEARCH(RC[-11],Facture!R2C[-8]:R30C[-8]))))>=1,RC[-11],"""")""
Me renvoie dans la cellule "M4" la formule avec @ et je ne parviens pas à m'en débarrasser.

Auriez-vous la solution ?
Je joins le fichier test et je continue à chercher.
Un grand merci à toutes et à tous,
lionel 🙂
 

Pièces jointes

Dernière édition:
Re-Deadpool_CC 🙂
Résolu grâce à toi ..... Merci pour ta patience 🙂

On peut certainement faire mieux mais ça fonctionne lol 😉
VB:
Sub Mise_à_jour()
'ATTENTION Formule : si RdV déjà   : RdV Fait Facturé

    [o2] = "=COUNTIF(R[3]C:R[9996]C,""><"")"
    [M4] = "=IF(SUM(--(ISNUMBER(SEARCH(RC[-11],Facture!R2C[-8]:R30C[-8]))))>=1,RC[-11],"""")"
    'ME RENVOIE EN M4 : =SI(SOMME(--(ESTNUM(CHERCHE(B4;@Facture!E$2:E$30))))>=1;B4;"")
   
    '----------------------------------------------------------------------------------------
    'Remplace le @
    [O4] = "SI(SOMME(--(ESTNUM(CHERCHE(B4;@Facture!E$2:E$30))))>=1;B4;"""")"
   
    [O4].Select
    ActiveCell.Replace What:="@", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Cells.Find(What:="@", After:=ActiveCell, LookIn:=xlFormulas2, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
       
    Range("M4").Select
    ActiveCell.Formula2R1C1 = _
        "=IF(SUM(--(ISNUMBER(SEARCH(RC[-11],Facture!R2C[-8]:R30C[-8]))))>=1,RC[-11],"""")"
    Range("O4").ClearContents
    '----------------------------------------------------------------------------------------
   
    [M4].Copy
    [m5:m13].Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 
    [J4] = "=IF(RC[3]<>"""",""RdV Fait Facturé"",""RdV Fait"")"
    [J4].Copy
    [J5:J13].Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("J4:J13").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 
    'Columns("m:q").Select
    Application.CutCopyMode = False
    'Selection.ClearContents
    Range("A1").Select
End Sub
lionel 🙂
 
Bonjour Lionel, Jean marie, le fil,

je crois que tu pourras être intéressé par ce post de Yeahou. (salut)

c'est en rapport avec les caractères "@". 🙂



comme c'est pas mon rayon, je ne pourrai pas aider là-dessus ; pour plus d'infos, demander à Yeahou lui-même, car comme dit le dicton : « il vaut mieux s'adresser au Bon D. qu'à ses Saints ». 😇​

pour le service des réclamations, c'est auprès de Microsoft. (non, c'est pas un autre membre du site XLD !)

soan
 
bonjour,

Pour ceux que la définition de l'intersection implicite intéresse, la page de MS se veut explicite mais vaut mieux la lire en vo si le courage vous en dit :

cordialement
 
cet @ devant "facture" me fait penser aux entêtes de tableau structuré lorsque l'on travaille avec le nom de la colonne !
Ou quand dans une formule dans un tableau structuré on fait référence à une cellule sur la même ligne dudit tableau structuré.

Su Excel met un @, pourquoi s'emm...der à vouloir absolument l'enlever ?
Avec l'arobase le résultat de la formule est faux ???
 
Bonsoir,

Peut-être en changeant la formule :
VB:
Sub Mise_à_jour()

    [o2] = "=COUNTIF(R[3]C:R[9996]C,""><"")"
    With Range("M4:M13")
        .FormulaR1C1 = "=IF(ISNUMBER(MATCH(""*"" &RC[-11] &""*"",Facture!R2C5:R10C5,0)),RC[-11],"""")"
        .Value = .Value
    End With
    With Range("J4:J13")
        .FormulaR1C1 = "=IF(RC[3]<>"""",""RdV Fait Facturé"",""RdV Fait"")"
        .Value = .Value
    End With

    Columns("m:q").ClearContents
    Range("A1").Select
End Sub

Equiv (MATCH ) ne renvoie pas de tableau -> pas de @.
Je pense que je ne me suis pas trompé sur l'interprétation de votre formule.
Il s'agit de trouvé la valeur de la colonne B dans les items de Factures colonne E ?

dites-moi si les résultats sont justes et l'utilité de la ligne :

Columns("m:q").ClearContents

qui efface tout !!!!

cordialement
 

Pièces jointes

Dernière édition:
@Marcel

Si Excel met un @, pourquoi s'emm...der à vouloir absolument l'enlever ?
Avec l'arobase le résultat de la formule est faux ???

je crois que c'est seulement pour simplifier l'aspect visuel de la formule. 😉 mais aussi, si tu enlèves tous les caractères @ d'une formule qui en a beaucoup, alors la formule devient à la fois plus courte et plus lisible.​

soan
 
Bonjour à tous

Perso je n'ai pas @ quand j'exécute ta macro
1654101755438.png


1654101835484.png


Mais tu peux mettre la formule en français après c'est toi qui voit !!!

VB:
   [M4] = "=IF(SUM(--(ISNUMBER(SEARCH(RC[-11],Facture!R2C[-8]:R30C[-8]))))>=1,RC[-11],"""")"
    'remplacer par
  [M4].FormulaLocal = "=SI(SOMME(--(ESTNUM(CHERCHE(B4;Facture!E$2:E$30))))>=1;B4;"""")"

J'ai excel 2010 64 bits

@Phil69970
 
Bonjour @Phil699

Normal, si vous avez suivi le fil, vous avez vu que l'arobase a été ajouté dans les nouvelles versions pour indiquer les intersections implicites
Dans Excel 2010 aucun indicateur d'intersection implicite n'était défini, même si elles existaient.

cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
478
Réponses
2
Affichages
235
Réponses
11
Affichages
519
Retour