Condition si avec caractere sous excel [Résolu]

Signaler
Messages postés
151
Date d'inscription
mardi 20 avril 2010
Statut
Membre
Dernière intervention
15 juin 2014
-
Messages postés
151
Date d'inscription
mardi 20 avril 2010
Statut
Membre
Dernière intervention
15 juin 2014
-
bonjour
je voudrais utiliser les premiers caracteres a gauche de ma colonne A d'excel dans un
condition "SI"


alors j'ai essayé :
=GAUCHE(A2, RECHERCHE(" ",A2,1))


mais ça ne me retourne pas les caractere voulus
A2= Tata dianbobo

il devrait me retourner tata

merci de votre aide

8 réponses

Messages postés
29563
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 septembre 2020
337
Bonjour,

Petite correction..
Il manque également un argument à ton SI...

En gros tu veux : Si j'ai "TATA" dans la cellule à 2.. alors j'écris "BB" ..

- La fonction SI c'est : Si(condtion;Valeur si vrai;Valeur si faux)
- Une condition c'est par exemple : pour des tests sur des valeurs numérique: A2 10 ou A2<10 /pour tester du texte A2 "toto" ...

Bref, dans ton cas, ça donnerai :
=SI(GAUCHE(A2;CHERCHE(" ";A2))="TATA";"BB";"") 


nb: La fonction CHECHE n'est pas sensible à la casse (majuscule/minuscule).

Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
29563
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 septembre 2020
337
Bonjour,

En vba tu as directement des fonctions pour manipuler les chaines de caractères.
Pour ton cas tu peux utiliser :

Sub toto()

'recup de la valeur de la cellule
    Ma_valeur = Sheets("Feuil4").Cells(2, 1).Value
'recherche de la position de l'espace dans le texte
    Recherche_espace = InStr(1, Ma_valeur, " ")
'recupere les premiers caractères à gauche de l'espace
    Valeur_a_gauche = Left(Ma_valeur, Recherche_espace - 1)
'affichage dans la feuille
    Sheets("Feuil4").Range("D3").Value = Valeur_a_gauche
End Sub





Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
29563
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 septembre 2020
337
Bonjour,


remplace ta fonction RECHERCHE par un CHERHCE

=GAUCHE(A2;CHERCHE(" ";A2))



pour ma part, ça fonctionne correctement ainsi.


Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
151
Date d'inscription
mardi 20 avril 2010
Statut
Membre
Dernière intervention
15 juin 2014

merci bien ça fonctionne bien


mais que puis-je faire pour l'utiliser dans une condition "SI"

je mexplique je veux avoir sur la meme ligne mais dans une autre colonne le mot "BB" sachant que
=GAUCHE(A2;CHERCHE(" ";A2))

est verifié
?
j'ai essayé ceci:
SI(GAUCHE(A2;CHERCHE(" ";A2));BB;"")
ça ne marche pas
merci bien
Messages postés
29563
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 septembre 2020
337
Bonjour,

il faut que ton BB soit inscrit entre guillemets vu que c'est du texte :
=SI(GAUCHE(A2;CHERCHE(" ";A2));"BB";"") 


deplus, tu avais un signe = en trop (après ton SI)



Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
151
Date d'inscription
mardi 20 avril 2010
Statut
Membre
Dernière intervention
15 juin 2014

merci bien
ça fonctionne
Messages postés
151
Date d'inscription
mardi 20 avril 2010
Statut
Membre
Dernière intervention
15 juin 2014

bonjour
je reviens dans ce sujet car il s'agit de faire un code vba pour retourner le mot tout a gauche

j'ai donc fait un enregistrement de macro
puis j'ai essayé de la modifier mais
ça ne fonctionne pas
voici les deux macros:

Sub Macro1()
'
' Macro1 Macro
'
' Touche de raccourci du clavier: Ctrl+u
'
    ActiveCell.FormulaR1C1 = "=LEFT(RC[-2],SEARCH("" "",RC[-2]))"
    Range("D3").Select
    End Sub


sub toto()
worksheets("Feuil4").Range("D3") = Left(worksheets("Feuil4").Cells(2, 1), Search(" ", _
     worksheets("Feuil4").Cells(2, 1)))
end sub




j'ai une erreur sub ou fonction non definie ici
Search

merci de votre aide
Messages postés
151
Date d'inscription
mardi 20 avril 2010
Statut
Membre
Dernière intervention
15 juin 2014

Re_bonjour
Jordane en utilisant la reponse ci-dessus
j'ai ecris un code que voici:

Sub note_rating()
    Dim Ma_valeur As String, meme_valeur As String
    Dim Recherche_espace As Long, cherche_espace As Long, lastrow As Long
    Dim Valeur_a_gauche As String, le_mot As String
    Dim k As Long
    k = worksheets("Synthèse").Cells(Rows.Count, 1).End(xlUp).Row
    lastrow = Workbooks("Nouvelle version - Risques contreparties FEV 2010").worksheets("Données").Cells(Rows.Count, 1).End(xlUp).Row
For i = 0 To k - 7 Step 3
    If worksheets("Parametrage").Cells(i + 7, "B").Value <> "" Then
    'recup de la valeur de la cellule
    Ma_valeur = Sheets("parametrage").Cells(i + 7, "B").Value
    'recherche de la position de l'espace dans le texte
    Recherche_espace = InStr(1, Ma_valeur, " ")
    'recupere les premiers caractères à gauche de l'espace
    Valeur_a_gauche = Left(Ma_valeur, Recherche_espace - 1)
    'affichage dans la feuille
    'Sheets("parametrage").Range("D3").Value = Valeur_a_gauche
        For j = 0 To lastrow
        meme_valeur = _
        Workbooks("Nouvelle version - Risques contreparties FEV 2010").worksheets("Données").Cells(j + 1, "A").Value
        cherche_espace = InStr(1, meme_valeur, " ")
        le_mot = Left(meme_valeur, cherche_espace - 1)
            If Ma_valeur = meme_valeur Then
            worksheets("Parametrage").Cells(i + 7, "C").Value = _
            Workbooks("Nouvelle version - Risques contreparties FEV 2010").worksheets("Données").Cells(j + 1, "N").Value
            End If
        Next
    End If
Next
End Sub
 



je voudrais ecrire en colonne C de ma feuille parametrage
les mots de la colonne N du classeur "Nouvelle version - Risques contreparties FEV 2010" de la feuille "Données"

ou ai-je peché?
moi en faisant F8
j'ai une erreur ici:
k = worksheets("Synthèse").Cells(Rows.Count, 1).End(xlUp).Row


j'avoue que je ne comprend pas pourquoi


merci encore