Supprimer un apostrophe en début de formule VBA

Fermé
geo0258 Messages postés 20 Date d'inscription mercredi 25 janvier 2012 Statut Membre Dernière intervention 9 janvier 2019 - Modifié le 23 mars 2018 à 10:39
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 23 mars 2018 à 19:14
Bonjour, voici mon problème

En cellule Y4 j'ai une formule =RECHERCHEH(X3;'Picklists Project'!1:4;4;FAUX)
Celle-ci va me ramener une chaine de caractère représentant une autre formule : ici elle donne :
'=si('1 - Project table'!B4="";"";SI(ESTERREUR(DATEVAL(TEXTE($X4;"jj/mm/aa")));"wrong";""))
Selon ce que je choisi comme valeur en X3 j'aurai différentes formules qui remonteront en Y4.

Je sélectionne ensuite ma cellule Y4 je copie et colle en valeur dans une autre cellule
Je me retrouve donc avec la formule ci-dessus qui a un apostrophe au début. Si je le supprime manuellement et que je fait entrée, ma formule n'est plus une chaine de caractère, elle devient active et fonctionne. Je cherche à reporduire cette action en VBA et je n'y arrive pas. Le but est que peut importe la formule qui s'affiche en Y4 je puisse la copier ailleurs, faire en sorte qu'elle ne soit pas considérée comme une chaine de caractère et ensuite l'étendre.

Je précise que j'ai déjà réussi à supprimer l'apostrophe avec la fonction MID, mais la formule ne s'active pas pour autant.

Voilà en eséprant avoir été assez clair dans mon explication.

Merci d'avance pour vos réponses
A voir également:

2 réponses

Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
Modifié le 23 mars 2018 à 11:26
Bonjour,

tu as une erreur dans la rédaction de ta formule sous réserve que ta feuille se nomme bien Project table
et non pas 1 - Project table,
remplace '1 - Project table'!B4 par 1 -'Project table'!B4
ce qui te donnera
=SI(1 -'Project table'!B4="";"";SI(ESTERREUR(DATEVAL(TEXTE($X4;"jj/mm/aa")));"wrong";""))

0
geo0258 Messages postés 20 Date d'inscription mercredi 25 janvier 2012 Statut Membre Dernière intervention 9 janvier 2019
Modifié le 23 mars 2018 à 12:00
Salut mike merci pour ta réponse. Par contre ma table s'appelle bien 1 - Project table

Du coup ta solution ne fonctionne pas

Pour info ma rechercheV en cellule Y4 va pointer dans la table Picklists Projects sur ça : ="=si('1 - Project table'!B4="""";"""";SI(ESTERREUR(DATEVAL(TEXTE("&ADRESSE(4;EQUIV("Start_date";'1 - Project table'!3:3;0);3;1)&";""jj/mm/aa"")));"&""""&"wrong"&""""&";""""))"

du coup le résultat de ma rechercheV affiche ça : =si('1 - Project table'!B4="";"";SI(ESTERREUR(DATEVAL(TEXTE($X4;"jj/mm/aa")));"wrong";""))

Et ensuite (petite correction par rapport à ce que j'ai écrit avant), lorsque que je copie colle le résultat de ma rechercheV par valeur il me rajoute un apostrophe devant ma formule, comme ça: '=si('1 - Project table'!B4="";"";SI(ESTERREUR(DATEVAL(TEXTE($X4;"jj/mm/aa")));"wrong";""))

Et donc ensuite je le supprime manuellement, je tappe entrée et la formule marche. Et d'ailleurs je vais également apporter une correction sur ce que j'ai dit avant. L'apostrophe n'aparait pas quand on regarde simplement la cellule, il apparait quand on clic sur la cellule. Et donc quand j'utilise la fonction mid pour le supprimer, c'est mon = qui se fait supprimer en 1er. Mais l'apostrophe est toujours là quand je clic sur la cellule. J'ai donc plus l'impression que c'est une histoire de format, comme si ma formule était en format texte ou quelque chose du genre.
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
Modifié le 23 mars 2018 à 12:47
Bonjour,

' force le format texte.
C'est faisable en vba mais si c'est juste pour que la formule soit lisible met simplement un espace devant.
Ensuite un remplacer " =" par "=" sur la plage t'activera les formules.
eric

Edit : à faire dans ta plage du rechercheh() où je la suppose présente.


0
geo0258 Messages postés 20 Date d'inscription mercredi 25 janvier 2012 Statut Membre Dernière intervention 9 janvier 2019
Modifié le 23 mars 2018 à 15:12
Bonjour eriiic,

Merci pour ta réponse malheureusement ta solution ne marche pas.
Alors j'ai réussi à faire en sorte que l'apostrophe n'apparaisse plus. J'ai tout simplement essayé avec d'autres colonnes que la colonne Y et je n'avais pas d'apostrophe. Donc je ne sais pas pourquoi la colonne Y forçait le résultat à être un champ texte.

Il n'empèche que même sans ça ma formule ne s'active toujours pas. Si j'essaie ta solution eriic, ça fonctionne mais sans utiliser VBA. Et le tout étant que mes utilisateurs n'aient pas à faire de manip à par appuyer sur un bouton. J'ai enregistré la macro qui correspond au fait de remplacer " =" par "=" mais ça ne fonctionne toujours pas.

J'ai essayé avec FormulaR1C1 pour faire s'activer la formule mais je n'y arrive pas. Peut être que j'utilise mal la fonction, c'est la 1ere fois que je l'utilise. Est-ce que quelqu'un sait s'il y a une piste à creuser la dessus et la syntaxe que je devrais utiliser ? Ou une autre piste peut être ?
0
geo0258 Messages postés 20 Date d'inscription mercredi 25 janvier 2012 Statut Membre Dernière intervention 9 janvier 2019
23 mars 2018 à 15:49
Ok j'ai trouver la solution en cherchant sur le net
Il faut simuler le fait de rentrer dans la cellule et ensuite de faire entrée

Ca donne donc ça:
Range("Y4").Select
SendKeys "{F2}"
SendKeys "{ENTER}"

Merci à vous
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
23 mars 2018 à 19:14
oulalaaa... Sendkeys a la fâcheuse manie de désactiver le clavier numérique.
With Range("G2:G10")
    .Formula = .Formula
End With

eric
0