Formule de calcul

Bonjour,

Pouvez-vous me dire ce que signifie cette formule s'il vous plait ?

=SI(GAUCHE(K19;1)="X";DROITE(K19;(NBCAR(K19)-2));SI(GAUCHE(K20;1)="X";DROITE(K20;(NBCAR(K20)-2));""))

Merci !

Bonjour jul997, le forum,

Sauf erreur de ma part,

Ce ne serait pas plutôt =SI((GAUCHE(K19;1)="X");DROITE(K19;(NBCAR(K19)-2));"") ?

=SI(test logique; valeur si vrai; valeur si faux)

test logique: (GAUCHE(K19;1)="X") : si le premier caractère à gauche est un X

valeur si vrai : DROITE(K19;(NBCAR(K19)-2) : on inscrit les caractères de K19 (on part de la droite-les 2 premiers de gauche)

valeur si faux : "" : on laisse vide

Exemple: K19 = X123456 : on écrit 23456

K19 = 123456 : on écrit rien

Cordialement,

OK c'est tout à fait ça, merci beaucoup !

Re,

Ravi que ma réponse te convienne,

N'oublie pas de clôturer

Cordialement,

Par contre, que signifie le A3 dans votre formule?

Re,

C'est une erreur, j'ai réédité ma réponse depuis.....c'est K19...

J'avais fait un test avec la cellule A3 sur mon fichier et bêtement recopié la formule

=SI((GAUCHE(K19;1)="X");DROITE(K19;(NBCAR(K19)-2));"")
18classeur1.xlsx (10.37 Ko)

Cordialement,

D'accord pas de soucis merci. J'ai encore une question, dsl.... Dans le texte suivant : "Commande n°10065 PAYÉE COMPLÉTÉ", j'aimerai dégage uniquement le chiffre 10065. Mais attention car ce chiffre peut bouger et devenir 10 ou encore 14620155826. Voila, merci beaucoup!

Re,

Après une grosse prise de tête et plusieurs essais, je pense être parvenu à résoudre ton énigme...

Voici une fonction personnalisée (ma première, )

Public Function Numero(cellule As String, i As Integer) As String
 nouvellevaleur = Right(cellule, Len(cellule) - 11)
 Numero = Left(nouvellevaleur, Len(nouvellevaleur) - 15)
End Function

Ne fonctionne que si ta cellule commence par Commande n° et se termine par PAYÉE COMPLÉTÉ(avec un espace devant)

13test.xlsm (15.96 Ko)

Cordialement,

Bonjour jul997, le forum,

en A1 : Commande n°10065 PAYÉE COMPLÉTÉ

en B1 : =SI(A1="";"";GAUCHE(DROITE(A1;NBCAR(A1)-11);CHERCHE("PAYÉE";A1)-13))


@xorsankukai

ma formule VBA ci-dessus est tout spécialement pour jmd !

pour ta 1ère fonction personnalisée :

* pourquoi mettre Public ? dans un module standard, ça l'est déjà par défaut.

* le 2ème argument i n'est pas utilisé ➯ inutile ; tu peux l'enlever.

Option Explicit

Function Numero(cellule$) As String
 Dim nouvellevaleur$
 nouvellevaleur = Right$(cellule, Len(cellule) - 11)
 Numero = Left$(nouvellevaleur, Len(nouvellevaleur) - 15)
End Function

pour ton baptême de 1ère fonction personnalisée, faut quand même fêter ça !

dhany

Désolé de ma réponse en retard mais merci beaucoup d'avoir cherché pour moi cela fonctionne ! Merci encore !

@jul997

Bonjour jul997, dhany,

@dhany:

=SI(A1="";"";GAUCHE(DROITE(A1;NBCAR(A1)-11);CHERCHE("PAYÉE";A1)-13))

Je me suis battu avec les formules, je les ai mises dans tous les sens sans parvenir à ton résultat,

D'où la fonction personnalisée,

* pourquoi mettre Public ? dans un module standard, ça l'est déjà par défaut

Comme je te l'ai déjà dit, j'apprends sur le tas, j'apprends tous les jours grace aux pros qui corrigent mes erreurs,

* le 2ème argument i n'est pas utilisé ➯ inutile ; tu peux l'enlever.

ça, c'est un oubli... (j'avais pourtant corrigé sur le fichier)

Merci pour ta correction et tes encouragements,

Amitiés,

Rechercher des sujets similaires à "formule calcul"