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

VBA Access Discussion :

[VBA]Affichage d'une partie d'une chaine ?


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 59
    Par défaut [VBA]Affichage d'une partie d'une chaine ?
    Bonjour,

    J'ai une chaine dont j'amerais n'afficher qu'une partie dans un formulaire tabulaire ma chaine est par exemple BOB-10555E-01-301-1 et j'aimerais n'afficher que la partie de la fin 301-01 par exemple. Petit bémol défois on peut avoir BOB-10555E-01-1101-1 et la j'aimerais afficher 1101-01. Es ce possible d'obtenir ce resultat ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Est-ce que la partie : BOB-10555E-01- est toujours identique ?

    Si c'est la cas utilise la fonction mid voit pour extraire ta chaine, et pour savoir ou s'arrêter utilise instr pour détecter le dernier - aprés BOB-10555E-01-.

    Je ne peux te mettre de code je n'ai pas Access sous la main.

    Starec

  3. #3
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Salut,

    Comme le dit Starec, regarde Mid.
    Consulte la FAQ :
    http://access.developpez.com/faq/?pa...ATA#ExtrChaine
    Inspire toi de ce code pour récupérer la position de l'avant dernier - :
    http://access.developpez.com/faq/?pa...sRep#ParentDir

    Il ne te restera plus qu'à jouer avec les fonctions Len, Left ou Right

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Voici un petit bout de code que j'ai fait sous Excel, cela devrait fonctionner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Public Function test(strChaine as string)as string
        Dim Tableau As Variant
        Dim strNewChaine As String
        Tableau = Split(strChaine, "-")
        strNewChaine =Tableau(3) & "-" & Format(Tableau(4), "00")
        test = strNewChaine
     
    End Function
    En passant en paramètre de ton tableau ta chaine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Msgbox test("BOB-10555E-01-301-1")
    Starec
    Dernière modification par Invité ; 28/03/2007 à 10h27. Motif: End Sub remplacé par End Function

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 59
    Par défaut
    Bonjour,

    Vraiment super, c'est exactement ce que je recherchais.
    Merci beaucoup au forum qui une fois de plus m'a apporté une précieuse aide.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    Ce n'est pas seulement l'aide qui est important, c'est surtout de comprendre la fonction que je t'ai fourni et comment elle fonctionne (notamment tout repose sur la fonction Split)

    Starec

  7. #7
    Membre émérite Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    849
    Détails du profil
    Informations personnelles :
    Âge : 69

    Informations forums :
    Inscription : Février 2005
    Messages : 849
    Par défaut
    Salut,

    La fonction Mid te permet de récupérer une partie de chaîne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mid("BOB-10555E-01-301-1",15)
    te donnes 301-1.
    Pour avoir 301-01.....

  8. #8
    Invité
    Invité(e)
    Par défaut
    Re

    Je viens de penser à un truc,si tu as toujours des - utilise la fonction Split voir

    Cela va décomposer ta chaine, pour ton 1101-1 en 1101-01 tu auras les deux éléments séparés que tu pourras concaténer, et utilise format pour 1 en 01.

    Starec

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/04/2013, 15h57
  2. [XL-2007] problème de codage en vba ("copie d'une partie d'une cellule dans une cellule vide")
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/10/2010, 17h01
  3. [RegEx] Retourner une array sur une partie de la chaine
    Par absurdsystem dans le forum Langage
    Réponses: 2
    Dernier message: 25/04/2010, 16h03
  4. masquer une partie d'une vidéo par une banniere
    Par lezabour dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 16/10/2006, 16h47
  5. copier une partie d'une image vers une autre
    Par gregcat dans le forum Langage
    Réponses: 1
    Dernier message: 14/04/2006, 13h39

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