si le caractère n°x existe, alors le détruire

  • Initiateur de la discussion Hervé
  • Date de début
H

Hervé

Guest
Salut à tous,

j'ai un problème de tri de données (encore, pour ceux qui m'ont deja vu, mais un autre)

je m'explique, j'aimerais que si il y a un caractère en position 9 et 10 des cellules de la 5e colonne, il soient effacés, ou mieux encore, remplacés par des espaces ' '

mon tableau comprend de nombreuses lignes (5000), je ne parviens pas à à y arriver avec des STXT

(une macro tourne déjà sur le tableau, dc si un code permet de le faire, je suis preneur aussi)

si qqun veut bien m'aider,

merci d'avance
 
G

Gérard DEZAMIS

Guest
Bonjour Abel et Hervé

Est-ce qu'un petite formule du type :

=SI(DROITE(GAUCHE(A1;10);2)<>'';GAUCHE(A1;8)&' '&DROITE(A1;NBCAR(A1)-10);'')
ne ferait-elle pas l'affaire ?
En A1 la donnée à éplucher ...

D'accord ce n'est pas du VBA...

@+ GD :evil:
 

Abel

XLDnaute Accro
Re, bonjour Gérard,

Hervé, est-ce quelque chose dans ce go&ucirc;t là ?

Je remplace la lettre 'u' en 7 ème position par 'oOo' (et p'is d'abord, pourquoi pas 'oOo', hein ?).

Abel. [file name=ExempleHerve.zip size=9200]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ExempleHerve.zip[/file]
 

Pièces jointes

  • ExempleHerve.zip
    9 KB · Affichages: 17
  • ExempleHerve.zip
    9 KB · Affichages: 19
  • ExempleHerve.zip
    9 KB · Affichages: 14
H

Hervé

Guest
c'est exactement ce qu'il me faut,sauf que c'est pour les caractères 9 et 10 (changer un caractère pour un autre je sais faire, mais pour deux, j'y arrive pas), les caractères 9 et 10 peuvent varier, la condition c'est pas 'si il y a 'u', mais 'si il y a un caractère en position 9 et en position 10' vous voyez ce que je veux dire?

j'espere que je suis clair...
 

Abel

XLDnaute Accro
Re,

Euh ..., ça faisait longtemps que je n'étais pas aller faire un tour dans le Zop ...

Bon, c'est encore plus simple.

Dans mon exemple, je me contente de 'ratiboiser' les mots qui dépassent 8 caractères pour ne conserver que les 8 premiers et ajouter deux espaces.
Faut-il aussi ajouter des espaces à ce qui est inférieur à 8 pour les amener à 8 ?

Abel. [file name=ExempleHerve2.zip size=9773]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ExempleHerve2.zip[/file]
 

Pièces jointes

  • ExempleHerve2.zip
    9.5 KB · Affichages: 17

Abel

XLDnaute Accro
Re,

Ca donnerait ça :

Code:
Sub Remplacement()
For Each c In Range(Range('e2'), Range('e65536').End(xlUp))
    If Len(c) > 8 Then
        c.Value = Left(c, 8) & '  '
    Else
        lg = 10 - Len(c)
        NewC = ''
        For i = 1 To lg
            NewC = NewC & Chr(32)
        Next i
        c.Value = Left(c, Len(c)) & NewC
    End If
Next c
End Sub

A voir sur un truc qui fait 5687 lignes.

Abel.
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 719
Membres
110 551
dernier inscrit
Khyolyanna