salut a tous
je voulez remplacer le contenue d'une cellule en suppriment les caractères quis suivent le mot: 'text2'
L'original:
Le resultat voulu:
Merci d'avance
salut a tous
je voulez remplacer le contenue d'une cellule en suppriment les caractères quis suivent le mot: 'text2'
L'original:
Le resultat voulu:
Merci d'avance
Bonjour !
résultat en C
formule en B1 : =CHERCHE("text2";A1;1)+4
+4 : longueur de "text2"-1 , 5-1
formule en C1 : =GAUCHE(A1;B1)
C1 le résultat
Ajuster le +4 suivant la longueur du mot "text2" s'il fait 10 caractères mettre +9
AMHA
Salut
La formule directe serait plus tôt : =GAUCHE(A1;TROUVE("text2";A1)+4).
Mais, il y a des sauts de ligne Chr(10), donc il faut Split() la chaine de caractères.
Bonjour,
Pour faire cela en conservant les sauts de lignes à l'intérieur de la cellule, il me semble nécessaire de passer par une fonction personnalisée. Une solution de ce genre:
Cependant une bizarrerie: utiliser directement la fonction ne respecte pas toujours les sauts de ligne, mais respecte toujours ces sauts quand on l'utilise via la Sub.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Option Explicit Public Function Nett(sCell As String, sTxt As String) As String '--- nettoie le texte qui se trouve après sTxt sur la même ligne Dim kTxt As Long, kLf As Long, s As String, n As Long n = Len(sTxt) s = Replace(sCell, vbLf, "|") & "|" kLf = 1 Do kTxt = InStr(kLf, s, sTxt) kLf = InStr(kTxt + n, s, "|") If kTxt + n < kLf Then s = Left(s, kTxt + n - 1) & Mid(s, kLf) Debug.Print s End If kTxt = kLf + 1 Loop Until kLf >= Len(s) s = Left(s, Len(s) - 1) s = Replace(s, "|", Chr(10)) Nett = s End Function Sub Nettoyer() Dim k As Long For k = 1 To Range("A" & Rows.Count).End(xlUp).Row Range("B" & k) = Nett(Range("A" & k), "text2") Next k End Sub
Cordialement.
merci pour vos réponses
je test et je revient dans un instant![]()
salut
thekat et hyperion13: vos propositions marche bien mais seulement si la cellule contient une Line unique
mais la proposition de EricDgn marche parfaitement comme je le veut
il reste seulement quelque modification: "quand il ne trouve pas le mot a supprimer il se bloque" ... mais c'est pas grave;
Merci a tous et bonne soirée .
Partager