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
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" <Gouap@free.fr> a écrit dans le message de news: e0hWkLmpKHA.1548@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Juste une petite question :
Existe-il un moyen de savoir le nombre de caractère que cette ligne à remplacés ?
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
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
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" <garnote3ENLEVER@videotron.ca> a écrit dans le message de news:
eDSUd8mpKHA.2076@TK2MSFTNGP05.phx.gbl...
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" <Gouap@free.fr> a écrit dans le message de news:
e0hWkLmpKHA.1548@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Juste une petite question :
Existe-il un moyen de savoir le nombre de caractère que cette ligne à
remplacés ?
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
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
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" <garnote3ENLEVER@videotron.ca> a écrit dans le message de news:
eDSUd8mpKHA.2076@TK2MSFTNGP05.phx.gbl...
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" <Gouap@free.fr> a écrit dans le message de news:
e0hWkLmpKHA.1548@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Juste une petite question :
Existe-il un moyen de savoir le nombre de caractère que cette ligne à
remplacés ?
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
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 !!!!!
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
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
Bonjour,
Sub Trouver_Compter_Remplacer()
Dim Adr As String, C As Range, A As Integer Dim Cherche As String, Repl As String
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
Bonjour,
Sub Trouver_Compter_Remplacer()
Dim Adr As String, C As Range, A As Integer
Dim Cherche As String, Repl As String
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" <Gouap@free.fr> a écrit dans le message de groupe de discussion :
e0hWkLmpKHA.1548@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Juste une petite question :
Existe-il un moyen de savoir le nombre de caractère que cette ligne à
remplacés ?
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
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
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 '--------------------------------------------------
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
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
'--------------------------------------------------
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
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 !!!!!
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
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
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
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" <garnote3ENLEVER@videotron.ca> a écrit dans le message de news:
eDSUd8mpKHA.2076@TK2MSFTNGP05.phx.gbl...
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" <Gouap@free.fr> a écrit dans le message de news:
e0hWkLmpKHA.1548@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Juste une petite question :
Existe-il un moyen de savoir le nombre de caractère que cette ligne à
remplacés ?
> 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
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
Salut FS,
Ton code est effectivement très rapide pour compter le nombre d'occurence
dans une feuille.
Merci.
"FS" <fs@news.group> a écrit dans le message de news:
eaf29q0pKHA.4336@TK2MSFTNGP02.phx.gbl...
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" <garnote3ENLEVER@videotron.ca> a écrit dans le message de news:
eDSUd8mpKHA.2076@TK2MSFTNGP05.phx.gbl...
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" <Gouap@free.fr> a écrit dans le message de news:
e0hWkLmpKHA.1548@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Juste une petite question :
Existe-il un moyen de savoir le nombre de caractère que cette ligne à
remplacés ?
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
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
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 '--------------------------------------------------
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" <michdenis@hotmail.com> a écrit dans le message de news:
59F6C2C5-AD20-44E6-B022-51ED1F9C0A00@microsoft.com...
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
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
'--------------------------------------------------
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 '--------------------------------------------------