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 :

Supprimer du texte dans un champs et garder les chiffres


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Employé
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 69
    Points
    69
    Par défaut Supprimer du texte dans un champs et garder les chiffres
    Bonjour les Experts,

    je n'arrive pas à supprimer dans un champs texte du texte et garder les nombres ( si je modifie le champ en numérique , tout est supprimé , champs vide)
    Voici un exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WILLIART CHRISEMPHE   -5.186473.00/WILLIART CHRISEMPHE
    Je souhaiterai garder que que les chiffres commençant par le signe - et sachant que les nombre de lettres sont toujours différente autres ecemples
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    KAVYANI .     EM   -5.184079.00/KAVYANI .     EM
    Si vous avez un début de solution , je suis preneur .

    Merci par avance
    cordialement
    eric

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Tu trouve la position du signe - dans le champs avec la fonction instr, puis la position du signe / avec la même fonction, puis tu récupères les nombre compris entre ses deux positions avec la fonction mid.

  3. #3
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    Oui, mais il faudra encore supprimer ce « .00 » final !
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Veux-tu essayer cette fonction ?

    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
    18
    19
    20
    21
    22
    Option Compare Database
    Option Explicit
     
     
    Public Function ExtNbre(Original As String) As Double
      Dim iDebut As Integer
      Dim iFin As Integer
      'Recherche de la position du 1er chiffre
      For iDebut = 1 To Len(Original)
        If Mid(Original, iDebut, 1) Like "#" Then Exit For
      Next iDebut
      'Chercher la position du "/" qui suit la séquence chiffrée
      For iFin = iDebut To Len(Original)
        If Mid(Original, iFin, 1) = "/" Then Exit For
      Next iFin
      'Vérifier que le caractère à gauche de idebut est "-"
      If Mid(Original, iDebut - 1, 1) = "-" Then iDebut = iDebut - 1
      'Éliminer le .00 final
      iFin = iFin - 3
      'Renvoyer
      ExtNbre = Mid(Original, iDebut, iFin - iDebut)
    End Function
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Employé
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 69
    Points
    69
    Par défaut
    Bonjour les experts,

    Cela fait plusieurs heures que je suis dessus pour exécuter le code via la requête Access
    Nom de la table : tbl_client ; nom du champ commande ; nom du module "module_supp"
    et un message d'erreur est toujours là " Il manque dans l'expression une parenthèse, un crochet etc... "

    J'ai pris la fonction de Claudeleloup , c'est à dire ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Function ExtNbre
    dans une requête Access , j'ai indiqué ceci dans le champ ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chiffre : ExtNbre ([commande)]
    ce qui devait appeler la fonction de Claudeloup ? rien juste un message

    Avez vous une idée d'où est mon erreur ?

    Merci encore de votre.
    j'attends

    Cordialement
    Eric

  6. #6
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    CIRE3 bonjour,

    pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chiffre : ExtNbre ([commande)]
    mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chiffre : ExtNbre([commande])
    jimbolion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  7. #7
    Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Employé
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 69
    Points
    69
    Par défaut
    Merci pour cette rectification pertinente .
    Ok j'ai lancé le module est un message d'erreur apparaît "5" ou procédure incorrecte ! et me renvoie à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ExtNbre = Mid(Original, iDebut, iFin - iDebut)
    le contenu du champ est "erreur" .

    Je ne vois pas l'erreur et le code de Claudeloup me parait bien.

    Merci de votre aide

    cordialement
    Eric

  8. #8
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    CIRE3,

    peux tu quel numéro de commande te renvoie cette erreur ?
    aurais tu un champ null ou vide ?

    Jm
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  9. #9
    Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Employé
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 69
    Points
    69
    Par défaut
    bonjpur

    Non pas de champs null ( champ texte)
    exemple des champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Numéro	commandes
    23	DONCARLI KEVINEM   -4.318550.00/DONCARLI KEVINEM
    24	ZAMMATARO BAPTEMTE   -4.334643.00/ZAMMATARO BAPTEMTE
    25	BARRERE BRUNO EM BRI   -4.338599.00/BARRERE BRUNO EM BRI
    26	DESOGERE MARIEEMHANT00009   -4.340773.00/DESOGERE MARIEEMHANT
    27	HAAS BENOIT ETEMANES   -5.002756.00/HAAS BENOIT ETEMANES
    28	NICOLAI* JEAN EMERRE   -5.003638.00/NICOLAI* JEAN EMERRE
    29	THOMAS-HENRIOTEMENAG   -5.022357.00/THOMAS-HENRIOTEMENAG
    30	CAILLY ROBIN  EM   -5.023487.00/CAILLY ROBIN  EM
    31	BROSSIER CHRISEMLLE   -5.027881.00/BROSSIER CHRISEMLLE
    je souhaiterai extraire uniquement les chiffres avec le -


    Merci pour votre aide
    Cordialement
    eric

  10. #10
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    CIRE3 bonjour,

    j'ai quelque peu modifié le code en y ajoutant un gestionnaire d'erreur :

    peux tu me faire un retour après essai ?

    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
    18
    19
    20
    21
    22
    23
    24
    Public Function ExtNbre(Original As String) As Double
      On Error GoTo err_ExtNbre
      '
      If Nz(Original, "") = "" Then ExtNbre = 0: Exit Function
      Dim iDebut As Integer
      Dim iFin As Integer
      'Recherche de la position du 1er chiffre
      For iDebut = 1 To Len(Original)
        If Mid(Original, iDebut, 1) Like "#" Then Exit For
      Next iDebut
      'Chercher la position du "/" qui suit la séquence chiffrée
      For iFin = iDebut To Len(Original)
        If Mid(Original, iFin, 1) = "/" Then Exit For
      Next iFin
      'Vérifier que le caractère à gauche de idebut est "-"
      If Mid(Original, iDebut - 1, 1) = "-" Then iDebut = iDebut - 1
      'Éliminer le .00 final
      iFin = iFin - 3
      'Renvoyer
      ExtNbre = Mid(Original, iDebut, iFin - iDebut)
      Exit Function
    err_ExtNbre:
      ExtNbre = 0
    End Function
    jimbolion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  11. #11
    Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Employé
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 69
    Points
    69
    Par défaut Extraction de chiffres
    Jimbolion Bonjour

    je suis de retour aujourd'hui et je me suis empressé d'essayer ton code . aucune erreur sauf que le champ renvoyé à une valeur de 0
    Sincèrement j'ai passé du beaucoup temps dessus ? J'ai tout essayé (je pense) . J'ai renommé mon champ "Original" et j'ai mis dans ma requête dans une nouvelle case vide au niveau du champ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Expr1: ExtNbre([Original])
    et là bien sur la valeur renvoyé est 0 compte tenu que la valeur champs est NULL.

    Alors, j'ai mis dans la requête champ : Original , table : tbl_client, tri: je laisse vide, affichage : je laisse la coche, puis critére j'ai mis ceci et là
    un seul champ renvoyé valeur : Null.

    Je ne sais puis quoi faire .. Aurais tu une idée ou j'ai pu me planter ?

    En te remerciant encore
    Cordialement
    Eric

  12. #12
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    CIRE3 bonjour

    Je n'ai fait que reporter le code fourni par Claude Leloup qui semble poser quelques problèmes sur les chaînes numériques, j'ai donc repris le code à ma manière en isolant le / et le premier - précédent ce signe.

    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
    18
    19
    20
    21
    22
    23
    24
    Public Function ExtNbre(Original As String) As Double
      On Error GoTo err_ExtNbre
      '
      Dim Z1 As Integer, Z2 As Integer, invertboucle As Integer
      Z1 = InStr(Original, "-")
      Z2 = InStr(Original, "/")
      If Z2 = 0 Then ExtNbre = 0: Exit Function         ' on trouve pas le /
      '
      ' on recherche le premier - en remontant la chaîne
      For invertboucle = Z2 To 1 Step -2
        If Mid(Original, invertboucle, 1) = "-" Then Z1 = invertboucle: Exit For
      Next
      '
      'MsgBox Z1 & "-" & Z2
      If Z2 > Z1 Then
            ExtNbre = Val(Mid(Original, Z1, Z2 - Z1))
      Else
            ExtNbre = 0
      End If
     
      Exit Function
    err_ExtNbre:
      ExtNbre = 0
    End Function
    si le résultat attendu correspond à çà :

    Nom : Capture.JPG
Affichages : 747
Taille : 58,6 Ko

    Cordialement

    Jimbolion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

Discussions similaires

  1. [AC-2003] supprimer une partie de texte dans un champs
    Par ROUSSIGNE dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 09/11/2012, 07h55
  2. Réponses: 2
    Dernier message: 27/08/2008, 09h13
  3. afficher du texte dans le champ de saisie de type file
    Par MANU_2 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/09/2005, 14h59
  4. Garder la mise en forme de texte dans un champ
    Par dany13 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/07/2005, 14h49
  5. comment remplacer une partie de texte dans un champs
    Par patlapi dans le forum Paradox
    Réponses: 4
    Dernier message: 20/11/2003, 14h38

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