Microsoft 365 code vba qui renvoie la formule avec @ dedans

Usine à gaz

XLDnaute Barbatruc
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

  • recherche ds chaine.xlsm
    33.1 KB · Affichages: 8
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
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 :)
 

soan

XLDnaute Barbatruc
Inactif
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
 

Hasco

XLDnaute Barbatruc
Repose en paix
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
 

TooFatBoy

XLDnaute Barbatruc
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 ???
 

Hasco

XLDnaute Barbatruc
Repose en paix
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

  • recherche ds chaine.xlsm
    37.2 KB · Affichages: 2
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
@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
 

Phil69970

XLDnaute Barbatruc
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
 

Hasco

XLDnaute Barbatruc
Repose en paix
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
 

Discussions similaires

Réponses
3
Affichages
826

Statistiques des forums

Discussions
315 095
Messages
2 116 162
Membres
112 674
dernier inscrit
AKD