Remplacer les caracteres sepciaux par espace

Signaler
Messages postés
44
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
3 juillet 2006
-
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
-
je suis en stage il ont des bases de données faites a la con .
je fais l importation de excel vers Access des données a travers une aplication VB.
l'importation se fait normalement mais dès qu'il y a un caractere special l insertion
s arrete et il affiche un message d erreur
ya t il une fonction qui peu arreté cela
pouvez vous m aidé.
merci

7 réponses

Messages postés
288
Date d'inscription
mercredi 4 mai 2005
Statut
Membre
Dernière intervention
26 janvier 2012
1
En vb.net, y'a la fonction replace :
dim s1 as string
s1 = s1.replace(".","/")
-> remplace les points par des slash ds ton string s1...

mais ton problème m'a l'air bizarre.. il est pas sensé avoir des difficultés avec un certain caractère, mais plutôt avec des champs vides qui ne devraient pas l'être...
.Maytheforcebewithyou.Maxime.
Messages postés
46
Date d'inscription
jeudi 17 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2013

Bonjour,

et en plus, tu peut aussi jouer sur les codes ascii dans une boucle
avec la commande instr couplé au replace, j'ai pas de code sous
la main

Ca va ralentir un peu, mais tu est sur de tout prendre.

Etienne
Messages postés
44
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
3 juillet 2006

ok merci mais je vous explique encore
quand j m 'importe de excel parfois ya des ptit carrés dans la cellules ( normalement c un retour a la ligne) et c la kil blok mais pour les autres caractères ca y est c traité
voila
Messages postés
288
Date d'inscription
mercredi 4 mai 2005
Statut
Membre
Dernière intervention
26 janvier 2012
1
C'est pour ça qu'il faut coupler replace et CHR dans ton code : (instr, c'est autre chose.. enfin moi je parle en vb.net.. toujours)

dim str_excel as string = "ce que tu recupere de
Excel"
je connais pas leurs valeurs exactes, mais si tu trouves la coordonnée du retour chariot (mettons 49..) en ascII et celui de l'espace (45, allez) et tu pourras faire :

str_excel = str_excel.replace(chr(49), chr(45)) ou quelque chose qui s'en approchera...

.Maytheforcebewithyou.Maxime.
Messages postés
15
Date d'inscription
mardi 22 juin 2004
Statut
Membre
Dernière intervention
12 juin 2009

Bonjour,

Je viens de lire les messages et je reste bloqué avec le petit carré aussi

J'écris via une combobox en mode multi line et lorsque je l'applique dans un cellule d'excel, il génére un petit carré pour le retour line.

Puis le fichier, je l'exporte pour une requête. Et là impossible car le petit carré et considéré comme une rupture de colonne, donc je souhaite viré le petit carré.

Merci à tous pour votre aide.......
Messages postés
15
Date d'inscription
mardi 22 juin 2004
Statut
Membre
Dernière intervention
12 juin 2009

Pour faire suite,

le problème c'est que dans VBA Excel une Textbox en mode Multiline permet d'écrire plusieurs ligne dans la Textbox (évidemment)

mais lorsque la valeur  Textbox.text est exporté vers une cellule excel. il affiche un petit carré à la fin de chaque ligne.

Donc la question peut on virer ces petit carré soit dans les options des textbox ou avec une macro ???........ Là je reste bloqué depuis longtemps... bon d'accord je suis débutant, mais je trouve aucune réponse à ce problème même pas sur les forums étrangers....

d'avance merci, si quelqu'un trouve.....
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Bonsoir,

Désolé, je n'ai pas la force de tout lire, je réponds juste à ta dernière remarque.

Chaque retour à la ligne d'une textbox (ou autre objet de ce type) est codé par deux caractères spéciaux : chr$(10) & chr$(13)

Chr$(10) affiche le petit carré qui te tracasses... mais il y a aussi chr$(13) (retour à la ligne qui est transparent)

donc, pour s'en sortir, il suffit de remplacer (Remplace) tous ces caractères pour chr$(10) par espace, et chr(13) par une chaine nulle (vbnullstring)...

Bon à savoir, si vous utiliser ALT+Retour, alors, il me semble, que seul chr(13) est présent... Bref, à étudier...

Amicalement,
Us.