Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment trouver le nombre de caractères remplacés ?

11 réponses
Avatar
Gouap
Bonjour à tous,

Juste une petite question :

Existe-il un moyen de savoir le nombre de caractère que cette ligne à
remplacés ?

Cells.Replace What:="#", Replacement:=" "

Bonne fin de semaine à vous !
@+
Philippe

10 réponses

1 2
Avatar
Tatanka
Bonjour,

Et si tu comptais le nombre de # avant de les remplacer ?
Exemples à adapter :

Sub Compter1()
For Each c In Selection
n = n + Application.Sum(Len(c) - Len(Replace(c, "#", "")))
Next c
MsgBox n
End Sub

Sub Compter2()
Set ici = Cells.SpecialCells(xlCellTypeConstants)
For Each c In ici
n = n + Application.Sum(Len(c) - Len(Replace(c, "#", "")))
Next c
MsgBox n
End Sub

Serge



"Gouap" a écrit dans le message de news:
Bonjour à tous,

Juste une petite question :

Existe-il un moyen de savoir le nombre de caractère que cette ligne à remplacés ?

Cells.Replace What:="#", Replacement:=" "

Bonne fin de semaine à vous !
@+
Philippe



Avatar
Gouap
Merci de ta proposition, mais j'aurais souhaiter me servir de la commande
Excel qui anonce directement le nombre d'occurences remplacées après avoir
remplacer le caractère sur l'ensemble de la selection.

N'y a t il pas d'option a ajouter à ma ligne de code pour récupérer cette
info ?



"Tatanka" a écrit dans le message de news:

Bonjour,

Et si tu comptais le nombre de # avant de les remplacer ?
Exemples à adapter :

Sub Compter1()
For Each c In Selection
n = n + Application.Sum(Len(c) - Len(Replace(c, "#", "")))
Next c
MsgBox n
End Sub

Sub Compter2()
Set ici = Cells.SpecialCells(xlCellTypeConstants)
For Each c In ici
n = n + Application.Sum(Len(c) - Len(Replace(c, "#", "")))
Next c
MsgBox n
End Sub

Serge



"Gouap" a écrit dans le message de news:

Bonjour à tous,

Juste une petite question :

Existe-il un moyen de savoir le nombre de caractère que cette ligne à
remplacés ?

Cells.Replace What:="#", Replacement:=" "

Bonne fin de semaine à vous !
@+
Philippe







Avatar
Daniel.C
Les fonctionnalités du remplacement VBA et Excel ne sont pas
strictement identiques, et hélas, le nombre de remplacements n'est pas
disponible avec VBA.
Daniel

Merci de ta proposition, mais j'aurais souhaiter me servir de la commande
Excel qui anonce directement le nombre d'occurences remplacées après avoir
remplacer le caractère sur l'ensemble de la selection.

N'y a t il pas d'option a ajouter à ma ligne de code pour récupérer cette
info ?



"Tatanka" a écrit dans le message de news:

Bonjour,

Et si tu comptais le nombre de # avant de les remplacer ?
Exemples à adapter :

Sub Compter1()
For Each c In Selection
n = n + Application.Sum(Len(c) - Len(Replace(c, "#", "")))
Next c
MsgBox n
End Sub

Sub Compter2()
Set ici = Cells.SpecialCells(xlCellTypeConstants)
For Each c In ici
n = n + Application.Sum(Len(c) - Len(Replace(c, "#", "")))
Next c
MsgBox n
End Sub

Serge



"Gouap" a écrit dans le message de news:

Bonjour à tous,

Juste une petite question :

Existe-il un moyen de savoir le nombre de caractère que cette ligne à
remplacés ?

Cells.Replace What:="#", Replacement:=" "

Bonne fin de semaine à vous !
@+
Philippe









Avatar
FFO
Salut à toi

Je te propose ce code :

