Bonjour,
Je cherche à modifier des caractères dans plusieurs cellules en VBA
ex: dans une cellule on trouve: "mv 09/07<br /><br />connexion"
Et je veux supprimer les <br />
Comment faire?
Merci bien pour vos réponses
Bonjour,
Je cherche à modifier des caractères dans plusieurs cellules en VBA
ex: dans une cellule on trouve: "mv 09/07<br /><br />connexion"
Et je veux supprimer les <br />
Comment faire?
Merci bien pour vos réponses
Ruban Accueil > Rechercher et Sélectionner > Remplacer > Champ Rechercher = </br> > Champ Remplacer par : laisser vide > Remplacer tout
Pour un équivalent en VBA, méthode Replace de Range.
https://msdn.microsoft.com/fr-fr/lib.../ff194086.aspx
Petite précision dans .Replace tu dois écrire ta formule avec la convention et le vocabulaire anglosaxons. Par exemple si tu veux remplacer la formule =SOMME(A1;B1) il faut écrire :
Ecrire les fonctions en français ne cause pas d'erreur mais les remplacements ne sont pas faits. Ecrire ";" au lieu de "," peut causer des erreurs et/ou faire n'importe quoi dans la feuille xD
Code : Sélectionner tout - Visualiser dans une fenêtre à part What:="=SUM(A1,B1)"
Si tu as a remplacer des guillemets par exemple il faut les échapper (en les doublant ou en utilisant Chr(34)).
Petite astuce : tout comme dans le recherche et remplacer (ctrl+H), il est possible d'utiliser l'astérisque (*) comme joker.
Aussi un conseil : la documentation MSDN est extrêmement complète il est donc dommage de s'en priver. Et bien sûr on apprend beaucoup en cherchant par soi-même même si c'est bien quand l'on sèche de trouver une aide extérieur bien sûr
Code : Sélectionner tout - Visualiser dans une fenêtre à part What:="=SUM(*" 'remplacement de toutes les formules somme
Je vois pas ce que qui m'a valu un pouce rouge. J'ai fait une proposition et effectivement l'astuce de l'astérisque fonctionne. Plutôt que de mettre des pouces rouges, pourquoi ne pas expliquer ce qui n'est pas bien ? Sinon si j'écris vraiment n'importe quoi envoyez un MP pour dire de supprimer car un pouce rouge sans rien ça n'apporte rien. Moi je ne mets pas des pouces rouges comme ça. C'est trop facile.
Bonjour,
@Nagel Tha
Là dessus je te rejoins, si ce que tu dis pose problème à une personne, autant qu'elle te le fasse savoir en t'expliquant le pourquoi. Par contre je ne suis pas pour le MP, car les explications peuvent servir à tout le monde et éviter des problèmes de codage à certains moins affûté dans l'écriture du VBA.Je vois pas ce que qui m'a valu un pouce rouge. J'ai fait une proposition et effectivement l'astuce de l'astérisque fonctionne. Plutôt que de mettre des pouces rouges, pourquoi ne pas expliquer ce qui n'est pas bien ? Sinon si j'écris vraiment n'importe quoi envoyez un MP pour dire de supprimer car un pouce rouge sans rien ça n'apporte rien. Moi je ne mets pas des pouces rouges comme ça. C'est trop facile.
Cordialement
Ryu
La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein
Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple
Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)
Oui, je suis d'accord avec toi. Cependant, si le problème c'est pas le codage en lui-même un MP est justifié. Ou alors si celui qui juge n'est pas sûr de lui. En tout cas je suis ouvert à la discussion et je n'aime pas les jugements gratuits. Une des raisons pour lesquelles je n'ai pas FaceBook lol
Concernant la question, ctrl+H c'est bien .Replace en VBA (cf enregistreur de macro) et l'astuce du joker est valable : dans certains cas on ne connaît pas la chaîne à remplacer mais on connaît les parties à ne pas remplacer (je pense notamment au cas des fichiers qui vont de répertoire en répertoire et qui voient les références aux cellules additionnées de chemins). Il y a d'autres solutions mais pas toujours simples. Une autre raison d'utiliser l'astérisque d'ailleurs pourrait être pour omettre LookAt. Si quelqu'un n'est pas d'accord il peut essayer et s'en rendre compte. Ce n'est peut-être pas la meilleure solution mais elle marche. Et si ça vaut vraiment un pouce rouge alors soit il faut en faire profiter tout le monde soit envoyer un MP si c'est juste ma façon de parler.
re
tres mauvaise idée l'asterisque dans le cadre d'un remplacement de formule
et si la formule sum n'etait qu'une partie d'une formule plus complexe dans la cellule vous y avez pensé !!?
ou alors terminez la chaine avec ")" apres "*" et quoi que la encore ca ne match pas puisque "*" peut englober tout les caracteres y compris tout les ")" te toutes les sub formules
donc non c'est pas bon
![]()
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Bonjour Patrick,
Oui j'y ai pensé et justement et c'est dans ce cadre qu'elle est utile mais cela suppose d'avoir une petite réflexion dessus. Je propose l'idée car je l'ai utilisée pour faire des centaines de remplacements dans des centaines de dossiers et que j'ai pu ainsi corriger toutes les erreurs liées aux chemin de fichier et absolument aucune erreur n'a été créée sinon je ne l'aurais même pas utilisé. L'exemple que j'ai donné était trivial de manière volontaire afin que cela soit compréhensible.
Dans le cadre auquel je pensais, justement à cause de la quantité phénoménale de mauvais liens que je ne connaissais pas et dont je ne connaissais pas les longueurs cela m'a bien facilité la vie. Pour que cela ne pose pas de problème, il faut juste connaître les bornes de la partie qui gêne.
Exemple :
Dans le code ci-dessus, je ne connais ni fonction1, ni fonction 2 ni l'adresse de la plage. Cependant, je connais une partie de l'adresse (celle qui se réfère aux cellules), mettons "A1" pour l'exemple et je sais que "A1" n'est utilisée que dans cette formule et nulle part ailleurs et qu'elle ne sera JAMAIS utilisée ailleurs. Donc sachant que je ne veux conserver que "A1" je peux utiliser :=FONCTION1(FONCTION2(ADRESSE D'UNE PLAGE))
Vu le temps très limité que j'avais, j'ai mis ça en place et encore une fois je le propose car je n'ai eu ABSOLUMENT aucun problème à faire comme ça.
Code : Sélectionner tout - Visualiser dans une fenêtre à part .Replace What:="(*A1)", Replacement:="(A1)"
Maintenant, s'il y a d'autres manières de faire mettre un pouce rouge n'apporte absolument rien à part me frustrer car je propose un truc qui fonctionne (et que encore une fois en prenant les précautions nécessaires n'apportera pas de problème) et on ne me propose pas d'alternative. Or si j'ai utilisé le joker c'est justement car je n'ai pas trouvé comment faire (et ça arrive quand tu as un temps limité et que soit tu utilises ça soit ton code ne fait rien du tout).
Au passage en termes de "et si ?" il faut également penser à "est-ce que le "si" se présentera ?".
Pour conclure, une proposition d'alternative pour quand ça ne fonctionnerait pas serait très appréciée non seulement par moi mais aussi par les autres![]()
re
Bonjour Nagel tha
justement tiensPour conclure, une proposition d'alternative pour quand ça ne fonctionnerait pas serait très appréciée non seulement par moi mais aussi par les autres![]()
il existe une fonction excel vba qui te donne le range qui est dans une formule en vba je ne m'en souviens plus je chercherais
je crois me souvenir que c'est precedents
exemple en B1 je met =SOMME(A2:A8)+SOMME(A15:A22)
et en vba je fait
bien pratique pour faire des replacement de range dans les formules
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub test() Range("b1").Precedents.Select For Each area In Selection.Areas texte = texte & area.Address & vbCrLf Next MsgBox "les plages si dessous sont dans les formules de ""B1""" & vbCrLf & texte End Sub
maintenant tu l'a ton alternative et pas besoins de suputer avec un asterisque ou autre stratagememes tu a exactement les adresses de plage qui sont dans la formule
tu peux faire effectivement un replace "$" sur les adress trouvées pour les avoir ecrites literalement et identiquement que dans la formule
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Merci pour ta proposition. Je vais regarder tout ça![]()
Partager