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 :

Remplacer plusieurs espace par un seul


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut Remplacer plusieurs espace par un seul
    Bonjour,

    Voici ce que j'essaie de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Form_Build_Order.Commentaires.Value = Replace(Form_Build_Order.Commentaires.Value, " " + " ", " ")
    Mais cela ne fonctionne pas.
    De plus si l'utilisateur fait 3 espaces, la commande n'est plus bonne.

    Si qq1 à une sol ...

  2. #2
    Membre averti Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Points : 323
    Points
    323
    Par défaut
    Et tout betement comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form_Build_Order.Commentaires.Value = Replace(Form_Build_Order.Commentaires.Value, "  ", " ")
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form_Build_Order.Commentaires.Value = Replace(Form_Build_Order.Commentaires.Value, chr(32) & chr(32), chr(32))
    S'il y a plus de 2 espaces de suite, il faut relancer la procédure

  3. #3
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 917
    Points : 4 821
    Points
    4 821
    Par défaut
    Bonjour,
    voici la fonction que j'utilise :
    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
     
    Public Function fSingleSpaceBetweenWords(ByVal Chaine As String) As String
        Dim str1 As String, str2 As String
        Dim compteur As Long
     
        str1 = Chaine
        compteur = 0
        While str2 <> str1
            If compteur > 1 Then str1 = str2
            str2 = Replace(str1, "  ", " ")
            compteur = compteur + 1
        Wend
     
        fSingleSpaceBetweenWords = str2
     
    End Function
    que tu utilses par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Form_Build_Order.Commentaires= fSingleSpaceBetweenWords (Form_Build_Order.Commentaires)

  4. #4
    Membre averti Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Points : 323
    Points
    323
    Par défaut
    Il y a aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Do While InStr(1, MonTexte, "  ") > 0
            MonTexte = Replace(MonTexte, "  ", " ")
        Loop

  5. #5
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 917
    Points : 4 821
    Points
    4 821
    Par défaut
    J.michel : 1 point (ouane poïnnete)
    C'est plus smart en effet

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    Bonjour à vous,

    Il est vrai que la proposition de J.michel est simple

    Par contre j'ai aps l'impression que mon pb est reglé:

    voici un extrait de mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      If Form_Build_Order.Commentaires.Value <> Empty Then
     
                Do While InStr(1, Form_Build_Order.Commentaires.Value, "  ") > 0
                Form_Build_Order.Commentaires.Value = Replace(Form_Build_Order.Commentaires.Value, "  ", " ")
                Loop
     
                'Form_Build_Order.Commentaires.Value = Replace(Form_Build_Order.Commentaires.Value, " " + " ", " ")
                Form_Build_Order.Commentaires.Value = Replace(Form_Build_Order.Commentaires.Value, Chr(13) + Chr(10), " ")
                Form_Build_Order.Commentaires.Value = Replace(Form_Build_Order.Commentaires.Value, Chr(10), " ")
                Form_Build_Order.Commentaires.Value = Replace(Form_Build_Order.Commentaires.Value, Chr(13), " ")
            Else
            End If
    En fait le but est:

    Un utilisateur saisi du texte dans une zone texte d'un formulaire, celui ci est ensuite exporter en csv.

    Par contre ce texte doit comporter qu'un seul espace par mot, par de retour chariot etc. En gros que cela phase une belle phrase sans rien d'autre autrement l'export marche pas bien.

    Avec ce code la, mes espace ne sont pas bien gérés et génère un décalage dans l'export.

    Je ne vois pas où cela pêche, je regarde .

    Merci

  7. #7
    Membre averti Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Points : 323
    Points
    323
    Par défaut
    Peut ête devrais tu mettre la suppression des espaces à la fin

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    Me revoila,

    J'ai pas l'impression que ca marche pas l'histoire de supprimer les 2 epaces à suivre car dans l'export cela me met ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div>Déménagement d'un site RH2 Temporaire - RH2 sans création: 06/10/2008 9H Retour dans les locaux d'origine, déplacement du routeur demandé pour le 06/10/2008 9H  &nbsp
    Puis le reste dans une autre cellule.
    Je crois que cela : &nbsp désinge un espace ?

  9. #9
    Membre averti Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Points : 323
    Points
    323
    Par défaut
    Citation Envoyé par rjcab Voir le message
    Puis le reste dans une autre cellule.
    C'est quoi le reste ?
    Et de quelle cellule parles tu ? Je croyais que tu exportais en CVS

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    oups pardon ...

    J'exporte en csv.

    Une fois le fichier créer je l'ouvre avec xls.
    et j'ai une partie du texte dans une cellule:

    <div>Déménagement d'un site RH2 Temporaire - RH2 sans création: 06/10/2008 9H Retour dans les locaux d'origine, déplacement du routeur demandé pour le 06/10/2008 9H &nbsp

    et le reste dans l'autre:
    pour que cela soit efficace pour l'install.

    Si lors de la saisi j'enlève cet espace en trop aucun pb.
    Le pb c'est que ce n'est pas moi l'utilisateur....

  11. #11
    Membre averti Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Points : 323
    Points
    323
    Par défaut
    Quand je prend cette partie de texte dans Excel tout ce passe bien.
    Donne nous le fichier CSV pour mieux comprendre.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    Bonjour J.Michel,

    Donc voici ce que j'ai fais:
    Dans ma zone texte commentaires, j'ai tappé ceci:
    a a a
    Je fais l'export csv et le 3 ième a est dans la cellule suivante.
    Si j'ouvre ce csv avec le bloc note voivi ce que cela donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ;<div>a a &nbsp;a</div>;
    Je joins le fichier.

    Merci
    Fichiers attachés Fichiers attachés

  13. #13
    Membre averti Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Points : 323
    Points
    323
    Par défaut
    En fait ce qui bloque ce n'est pas le &nbsp mais le ; qui est juste derrière.
    De plus il faudrait peut être aussi supprimer le <div> et le </div> pour faire plus propre

  14. #14
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    Le ; se met automatiquement, c'est la séparation des champs lors de la creation csv.
    pourtant moi je ne met pas ceci, il y a juste:

    a a a (2 espaces entre le 2 et 3 a)

  15. #15
    Membre averti Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Points : 323
    Points
    323
    Par défaut
    As tu essayé de faire toi même la création du CSV par procédure ?
    Ca te permettrait de donner le format exact de ce que tu veux faire.

Discussions similaires

  1. Remplacer plusieurs enregistrements par un seul:conditionnel
    Par maestro1303 dans le forum Langage SQL
    Réponses: 19
    Dernier message: 06/01/2014, 18h11
  2. [String] remplacer plusieurs espaces par un seul
    Par scraly dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 01/12/2010, 15h25
  3. Remplacement de plusieurs espaces par une seul
    Par Bayard dans le forum Général Python
    Réponses: 2
    Dernier message: 23/11/2008, 18h10
  4. [RegEx] Remplacer plusieurs espaces succesifs par un seul
    Par Marcus15 dans le forum Langage
    Réponses: 8
    Dernier message: 22/03/2007, 11h48
  5. remplacer plusieurs mots par un seul mot
    Par nivose110 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 07/02/2007, 09h40

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