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

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Tatanka
Le #21136341
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"
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



Gouap
Le #21136591
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"
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"
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







Daniel.C
Le #21136631
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"
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"
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









FFO
Le #21136681
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 !!!!!
michdenis
Le #21136781
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"
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
michdenis
Le #21137011
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
'--------------------------------------------------
FFO
Le #21136991
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 !!!!!
FS
Le #21143501
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"
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"
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










Gouap
Le #21148901
Salut FS,

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

Merci.


"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"
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"
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











Gouap
Le #21151121
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"
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
'--------------------------------------------------






Publicité
Poster une réponse
Anonyme