Remplacer sur Excel des grandes phrases sur plusieurs lignes

Résolu
yacinedu13001 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   -  
yacinedu13001 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je suis confronté à un problème sur Excel. Je souhaite remplacer une très grande phrase par une autre très grande phrase.

J'utilise le [CTRL+F] standard de Excel mais le souci est que ma phrase, qui est en fait un code HTML dépasse le nombre de caractères autorisés dans le champ de remplacement.

Connaissez-vous une autre solution pour répondre à ce besoin ?

Merci d'avance !

--
Si t'es jamais à terre, comment tu sauras te relever ?!

8 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Re Yacine

    Oui, désolé de t'avoir donné une mauvaise piste, je n'avais essayé qu'avec =nouveau mais avec les deux ça ne marche pas effectivement

    Donc je ne vois qu'une solution par macro

    ALT + F11 pour ouvrir l'éditeur
    Insertion puis Module

    et copier-coller le code suivant dans la page blanche (en adaptant ensuite à tes besoins la plage de modification et les anciens et nouveaux codes)

    Sub remplace()
    ' ancien code bien mettre entre guillemets
    anc = "aaaaaaaaaaaaaa"
    ' nouverau code idem
    nouv = "bbbbbbbbb"
    For Each c In Range("A1:C50") ' plage de la recherche, à adapter
    If c.Value = anc Then c.Value = nouv
    Next
    End Sub


    Fermer l'éditeur

    Pour lancer la macro depuis la feuille concernée : Onglet Développeur Macros cliquer sue le nom de la macro et Executer

    Cdlmnt
    1
  2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Et oui ton texte comporte lui-même des guillements ce que n''aime pas le VBA !

    Alors mets les code ancien et nouveau dans deux cellules par ex A1 et B1
    et remplace les 2 lignes dans la macro par
    anc=range("A1")
    nouv=range("B1")

    Cdlmnt
    1
  3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Tu mets le nouveau texte dans une cellule, par exemple en A1 et tu nommes cette cellule (clic droit Nommer plage) par exemple nouveau

    Puis avec Ctrl F dans Remplacer par tu mets =nouveau

    Cdlmnt

    "L'imagination est plus importante que le savoir." A. Einstein
    0
  4. redaiwa Messages postés 370 Statut Membre 119
     
    Salam Yacinedu13001.

    Tu peux contourner cette limitation à 255 caractères en utilisation VBA et la fonction Find().
    Voir ici : https://www.commentcamarche.net/faq/18696-vba-recherche-find-avec-retour-multiple

    °-)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. yacinedu13001 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   24
     
    Merci pour vos retours rapide :)

    @redaiwa : Salam, merci mais ta solution me semble un peu compliqué pour mon niveau -_-
    C'est à peine si je me débrouille un peu sur Excel, si je commence à aller sur VBA, autant faire ça ligne par ligne, j'irai plus vite xD

    @via55 : Bonjour, ta solution me semble très intéressante mais j'ai un souci.

    J'ai donc créé une cellule avec l'ancien code et une autre cellule avec le nouveau code.

    Je les aient renommées depuis : Insertion > Noms > Définir en "ancien" et "nouveau".

    Quand j'utilise le CTRL+F et que je mets remplacer "=ancien" par "=nouveau", il me dit aucune correspondance trouvée.
    0
    1. redaiwa Messages postés 370 Statut Membre 119
       
      T'inquiète Yacine, on est tous passé par la case départ. Si tu as le temps (et l'envie), mets-toi au VBA car ça ouvre beaucoup de perspectives et de possibilités qu'on croyaient impossible à réaliser avec les seules fonctions d'Excel.

      Concernant ta demande, Via55 t'a donné une solution tout prête.

      :-)
      0
    2. yacinedu13001 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   24
       
      J'en doutes pas ! Excel m'étonnera toujours et à jamais alors couplé avec le VBA, ça doit être juste extraordinaire :)
      0
  7. yacinedu13001 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   24
     
    Merci beaucoup pour ton retour précis !

    Malheureusement en exécutant la macro j'ai une erreur qui est la suivante :

    Erreur de compilation : Erreur de syntaxe.

    Pourtant, j'ai bien mis mon code entre guillemets.

    Voilà le code au complet :


    0
  8. yacinedu13001 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   24
     
    T'es trop balèze !!!

    Ça marche nickel ! Merci beaucoup, tu me sauves mon dimanche et toute ma semaine avec lol parce que changer ça manuellement sur plus de 3500 lignes...

    Bon dimanche !
    0
  9. yacinedu13001 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   24
     
    Mince ! J'ai sauté de joie un peu trop vite.

    Petit souci en faisant comme tu me l'as conseillé.

    En fait, ma cellule ne contiendra pas que le code à changer, elle contiendra un descriptif complet en HTML dont une partie du code à remplacer.

    Le souci c'est que en faisant Range("A1"), il me remplace mon code complet HTML par le bout de code que je souhaite remplacer :/

    Je ne sais pas si je m'explique correctement, mais il faudrait en fait pouvoir remplacer que le bout de code en question tout en gardant le reste du code HTML qui lui ne doit pas être changé.

    La solution idéale était donc de mettre le code en question seulement, mais s'il y a un conflit de guillemets, on est dans une impasse je penses -_-

    Merci encore !
    0
    1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Non ce n'est pas une impasse

      Si dans A1 tu mets l'ancien code complet; en B1 le bout de code ancien qu'il faut remplacer, en C1 le bout de code nouveau devant remplacer l'ancien et en D1 la formule =SUBSTITUE(A1;B1;C1) tu obtiens en D1 le nouveau code complet
      Il suffit dans la macro de remplacer la 2eme ligne par
      nouv=range("D1")
      0
    2. yacinedu13001 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   24
       
      Je confirme, t'es vraiment balèze ;)

      Merci beaucoup, ça marche très bien !

      Bon dimanche à toi Sir Excel.
      0