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

  1. 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
  2. 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
    1. 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
    2. 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
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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. 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
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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. 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
    4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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. 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