IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Formule STXT EN VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut Formule STXT EN VBA
    Bonjour à tous,

    Je souhaiterais mettre un commentaire en colonne M "ANNULATION TECHNIQUE" si et seulement si en colonne F, il y a la présence "S020A" sachant que la colonne F peut contenir "S020R HANDI EXPERT (JAM.GIRIN) 1 031" ou "S020A HANDI EXPERT (JM.G) 1 031" et différents autres types de libellé. Moi il faut juste la présence du début de "S020A" et je mets mon commentaire en colonne M.

    Moi je l'ai traduis par une fonction excel que je voudrais mettre en VBA mais je suis pas sur c'est c'est utile de faire un STXT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI(STXT(F3;5;1)="A";"ANNULATION TECHNIQUE";"")
    Voici mon code VBA que j'ai essayer de faire mais qui fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub Test()
     
    With Sheets("SUIVTRANS EN COURS")
    derligne = .Range("A" & Rows.Count).End(xlUp).Row
     
    For j = 2 To derligne
     
    'ANNULATION TECHNIQUE (5)
     
            If .Cells(j, "F").Value = Mid("S020A", 5, 1) Then
            .Cells(j, "M") = "ANNULATION TECHNIQUE"
            End If
     
    Next j
    End With
     
    End Sub
    En fait je dis que si le 5eme caractère correspond à un "A" alors je mets "ANNULATION TECHNIQUE" sinon je mets rien.

    Merci de vos avis et de vos solutions.

    Cordialement,

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Sheets("SUIVTRANS EN COURS")
        For j = 2 To .Range("A" & Rows.Count).End(xlUp).Row
            If Mid(.Cells(j, "F").Text, 5, 1) = "A" Then .Cells(j, "M").Value = "ANNULATION TECHNIQUE" Else .Cells(j, "M").Value = ""
        Next j
    End With
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Merci ça fonctionne sauf qu'il ma sorti "KRL AR SUISSE VIRT DU 18 10 2018"

    En revanche, il me donne bien les bon mais il faut pas qu'il me donne ceux du dessus. Je pense il faudrait rajouter : faut que les 2 PREMIERS CARACTÈRES COMMENCENT PAR "S0" et que le 5eme caractère soit "A"

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTERR(TROUVE(F3;"S020A"));"";"ANNULATION TECHNIQUE")

  5. #5
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTERR(TROUVE(F3;"S020A"));"";"ANNULATION TECHNIQUE")
    Il me le faut en VBA svp

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    ben pourquoi tu teste pas directement "S020A" au lieu du mid("...",5,1) !!!??????
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par OBADJ Voir le message
    Il me le faut en VBA svp
    Applique cette formule avec un FormulaLocal appliqué à la cellule concernée.
    https://msdn.microsoft.com/fr-fr/lib...1(v=office.15)
    Ou utilise la méthode Evaluate de Application.
    https://docs.microsoft.com/fr-FR/off...ation.evaluate
    Ou l'une des multiples autres méthodes permettant d'utiliser les formules Excel en VBA.

    Même si je n'en vois vraiment pas l'intérêt...

  8. #8
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    re
    ben pourquoi tu teste pas directement "S020A" au lieu du mid("...",5,1) !!!??????
    Ca ne fonctionne pas car ce n'est pas une valeur exacte, il faut qu'il le retrouve parmis tous les autre carretères meme si il se trouve au début ...

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    re
    suite a ma proposition tu dis
    Merci ca fonctionne sauf qu'il ma sorti "KRL AR SUISSE VIRT DU 18 10 2018"

    En revanche, il me donne bien les bon mais il faut pas qu'il me donne ceux du dessus. Je pense il faudrait rajouter : faut que les 2 PREMIERS CARRECTERES COMMENCE PAR "S0" et que le 5eme caractère soit "A"
    apres tu dis
    Ca ne fonctionne pas car ce n'est pas une valeur exacte, il faut qu'il le retrouve parmis tous les autre carretères meme si il se trouve au début
    alors moi je te dis si"s020A" ne peut pas etre pris comme reference et que ma proposition te donne certains qui ne doive pas etre pris en compte comment veux tu que vba devine tes intentions ?????
    d'ailleurs la 2d sitation en dis long meme si il se trouve au début

    autrement dit c'est pas forcement le debut ca peut etre donc au milieu du texte et donc le mid(5,1) ne ressort pas
    conclusion soit tu t'explique tres mal soit tu n'as pas bien compris ton environnement vba
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    effectivement ça peut être confus sauf que malheureusement, si je prend en compte le 5 eme caractère ="A" il me sort 1 autre critère que je ne veux pas

    Donc on peut resté avec ton code qui et bien mais peut-on juste rajouter que les 2 premiers caractères soit = "S0" et le 5eme caractère toujours = "A".

  11. #11
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    C'est bon j'ai trouver et compris le fonctionnement !

    Merci a tous et merci a toi Patrick

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formule STXT en VBA
    Par Lune1 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/05/2015, 17h05
  2. formule excel vers VBA
    Par kedas dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/10/2007, 18h18
  3. Parseur formule Excel <-> Code VBA
    Par gretch dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/08/2007, 18h08
  4. Correspondance formules excel et VBA
    Par abu143 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/10/2006, 17h54
  5. [EXCEL][VBA] Utilisation des formules Excel en VBA
    Par Amanck dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/12/2005, 15h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo