Remplacements dans une sélection

Résolu/Fermé
touroul Messages postés 475 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 11 novembre 2024 - 17 oct. 2014 à 10:10
touroul Messages postés 475 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 11 novembre 2024 - 17 oct. 2014 à 20:40
Bonjour la communauté

J'aurais besoin d'un coup de pouce ...

Excel possède bien un outil de remplacement d'une chaîne de caractères par une autre, mais ne permet malheureusement pas de le faire dans une sélection.

Je cherche à remplacer plusieurs chaînes de caractères (mettons Paris;Toulouse;Carcassonne) par "France", mais uniquement dans la sélection (A1:M980).
Ou idéalement, dans une sélection que j'effectuerai à la souris (car cette sélection est variable).

Cela vous paraît-il faisable ?

Je vous en remercie par avance !



A voir également:

8 réponses

Mike-31 Messages postés 18351 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 12 décembre 2024 5 110
Modifié par Mike-31 le 17/10/2014 à 11:09
Bonjour,

Mais bien sur que si, tu commence par sélectionner ta plage A1:M980

ensuite tu ouvres l'assistant, onglet Accueil/module Édition/Rechercher et Sélectionner/Remplacer, dans rechercher tu saisis le texte à remplacer Paris;Toulouse;Carcassonne et dans remplacer tu saisis France et clic sur remplacer tout

Attention il faut que les saisis soient identiques, un seul espace et cela ne fonctionne pas, de même que si tu veux remplacer que Paris dans la chaine il faut dans Rechercher saisir uniquement Paris

ou il faut écrire une formule qui prendra en compte Paris ou Toulouse ou Carcassonne
et affichera France
exemple
=SI(OU(NB.SI(A4;"*Paris*")=1;NB.SI(A4;"*Toulouse*")=1;NB.SI(A4;"*Carcassonne*")=1);"France";"")

ensuite il suffit de faire un copier/collage spécial/valeur pour transformer les
formule par le texte

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1
touroul Messages postés 475 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 11 novembre 2024 16
Modifié par touroul le 17/10/2014 à 11:25
Salut Mike

Merci bien de t'y mettre.

Lorsque je suis ce que tu m'indiques, il me trouves bien des occurences, mais sans tenir compte de ma sélection.
Du coup, si je fais "Remplacer tout", il me remplace aussi les occurences en dehors de ma sélection.

Un exemple sur https://www.cjoint.com/?DJrlCWOPuJo

Autre chose : dans le champ de recherche, peut-on spécifier plusieurs valeurs à remplacer par la même chaîne ?
Si oui, comment séparer les valeurs ? Espace et ; ne fonctionnent pas.

Merci d'avance Mike
0
Mike-31 Messages postés 18351 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 12 décembre 2024 5 110
17 oct. 2014 à 11:32
Re,

Non cela marche très bien, tu sélectionnes bien ta plage en jaune A4:D15
tu vas chercher l'outil Remplacer dans Rechercher tu saisis Paris et dans Remplacer France, tu clic sur remplacer tout et tout tes Paris de la zone sélectionnée sont remplacé, et uniquement les valeurs de ton tableau jaune, MAIS IL FAUT QUE LA PLAGE SOIT ACTIVEE (sélectionnée)

pour la deuxième question, c'est non ou il faut passer par ma proposition avec formule ou plus compliqué avec un code VBA
0
touroul Messages postés 475 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 11 novembre 2024 16
17 oct. 2014 à 12:14
Tu avais raison, j'arrive à effectuer ce remplacement à présent, je ne sais pas ce que j'ai fichu tout à l'heure ... :)

La réalité est un peu différente pour mon fichier de plus de 1000 lignes qui contient une cinquantaine de mots à remplacer tous par France.

Comme il me paraissait difficile de se passer de macros, j'ai enregistré une macro et corrigé partiellement le code :
J'obtiens cette macro qui remplace Carcassonne dans ma sélection effectuée à la souris :

Option Explicit
Sub Rempl()

Dim ActSheet As Worksheet
Dim SelRange As Range

Set ActSheet = ActiveSheet
Set SelRange = Selection

Selection.Replace What:="Carcassonne", Replacement:="France", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

ActSheet.Select
SelRange.Select
End Sub


Cela fonctionne très bien ainsi.

Par contre, penses-tu possible de remplacer le What:="Carcassonne"
par What:="Tout ce qui se trouve dans la colonne F" ???

Voici le fichier avec la macro : https://www.cjoint.com/c/DJrmssVeYec

On avance, merci pour ton aide.

Je trouve le sujet passionnant.
0

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

Posez votre question
Mike-31 Messages postés 18351 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 12 décembre 2024 5 110
17 oct. 2014 à 14:32
Re,

Tu pourrais partir sur un code simple placé dans un bouton activex

Private Sub CommandButton1_Click()
[A3:D15].Replace What:=[F3], Replacement:="France"
[A3:D15].Replace What:=[F4], Replacement:="France"
[A3:D15].Replace What:=[F5], Replacement:="France"
[A3:D15].Replace What:=[F6], Replacement:="France"
[A3:D15].Replace What:=[F7], Replacement:="France"
[A3:D15].Replace What:=[F8], Replacement:="France"
[A3:D15].Replace What:=[F9], Replacement:="France"
[A3:D15].Replace What:=[F10], Replacement:="France"
End Sub

on pourrait travailler avec des boucles ce qui raccourcirait le code mais le ralentirait

https://www.cjoint.com/?DJroLhCFAY4
0
touroul Messages postés 475 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 11 novembre 2024 16
Modifié par touroul le 17/10/2014 à 16:13
Mmmmh oui, ça fonctionnerait.
Mais dans ce cas tu ne tiens pas compte de 2 conditions :

- La variabilité de la longueur du tableau (réglée par la sélection à la souris)
- Le fait que mon tableau comprend parfois 1000 lignes, difficile de recopier le code 1000 fois.

J'ai une autre solution, peut-être plus facile à mettre en oeuvre :
Ça fonctionnerait si, dans ma sélection à la souris, on remplaçait :
Toutes les cellules non-vides sauf celles comprenant "Fontenay; Marseille; Bordeaux" par Paris.

Une idée ?
0
Mike-31 Messages postés 18351 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 12 décembre 2024 5 110
17 oct. 2014 à 16:37
Re,

il suffit de remplacer
[A3:D15] par selection

Private Sub CommandButton1_Click()
Selection.Replace What:=[F3], Replacement:="France"
Selection.Replace What:=[F4], Replacement:="France"
Selection.Replace What:=[F5], Replacement:="France"
Selection.Replace What:=[F6], Replacement:="France"
Selection.Replace What:=[F7], Replacement:="France"
Selection.Replace What:=[F8], Replacement:="France"
Selection.Replace What:=[F9], Replacement:="France"
Selection.Replace What:=[F10], Replacement:="France"
End Sub
0
touroul Messages postés 475 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 11 novembre 2024 16
17 oct. 2014 à 20:40
OK Mike

J'ai fini par y arriver en recopiant ces lignes avec tous les codes nécessaires.

Merci beaucoup

Bonne soirée
0