Comment supprimer desoccurrences sur Excel 07

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

  1. 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
    1. 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
      1. je suis en train de rechercher comment faire par macro, je te donne un retour dès que possible.
        0
      2. 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
    2. Contributeur
      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
      1. 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
      2. Contributeur
        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
      3. 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
      4. Contributeur
        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
      5. excellent, merci de l'info, ça marche pour moi maintenant.
        0