Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Fonctions Val et Replace

Pino12

XLDnaute Junior
Bonjour,

Afin de mieux comprendre les mécanismes d'une macro je cherche les équivalents en formule excel des formules Vba "Val" et "Replace", si de tels équivalents existent. Pouvez-vous m'aider ?

Merci d'avance,
 

john

XLDnaute Impliqué
Re : Fonctions Val et Replace

Bonjour,

Si je dis pas de bêtise

en B1 =CNUM(A1) ==> pour val(A1) (en A1 j'y ai inscris '25) et
en B2 =SUBSTITUE(A2;"is";"c'est") (dans A2 j'y ai inscris "coucou is moi")

John
 

job75

XLDnaute Barbatruc
Re : Fonctions Val et Replace

Bonjour Pino12, john,

D'accord avec john pour l'équivalent de Replace.

Mais pas du tout pour l'équivalent de Val, c'est beaucoup plus compliqué.

Pour cela on peut utiliser cette formule matricielle, validée par Ctrl+Maj+Entrée :

Code:
=--GAUCHE(0&A1;EQUIV(1;(STXT(0&A1&" ";LIGNE(INDIRECT("1:"&NBCAR(0&A1&" ")));1)<>STXT(1/10;2;1))*((STXT(0&A1&" ";LIGNE(INDIRECT("1:"&NBCAR(0&A1&" ")));1)<"0")+(STXT(0&A1&" ";LIGNE(INDIRECT("1:"&NBCAR(0&A1&" ")));1)>"9"));0)-1)
Elle fonctionne quel que soit le séparateur décimal de l'ordi.

A+
 

job75

XLDnaute Barbatruc
Re : Fonctions Val et Replace

Re,

Fichier joint avec cette formule qui fonctionne aussi sur les nombres négatifs :

Code:
=SI(GAUCHE(A1)="-";-GAUCHE(DROITE(A1;NBCAR(A1)-1)&" ";EQUIV(1;(STXT(DROITE(A1;NBCAR(A1)-1)&" ";LIGNE(INDIRECT("1:"&NBCAR(A1)));1)<>STXT(1/10;2;1))*((STXT(DROITE(A1;NBCAR(A1)-1)&" ";LIGNE(INDIRECT("1:"&NBCAR(A1)));1)<"0")+(STXT(DROITE(A1;NBCAR(A1)-1)&" ";LIGNE(INDIRECT("1:"&NBCAR(A1)));1)>"9"));0)-1);--GAUCHE(0&A1;EQUIV(1;(STXT(0&A1&" ";LIGNE(INDIRECT("1:"&NBCAR(A1)+2));1)<>STXT(1/10;2;1))*((STXT(0&A1&" ";LIGNE(INDIRECT("1:"&NBCAR(A1)+2));1)<"0")+(STXT(0&A1&" ";LIGNE(INDIRECT("1:"&NBCAR(A1)+2));1)>"9"));0)-1))
A+
 

Pièces jointes

  • Equivalent Val(1).xlsx
    9.9 KB · Affichages: 24
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Fonctions Val et Replace

Bonsoir à tous ,

Un essai avec une autre formule matricielle:
Code:
=SIERREUR(0+GAUCHE(A1;-PETITE.VALEUR(SI(ESTNUM((0+STXT(A1;1;LIGNE(INDIRECT("1:" & NBCAR(A1))))));-LIGNE(INDIRECT("1:" & NBCAR(A1))));1));"")

 

Pièces jointes

  • Pino12-equivalent de VAL en formule v1.xlsx
    9.9 KB · Affichages: 20

job75

XLDnaute Barbatruc
Re : Fonctions Val et Replace

Bonsoir mapomme,

Ah oui, bravo, c'est beaucoup plus simple.

Alors perso j'utiliserai plutôt :

Code:
=SIERREUR(--GAUCHE(A13;MAX(ESTNUM((-STXT(A13;1;LIGNE(INDIRECT("1:" & NBCAR(A13))))))*LIGNE(INDIRECT("1:" & NBCAR(A13)))));0)
encore plus simple, et qui colle mieux à la fonction Val.

A+
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
202
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…