Comment supprimer desoccurrences sur Excel 07

Pogona Messages postés 2 Statut Membre -  
Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Bonjour,

J'ai télécharger un texte très long sur Excel. Le problème est qu'il y a un n° de ligne entre parenthèse pour chaque ligne, et je dois les enlever. Cela me fait un peu moins de 70000 occurrences à supprimer. Pitié, savez-vous si je peux le faire de manière automatique?
La fonction rechercher n'est pas une bonne solution.
Merci d'avance

Hammouda

3 réponses

Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
 
bonjour,

oui c'est tout à fait possible avec une macro VBA par exemple. Mais pour la faire il faudrait déjà avoir un peu plus de détails . Le numéro de ligne est-il toujours au début ou toujours à la fin ?

Y a t-il des espaces entre les parenthèses et le numéro ?

A quoi ressemble plus précisément ta feuille (il y a juste une colonne et 70000 lignes ? Dans la colonne le type de variable est bien "Texte" ? )
0
Pogona Messages postés 2 Statut Membre
 
Bonsoir

Le numéro de ligne est-il toujours à la fin

Il n'y a pas d'espaces entre les parenthèses et le numéro

Il y a 11 feuilles. Chacune contient une colonne de 6360 lignes, les lignes sont séparées par une ligne vide

Dans la colonne il y a un texte suivi d'un n° ex.
Pierre mange une pomme (1)

Marie verse de l'eau (2)


Merci
Hammouda
0
Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
 
je suis en train de rechercher comment faire par macro, je te donne un retour dès que possible.
0
Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
 
Alors voici la macro qui marche bien chez moi.

Elle crée une deuxième colonne qui va contenir les lignes de texte sans le numéro de fin entre parenthèses :
Sub NomDeLaMacro()
    
    ActiveSheet.Columns(1).Copy ActiveSheet.Columns(2)
    
    Dim c As Range, pos As Integer
    For Each c In ActiveSheet.Range("B:B")
        pos = InStrRev(c.Value, "(")
        If pos Then
            c.Value = Left(c.Value, pos - 1)
        End If
    Next
    
End Sub


Pour créer une macro, va dans menu outils -> macro -> nouvelle macro. Donne lui le nom que tu souhaites. Ensuite, appuies directement sur le bouton "stop" de la petite fenêtre qui s'affichera. Va dans le menu outils->macro->macros.... sélectionne ta macro et cliques sur "modifier".

Tu peux copier le texte ci-dessus (celui entre les lignes Sub NomDeLaMacro() et End Sub).

Ensuite, lorsque tu exécuteras la macro, tu devrais avoir la deuxième colonne apparaitre avec les bonnes valeurs.
Pense à faire une copie de sauvegarde avant, avec les macros on ne sait jamais ....
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

Tu peux le faire par formule :
=SI(A2="";"";GAUCHE(A2;MAX(SI(STXT(A2;LIGNE($1:$100);1)="(";LIGNE($1:$100);0))-1))
formule matricielle à valider par shift+ctrl+entrée, à recopier vers le bas.
$100 doit être plus grand que ta plus grande phrase
S'il arrive que (x) ne soit pas précédé d'un espace enlève le -1 de la fin

Et tu termines en selectionnant la colonne de formules et copier/collage spécial valeur.

eric
0
Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
 
salut j'ai testé, et je ne sais pas s'il y a un truc que je n'ai pas compris, mais ça ne fonctionne pas.
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Ah ?

Je viens de retester, pour moi c'est bon.
Tu as bien validé en matricielle et non par un simple enter ? Elle doit s'entourer de { }
eric
0
Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
 
j'ai essayé de faire shift+controle+enter, mais ça n'a pas mis d'accolades, non.
en fait, cette formule il faut la mettre où exactement , ça a une importance ?
(je ne sais pas ce que c'est qu'une formule "matricielle")
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

Telle qu'elle est écrite elle est prévue pour être en ligne 2
Il faut que la formule soit en édition pour valider, donc avec le curseur qui clignote dans la zone d'édition des formules.
eric
0
Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
 
excellent, merci de l'info, ça marche pour moi maintenant.
0