pb avec /n

  • Initiateur de la discussion guerbeau
  • Date de début
G

guerbeau

Guest
Bonjour qq peut il me dire comment supprimer le /n dans un fichier excel automatiquement sans pour autant perdre le retour a la ligne
d avance merci pour vos reponse
@+
 
G

guerbeau

Guest
bonjour en fait c'est dans un extract de bd probablement mysql mais pas sur, mon client veux que je gere les retour chariot donc je recois dans la cellule qq chose comme ca "veuillez trouver ci-joint les documents demandés /n rapport d'activité /n compte rendu de reunion" ou rapport d'activité et compte rendu de reunion sont sur 3 lignes differentes si je les suprime a la mano et que j importe dans access il me garde quand meme les retour chariot le pb et comment lui dire dans excel de les supprimer automatiquement j'espere que je suis assez clair
merci @+
 
P

polo

Guest
Bonsoir,

Bon, dis moi si j'ai bien compris ce que tu demandais.

En fait je t'ai fait une petite fonction qui supprime automatiquement les /n d'une chaine:

Tu ouvres une feuille Excell

Tu copies le code suivant dans un module

Tu auras le résultat du traitement d'une chaine contenant des /n dans la cellule A1.

Si c'est ce que tu veux, tu n'as qu'à faire une boucle sur toutes les cellules où tu as une chaine à formater en enlevant le /n, passer la chaine qu'elles contiennent dans la fonction "SupprimeSlashN", et le tour est joué.
(Un exemple d'appel se trouve dans la procédure de test "Test".




****
code :
****

Dim l, i As Integer
Dim Carac, ChaineResult, CaracP1, ChaineTest As String

Function SupprimeSlashN(ByVal chaine As String)
ChaineResult = ""

l = Len(chaine)


ChaineResult = ""
For i = 1 To l
Carac = Mid(chaine, i, 1)
CaracP1 = Mid(chaine, i + 1, 1)
If Carac = "/" Then
If CaracP1 = "n" Then
i = i + 1
Else
ChaineResult = ChaineResult & Carac
End If
Else
ChaineResult = ChaineResult & Carac
End If

Next i
SupprimeSlashN = ChaineResult
End Function

Sub Test()
ChaineTest1 = "totontotototo/ntoto/tototo"
ChaineTest2 = SupprimeSlashN(ChaineTest1)
Range("A1").Value = ChaineTest2
End Sub
 
P

POLO

Guest
Hello...

Voilà un module de test de ce que tu demandes:
mets le dans le module d'une feuille excel où la colonne D est alimentée avec une chaine contenant des /n
....

a +

POLO



code
****
------

Dim l, i As Integer
Dim Carac, ChaineResult, CaracP1, ChaineTest As String
Dim Chaine As String
Dim Ligne, Colonne As String

Private Function I_Derniere_Cellule(Chaine As String)
Dercell = Range(Chaine).End(xlDown).Address
I_Derniere_Cellule = Val(Mid(Dercell, 4, Len(Dercell) - 3)) + 1
End Function

Function SupprimeSlashN(ByVal Chaine As String)
ChaineResult = ""

l = Len(Chaine)


ChaineResult = ""
For i = 1 To l
Carac = Mid(Chaine, i, 1)
CaracP1 = Mid(Chaine, i + 1, 1)
If Carac = "/" Then
If CaracP1 = "n" Then
i = i + 1
Else
ChaineResult = ChaineResult & Carac
End If
Else
ChaineResult = ChaineResult & Carac
End If

Next i
SupprimeSlashN = ChaineResult
End Function

Sub Test()
'
' indiquer ici la cellule supérieure de la colonne à formater
Ligne = "D"
Colonne = "3"
ind = Val(Colonne)

Indice = I_Derniere_Cellule(Ligne & Colonne)

While ind <= Indice
ChaineTest1 = Range(Ligne & ind).Value
ChaineTest2 = SupprimeSlashN(ChaineTest1)
Range(Ligne & ind).Value = ChaineTest2
ind = ind + 1
Wend
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
314 659
Messages
2 111 623
Membres
111 236
dernier inscrit
vinthi