Paramètre1 = InputBox("Veuillez saisir le paramètre à modifier", "Paramètre
à modifier")
Paramètre2 = InputBox("Veuillez saisir le paramètre de remplacement",
"Paramètre de remplacement")
Données = 0
For i = 1 To Cells.Count
On Error Resume Next
Données = Cells.Find(What:=Paramètre1, After:=Range("A1"),
LookIn:=xlValues, Lookat:=xlPart).Address
If Données <> 0 Then
Range(Données) = Replace(Range(Données), Paramètre1, Paramètre2)
n = n + 1
Données = 0
Else
Exit For
End If
Next
If n <> 0 Then
MsgBox (n & " Cellule(s) modifiéee(s)")
Else
MsgBox ("Aucune cellule trouvée avec le Paramètre " & Paramètre1)
End If

Une boîte de dialogue te demandera le paramètre à remplacer et une 2° celui
de remplacement

Le remplacement s'effectuera et une boîte de dialogue te donnera le nombre
de cellules modifiées

Attention 2 paramètres dans une même cellule comptera pour 1 cellule modifiée

Espérant que celà te convienne

Dis moi !!!!!
Avatar
michdenis
Bonjour,


Sub Trouver_Compter_Remplacer()

Dim Adr As String, C As Range, A As Integer
Dim Cherche As String, Repl As String

Cherche = "#" 'chaîne cherchée
Repl = "Titi" 'chaîne remplacée par ..

A = 1
With Worksheets("Feuil1").UsedRange
Set C = .Find(Cherche, LookIn:=xlValues, _
LookAt:=xlPart)
If Not C Is Nothing Then
Adr = C.Address
Do
A = A + 1
'Si tu veux effectuer le remplacement
'c.Replace Cherche, Repl
Set C = .FindNext(C)
Loop While C Is Nothing Or C.Address = Adr
End If
End With
MsgBox A & " remplacement(s) à été fait."
End Sub




"Gouap" a écrit dans le message de groupe de discussion :

Bonjour à tous,

Juste une petite question :

Existe-il un moyen de savoir le nombre de caractère que cette ligne à
remplacés ?

Cells.Replace What:="#", Replacement:=" "

Bonne fin de semaine à vous !
@+
Philippe
Avatar
michdenis
Correction : tu dois plutôt utiliser ceci :

'--------------------------------------------------
Sub Trouver_Compter_Remplacer()

Dim Adr As String, C As Range, A As Integer
Dim Cherche As String, Repl As String

Cherche = "#" 'chaîne cherchée
Repl = "" 'chaîne remplacée par ..


With Worksheets("Feuil1").UsedRange
Set C = .Find(Cherche, LookIn:=xlValues, _
lookat:=xlPart)
If Not C Is Nothing Then
Adr = C.Address
Do
A = A + Len(C.Value) - Len(Replace(C.Value, Cherche, Repl))
Set C = .FindNext(C)
Loop While C.Address <> Adr
End If
End With
MsgBox A & " remplacement(s) à été fait."
End Sub
'--------------------------------------------------
Avatar
FFO
Rebonjour à toi

Une adaptation de ma proposition aux nombres de modifications et non de
cellules modifiées :

Paramètre1 = InputBox("Veuillez saisir le paramètre à modifier", "Paramètre
à modifier")
Paramètre2 = InputBox("Veuillez saisir le paramètre de remplacement",
"Paramètre de remplacement")
Données = 0
For i = 1 To Cells.Count
On Error Resume Next
Données = Cells.Find(What:=Paramètre1, After:=Range("A1"),
LookIn:=xlValues, Lookat:=xlPart).Address
If Données <> 0 Then
n = n + UBound(Split(Range(Données), Paramètre1))
Range(Données) = Replace(Range(Données), Paramètre1, Paramètre2)
Données = 0
Else
Exit For
End If
Next
If n <> 0 Then
MsgBox (n & " Modification(s)")
Else
MsgBox ("Aucune cellule trouvée avec le Paramètre " & Paramètre1)
End If


Peut être mieux pour toi

Dis moi !!!!!
Avatar
FS
Bonjour,

> N'y a t il pas d'option a ajouter à ma ligne de code pour récupérer
> cette info ?

Je ne pense pas (non plus) et je ne vois pas (non plus) d'autre option
que de compter les dièses avant de les supprimer mais je te propose une
approche sans boucle (du moins, c'est Split qui s'en charge donc ça va
beaucoup plus vite que de le faire soi-même :) :

'======================== Sub essai()
Dim Num, S, x, Fich
Fich = "C:tempFich.txt"
ActiveSheet.Copy
ActiveWorkbook.SaveAs Fich, xlTextWindows
ActiveWorkbook.Close False
Num = FreeFile()
Open Fich For Input As #Num
x = FileLen(Fich)
S = Input(x, Num)
Close Num
Kill Fich
MsgBox UBound(Split(S, "#"))
End Sub
'========================
(la feuille où sont les # à remplacer est supposée être la feuille active)

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Gouap a écrit :
Merci de ta proposition, mais j'aurais souhaiter me servir de la commande
Excel qui anonce directement le nombre d'occurences remplacées après avoir
remplacer le caractère sur l'ensemble de la selection.

N'y a t il pas d'option a ajouter à ma ligne de code pour récupérer cette
info ?



"Tatanka" a écrit dans le message de news:

Bonjour,

Et si tu comptais le nombre de # avant de les remplacer ?
Exemples à adapter :

Sub Compter1()
For Each c In Selection
n = n + Application.Sum(Len(c) - Len(Replace(c, "#", "")))
Next c
MsgBox n
End Sub

Sub Compter2()
Set ici = Cells.SpecialCells(xlCellTypeConstants)
For Each c In ici
n = n + Application.Sum(Len(c) - Len(Replace(c, "#", "")))
Next c
MsgBox n
End Sub

Serge



"Gouap" a écrit dans le message de news:

Bonjour à tous,

Juste une petite question :

Existe-il un moyen de savoir le nombre de caractère que cette ligne à
remplacés ?

Cells.Replace What:="#", Replacement:=" "

Bonne fin de semaine à vous !
@+
Philippe










Avatar
Gouap
Salut FS,

Ton code est effectivement très rapide pour compter le nombre d'occurence
dans une feuille.

Merci.


"FS" a écrit dans le message de news:

Bonjour,

> N'y a t il pas d'option a ajouter à ma ligne de code pour récupérer
> cette info ?

Je ne pense pas (non plus) et je ne vois pas (non plus) d'autre option que
de compter les dièses avant de les supprimer mais je te propose une
approche sans boucle (du moins, c'est Split qui s'en charge donc ça va
beaucoup plus vite que de le faire soi-même :) :

'======================== > Sub essai()
Dim Num, S, x, Fich
Fich = "C:tempFich.txt"
ActiveSheet.Copy
ActiveWorkbook.SaveAs Fich, xlTextWindows
ActiveWorkbook.Close False
Num = FreeFile()
Open Fich For Input As #Num
x = FileLen(Fich)
S = Input(x, Num)
Close Num
Kill Fich
MsgBox UBound(Split(S, "#"))
End Sub
'======================== >
(la feuille où sont les # à remplacer est supposée être la feuille active)

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Gouap a écrit :
Merci de ta proposition, mais j'aurais souhaiter me servir de la commande
Excel qui anonce directement le nombre d'occurences remplacées après
avoir remplacer le caractère sur l'ensemble de la selection.

N'y a t il pas d'option a ajouter à ma ligne de code pour récupérer cette
info ?



"Tatanka" a écrit dans le message de news:

Bonjour,

Et si tu comptais le nombre de # avant de les remplacer ?
Exemples à adapter :

Sub Compter1()
For Each c In Selection
n = n + Application.Sum(Len(c) - Len(Replace(c, "#", "")))
Next c
MsgBox n
End Sub

Sub Compter2()
Set ici = Cells.SpecialCells(xlCellTypeConstants)
For Each c In ici
n = n + Application.Sum(Len(c) - Len(Replace(c, "#", "")))
Next c
MsgBox n
End Sub

Serge



"Gouap" a écrit dans le message de news:

Bonjour à tous,

Juste une petite question :

Existe-il un moyen de savoir le nombre de caractère que cette ligne à
remplacés ?

Cells.Replace What:="#", Replacement:=" "

Bonne fin de semaine à vous !
@+
Philippe











Avatar
Gouap
Merci pour ta proposition, mais je n'arrive pas à la faire tourner chez moi
!
J'obtiens en effet toujours 0 occurence trouvées.
@+
Philippe

"michdenis" a écrit dans le message de news:

Correction : tu dois plutôt utiliser ceci :

'--------------------------------------------------
Sub Trouver_Compter_Remplacer()

Dim Adr As String, C As Range, A As Integer
Dim Cherche As String, Repl As String

Cherche = "#" 'chaîne cherchée
Repl = "" 'chaîne remplacée par ..


With Worksheets("Feuil1").UsedRange
Set C = .Find(Cherche, LookIn:=xlValues, _
lookat:=xlPart)
If Not C Is Nothing Then
Adr = C.Address
Do
A = A + Len(C.Value) - Len(Replace(C.Value, Cherche, Repl))
Set C = .FindNext(C)
Loop While C.Address <> Adr
End If
End With
MsgBox A & " remplacement(s) à été fait."
End Sub
'--------------------------------------------------






1 2