Remplacer sur Excel des grandes phrases sur plusieurs lignes

Résolu/Fermé
yacinedu13001 Messages postés 297 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 mars 2019 - 12 oct. 2014 à 11:59
yacinedu13001 Messages postés 297 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 mars 2019 - 12 oct. 2014 à 15:19
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 !
A voir également:

8 réponses

via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
12 oct. 2014 à 13:24
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
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
12 oct. 2014 à 14:00
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
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
Modifié par via55 le 12/10/2014 à 12:18
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
redaiwa Messages postés 351 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 25 janvier 2024 119
12 oct. 2014 à 12:21
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yacinedu13001 Messages postés 297 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 mars 2019 24
Modifié par yacinedu13001 le 12/10/2014 à 12:49
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
redaiwa Messages postés 351 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 25 janvier 2024 119
12 oct. 2014 à 13:46
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
yacinedu13001 Messages postés 297 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 mars 2019 24
12 oct. 2014 à 14:14
J'en doutes pas ! Excel m'étonnera toujours et à jamais alors couplé avec le VBA, ça doit être juste extraordinaire :)
0
yacinedu13001 Messages postés 297 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 mars 2019 24
12 oct. 2014 à 13:40
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
yacinedu13001 Messages postés 297 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 mars 2019 24
12 oct. 2014 à 14:13
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
yacinedu13001 Messages postés 297 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 mars 2019 24
12 oct. 2014 à 14: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
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
12 oct. 2014 à 14:56
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
yacinedu13001 Messages postés 297 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 mars 2019 24
12 oct. 2014 à 15:19
Je confirme, t'es vraiment balèze ;)

Merci beaucoup, ça marche très bien !

Bon dimanche à toi Sir Excel.
0