Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/05/2011, 17h21   #1
Invité de passage
 
Inscription : février 2011
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 29
Points : 3
Points : 3
Par défaut Gestion des espace dans une chaine de caracteres

Bonjour à tous,

Je dois mettre en place un petit prog qui permette d'importer un fichier texte dans access. L'importation je m'en occupe. Par contre le fichier contient des espaces un peu partout sur chaque ligne et je souahaiterais mettre en place une fonction qui gere et supprime les espace de façon particulière.
ex:
texte = "B O N J O U R E T BIEN V E N U E"
resultat = "BONJOUR ET BIENVENUE"

J'espere que je suis clair sinon n'hésitez pas.
Merci pour votre aide
jobe3141 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 18h23   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 615
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 615
Points : 30 962
Points : 30 962
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

En général on utilise la fonction Replace dans ce genre de cas, mais il y a une grosse difficulté, car comment va-t-elle reconnaitre un faux espace d'un vrai (celui qui est entre les mots).

Y a-t-il une règle particulière pour ces espaces ?
D'où vient ce fichier texte ? Quel logiciel pond un fichier aussi nul ?

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 19h34   #3
Invité de passage
 
Inscription : février 2011
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 29
Points : 3
Points : 3
Bonjour et merci de t intéresser a mon problème. Ce fichier provient s
D' un système comptable auquel je n ai pas la main. Je récupère un fichier sous format texte tout pourri et j ai besoin d' exploiter ces données. Il n y a pas de règles précise pour les espaces c est vraiment aléatoire. Par apport a ta réponse dois je en déduire que ce n est pas possible. Je pensais a une fonction qui identifie les espaces et qui les compte. Si ils sont > 1 alors on supprime ceux en trop. J ai pas arrête de tourner en rond mais j ai pas réussi. Est ce la bonne démarche ? Je suis preneur de toute autre solution.
En tout cas merci pour votre aide.
jobe3141 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 19h50   #4
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 615
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 615
Points : 30 962
Points : 30 962
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
RE

Citation:
Envoyé par jobe3141 Voir le message
Je pensais a une fonction qui identifie les espaces et qui les compte. Si ils sont > 1 alors on supprime ceux en trop.
Si c'est le cas la fonction Replace devrait faire l'affaire.

Un exemple :

Code :
1
2
3
Public Function RemplacerBlanc(strChaine As String) As String
    RemplacerBlanc = Replace(strChaine, "  ", " ")
End Function
Cela remplacera deux espaces par 1 et ne touchera pas aux espaces seules.

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 20h52   #5
Invité de passage
 
Inscription : février 2011
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 29
Points : 3
Points : 3
Merci pour la fonction mais elle ne répond pas a mon besoin. En fait je me suis mal exprimer. Je souvaiterai que la fonction fonctionne de cette façon:
Si espace =1 alors on le supprime
Sinon
Si espace >1 alors on en garde qu un seul.

Est ce possible ou pas?
Merci pour ton retour rapide.
jobe3141 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 05h41   #6
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 615
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 615
Points : 30 962
Points : 30 962
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Re

Citation:
Envoyé par jobe3141 Voir le message
Si espace =1 alors on le supprime
Sinon
Si espace >1 alors on en garde qu un seul.
Ce que tu demandes est incompatible avec ton exemple :

Citation:
texte = "B O N J O U R E T BIEN V E N U E"
resultat = "BONJOUR ET BIENVENUE"
Entre le R de bonjour et le ET il y a un espace, je ne peux le supprimer

Il faudrait un exemple cohérent pour trouver la solution.

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 10h36   #7
Invité de passage
 
Inscription : février 2011
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 29
Points : 3
Points : 3
Bonjour Philippe JOCHMANS,

Effectivement mon exemple est faux. Pour reprendre, les lignes de mon fichier sont de la forme suivante:

Valeur origine = "B O N J O U R E T B I E N V E N U E"

En fait il y'a un nombre d'espaces aléatoires entre les mots et par contre les mots eux mêmes sont séparés par un espace.

Resultat souhaité = "BONJOUR ET BIENVENUE"
Est ce possible de developper la fonction dans mon précédent message:

Si espace =1 alors on le supprime
Sinon
Si espace >1 alors on en garde qu un seul.

Merci encore pour ton aide.
jobe3141 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 10h43   #8
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 737
Points : 10 737
Envoyer un message via MSN à jpcheck
salut,

en partant de ce que t'a donne Philippe, je propose
Code :
1
2
3
4
5
6
7
8
Public Function RemplacerBlanc(strChaine As String) As String
    Dim result As String
    result = strChaine
    Do Until Instr(1, result, "  ")=0
         result = Replace(result , "  ", " ")
    Loop
    RemplacerBlanc = result
End Function
Mais le coup du espace = 1 on supprime definitivement, ca me genait, mais ca semble etre bon

edit : en fait pas du tout, en fait ici j'ai deja supprime les espaces...

Donc il faut faire un traitement caractere par caractere
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 11h22   #9
Invité de passage
 
Inscription : février 2011
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 29
Points : 3
Points : 3
Je corrige mon exemple afin qu'il soit cohérent:

Valeur d'origine: "B.O.N.J.O.U.R........................E.T.....B.I.E.N.V.E.N.U.E....."
(Les points correspondent à des espaces)

Resultat attendu: "BONJOUR.ET.BIENVENUE

NB: Merci de ton aide jpcheck mais ta fonction ne repond pas à mon besoin.

Merci à tous pour votre aide
jobe3141 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h46.


 
 
 
 
Partenaires

Hébergement Web