j'ai cette macro qui effectue une recherche de chaine de caractères à
l'aide d'un userform.
mais dans mon tableau j'ai de temps en temps la même valeur sur la même
ligne et là ma macro me compte 2(normal):je voudrai qu'elle ne compte que 1.
les occurences recherchées sont en colonnesfusionnées D/E et I/J
merci de vos réponses
Sub Recherche()
Dim Fe As Worksheet
Dim Plg As Range
Dim Cel As Range
Dim Adr As String
Dim I As Integer
Dim Chaine As String
Chaine = UserForm3.TextBox1.Value
For Each Fe In Worksheets
With Fe
Set Plg = .UsedRange
End With
Set Cel = Plg.Find(Chaine, , xlValues)
If Not Cel Is Nothing Then
Adr = Cel.Address
Do
I = I + 1
Set Cel = Plg.FindNext(Cel)
Loop While Cel.Address <> Adr
End If
Next Fe
UserForm3.TextBox2.Value = I
Set Cel = Nothing
Set Plg = Nothing
Set Fe = Nothing
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel
Bonjour. Si j'ai bien compris, remplace : I = I + 1 par :
Dim Resligne As Integer
If Resligne <> Cel.Row Then I = I + 1 Resligne = Cel.Row End If
Cordialement. Daniel "Pierre52" a écrit dans le message de news: %
salut à toutes et tous,
j'ai cette macro qui effectue une recherche de chaine de caractères à l'aide d'un userform.
mais dans mon tableau j'ai de temps en temps la même valeur sur la même ligne et là ma macro me compte 2(normal):je voudrai qu'elle ne compte que 1.
les occurences recherchées sont en colonnesfusionnées D/E et I/J
merci de vos réponses
Sub Recherche() Dim Fe As Worksheet Dim Plg As Range Dim Cel As Range Dim Adr As String Dim I As Integer Dim Chaine As String Chaine = UserForm3.TextBox1.Value For Each Fe In Worksheets With Fe Set Plg = .UsedRange End With Set Cel = Plg.Find(Chaine, , xlValues) If Not Cel Is Nothing Then Adr = Cel.Address Do I = I + 1 Set Cel = Plg.FindNext(Cel) Loop While Cel.Address <> Adr End If Next Fe UserForm3.TextBox2.Value = I Set Cel = Nothing Set Plg = Nothing Set Fe = Nothing End Sub
Bonjour.
Si j'ai bien compris, remplace :
I = I + 1
par :
Dim Resligne As Integer
If Resligne <> Cel.Row Then
I = I + 1
Resligne = Cel.Row
End If
Cordialement.
Daniel
"Pierre52" <pierre52@tiscali.fr> a écrit dans le message de news:
%23klOQsLzFHA.2424@TK2MSFTNGP12.phx.gbl...
salut à toutes et tous,
j'ai cette macro qui effectue une recherche de chaine de caractères à
l'aide d'un userform.
mais dans mon tableau j'ai de temps en temps la même valeur sur la même
ligne et là ma macro me compte 2(normal):je voudrai qu'elle ne compte que
1.
les occurences recherchées sont en colonnesfusionnées D/E et I/J
merci de vos réponses
Sub Recherche()
Dim Fe As Worksheet
Dim Plg As Range
Dim Cel As Range
Dim Adr As String
Dim I As Integer
Dim Chaine As String
Chaine = UserForm3.TextBox1.Value
For Each Fe In Worksheets
With Fe
Set Plg = .UsedRange
End With
Set Cel = Plg.Find(Chaine, , xlValues)
If Not Cel Is Nothing Then
Adr = Cel.Address
Do
I = I + 1
Set Cel = Plg.FindNext(Cel)
Loop While Cel.Address <> Adr
End If
Next Fe
UserForm3.TextBox2.Value = I
Set Cel = Nothing
Set Plg = Nothing
Set Fe = Nothing
End Sub
Bonjour. Si j'ai bien compris, remplace : I = I + 1 par :
Dim Resligne As Integer
If Resligne <> Cel.Row Then I = I + 1 Resligne = Cel.Row End If
Cordialement. Daniel "Pierre52" a écrit dans le message de news: %
salut à toutes et tous,
j'ai cette macro qui effectue une recherche de chaine de caractères à l'aide d'un userform.
mais dans mon tableau j'ai de temps en temps la même valeur sur la même ligne et là ma macro me compte 2(normal):je voudrai qu'elle ne compte que 1.
les occurences recherchées sont en colonnesfusionnées D/E et I/J
merci de vos réponses
Sub Recherche() Dim Fe As Worksheet Dim Plg As Range Dim Cel As Range Dim Adr As String Dim I As Integer Dim Chaine As String Chaine = UserForm3.TextBox1.Value For Each Fe In Worksheets With Fe Set Plg = .UsedRange End With Set Cel = Plg.Find(Chaine, , xlValues) If Not Cel Is Nothing Then Adr = Cel.Address Do I = I + 1 Set Cel = Plg.FindNext(Cel) Loop While Cel.Address <> Adr End If Next Fe UserForm3.TextBox2.Value = I Set Cel = Nothing Set Plg = Nothing Set Fe = Nothing End Sub
Pierre52
merci beaucoup cela fonctionne mais je voudrais savoir pourquoi mon post se retrouve là car j'ai voulu ouvrir un nouveau fil
Bonjour. Si j'ai bien compris, remplace : I = I + 1 par :
Dim Resligne As Integer
If Resligne <> Cel.Row Then I = I + 1 Resligne = Cel.Row End If
Cordialement. Daniel "Pierre52" a écrit dans le message de news: %
salut à toutes et tous,
j'ai cette macro qui effectue une recherche de chaine de caractères à l'aide d'un userform.
mais dans mon tableau j'ai de temps en temps la même valeur sur la même ligne et là ma macro me compte 2(normal):je voudrai qu'elle ne compte que 1.
les occurences recherchées sont en colonnesfusionnées D/E et I/J
merci de vos réponses
Sub Recherche() Dim Fe As Worksheet Dim Plg As Range Dim Cel As Range Dim Adr As String Dim I As Integer Dim Chaine As String Chaine = UserForm3.TextBox1.Value For Each Fe In Worksheets With Fe Set Plg = .UsedRange End With Set Cel = Plg.Find(Chaine, , xlValues) If Not Cel Is Nothing Then Adr = Cel.Address Do I = I + 1 Set Cel = Plg.FindNext(Cel) Loop While Cel.Address <> Adr End If Next Fe UserForm3.TextBox2.Value = I Set Cel = Nothing Set Plg = Nothing Set Fe = Nothing End Sub
merci beaucoup cela fonctionne
mais je voudrais savoir pourquoi mon post se retrouve là car j'ai voulu
ouvrir un nouveau fil
Bonjour.
Si j'ai bien compris, remplace :
I = I + 1
par :
Dim Resligne As Integer
If Resligne <> Cel.Row Then
I = I + 1
Resligne = Cel.Row
End If
Cordialement.
Daniel
"Pierre52" <pierre52@tiscali.fr> a écrit dans le message de news:
%23klOQsLzFHA.2424@TK2MSFTNGP12.phx.gbl...
salut à toutes et tous,
j'ai cette macro qui effectue une recherche de chaine de caractères à
l'aide d'un userform.
mais dans mon tableau j'ai de temps en temps la même valeur sur la même
ligne et là ma macro me compte 2(normal):je voudrai qu'elle ne compte que
1.
les occurences recherchées sont en colonnesfusionnées D/E et I/J
merci de vos réponses
Sub Recherche()
Dim Fe As Worksheet
Dim Plg As Range
Dim Cel As Range
Dim Adr As String
Dim I As Integer
Dim Chaine As String
Chaine = UserForm3.TextBox1.Value
For Each Fe In Worksheets
With Fe
Set Plg = .UsedRange
End With
Set Cel = Plg.Find(Chaine, , xlValues)
If Not Cel Is Nothing Then
Adr = Cel.Address
Do
I = I + 1
Set Cel = Plg.FindNext(Cel)
Loop While Cel.Address <> Adr
End If
Next Fe
UserForm3.TextBox2.Value = I
Set Cel = Nothing
Set Plg = Nothing
Set Fe = Nothing
End Sub
merci beaucoup cela fonctionne mais je voudrais savoir pourquoi mon post se retrouve là car j'ai voulu ouvrir un nouveau fil
Bonjour. Si j'ai bien compris, remplace : I = I + 1 par :
Dim Resligne As Integer
If Resligne <> Cel.Row Then I = I + 1 Resligne = Cel.Row End If
Cordialement. Daniel "Pierre52" a écrit dans le message de news: %
salut à toutes et tous,
j'ai cette macro qui effectue une recherche de chaine de caractères à l'aide d'un userform.
mais dans mon tableau j'ai de temps en temps la même valeur sur la même ligne et là ma macro me compte 2(normal):je voudrai qu'elle ne compte que 1.
les occurences recherchées sont en colonnesfusionnées D/E et I/J
merci de vos réponses
Sub Recherche() Dim Fe As Worksheet Dim Plg As Range Dim Cel As Range Dim Adr As String Dim I As Integer Dim Chaine As String Chaine = UserForm3.TextBox1.Value For Each Fe In Worksheets With Fe Set Plg = .UsedRange End With Set Cel = Plg.Find(Chaine, , xlValues) If Not Cel Is Nothing Then Adr = Cel.Address Do I = I + 1 Set Cel = Plg.FindNext(Cel) Loop While Cel.Address <> Adr End If Next Fe UserForm3.TextBox2.Value = I Set Cel = Nothing Set Plg = Nothing Set Fe = Nothing End Sub