j'aurais besoin d'une explication sur un bout de code
j'aurais besoin d'effectuer une recherche sur toutes les feuilles d'un
classeur.
j'avais dans une autre macro, un bout de code que je comptais
réutiliser
....
With Workbooks(i & ".htm").Worksheets(1).Cells
Set c = .Find(what:="Libellé", After:=ActiveCell,
LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _
MatchCase:=False)
If Not c Is Nothing Then
Range(c.Address).Activate
ActiveCell.Offset(1, 0).Activate
.....
mais on est obligé de passer en parametre l'indice de la feuille ???
ca veut dire qu'il faut que je compte toutes les feuilles avant de
lancer la recherche ?
Sub chercheFindMultiFeuillesValeur() x = "ABCD" For Each s In ActiveWorkbook.Sheets With Sheets(s.Name).Cells Set c = .Find(x, LookIn:=xlValues) If Not c Is Nothing Then premier = c.Address Do c.Interior.ColorIndex = 4 Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> premier End If End With Next s End Sub
ou
x = "ABCD" For Each s In Array("Feuil1", "Feuil2") With Sheets(s).Cells Set c = .Find(x, LookIn:=xlValues) If Not c Is Nothing Then premier = c.Address Do c.Interior.ColorIndex = 4 Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> premier End If End With Next s End
JB
On 15 jan, 08:52, penelope wrote:
bonjour
j'aurais besoin d'une explication sur un bout de code
j'aurais besoin d'effectuer une recherche sur toutes les feuilles d'un classeur.
j'avais dans une autre macro, un bout de code que je comptais réutiliser
.... With Workbooks(i & ".htm").Worksheets(1).Cells Set c = .Find(what:="Libellé", After:¬tiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse) If Not c Is Nothing Then Range(c.Address).Activate ActiveCell.Offset(1, 0).Activate .....
mais on est obligé de passer en parametre l'indice de la feuille ???
ca veut dire qu'il faut que je compte toutes les feuilles avant de lancer la recherche ?
Merci
Bonjour,
Exemples de recherche multi-feuilles:
Sub chercheFindMultiFeuillesValeur()
x = "ABCD"
For Each s In ActiveWorkbook.Sheets
With Sheets(s.Name).Cells
Set c = .Find(x, LookIn:=xlValues)
If Not c Is Nothing Then
premier = c.Address
Do
c.Interior.ColorIndex = 4
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> premier
End If
End With
Next s
End Sub
ou
x = "ABCD"
For Each s In Array("Feuil1", "Feuil2")
With Sheets(s).Cells
Set c = .Find(x, LookIn:=xlValues)
If Not c Is Nothing Then
premier = c.Address
Do
c.Interior.ColorIndex = 4
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> premier
End If
End With
Next s
End
JB
On 15 jan, 08:52, penelope wrote:
bonjour
j'aurais besoin d'une explication sur un bout de code
j'aurais besoin d'effectuer une recherche sur toutes les feuilles d'un
classeur.
j'avais dans une autre macro, un bout de code que je comptais
réutiliser
....
With Workbooks(i & ".htm").Worksheets(1).Cells
Set c = .Find(what:="Libellé", After:=ActiveCell,
LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _
MatchCase:=False)
If Not c Is Nothing Then
Range(c.Address).Activate
ActiveCell.Offset(1, 0).Activate
.....
mais on est obligé de passer en parametre l'indice de la feuille ???
ca veut dire qu'il faut que je compte toutes les feuilles avant de
lancer la recherche ?
Sub chercheFindMultiFeuillesValeur() x = "ABCD" For Each s In ActiveWorkbook.Sheets With Sheets(s.Name).Cells Set c = .Find(x, LookIn:=xlValues) If Not c Is Nothing Then premier = c.Address Do c.Interior.ColorIndex = 4 Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> premier End If End With Next s End Sub
ou
x = "ABCD" For Each s In Array("Feuil1", "Feuil2") With Sheets(s).Cells Set c = .Find(x, LookIn:=xlValues) If Not c Is Nothing Then premier = c.Address Do c.Interior.ColorIndex = 4 Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> premier End If End With Next s End
JB
On 15 jan, 08:52, penelope wrote:
bonjour
j'aurais besoin d'une explication sur un bout de code
j'aurais besoin d'effectuer une recherche sur toutes les feuilles d'un classeur.
j'avais dans une autre macro, un bout de code que je comptais réutiliser
.... With Workbooks(i & ".htm").Worksheets(1).Cells Set c = .Find(what:="Libellé", After:¬tiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse) If Not c Is Nothing Then Range(c.Address).Activate ActiveCell.Offset(1, 0).Activate .....
mais on est obligé de passer en parametre l'indice de la feuille ???
ca veut dire qu'il faut que je compte toutes les feuilles avant de lancer la recherche ?
Merci
FFO
Salut penelope
Pour éviter de compter toutes les feuilles pour déterminer l'indice de l'onglet qui t'interresse tu peux mettre en préambule ce bout de code :
For j = 1 To Workbooks(i & ".htm").Sheets.Count If Sheets(j).Name = "Nom" Then Indice = j Exit For End If Next
Puis de corriger ta ligne :
With Workbooks(i & ".htm").Worksheets(Indice).Cells
Celà devrait faire
Dis moi !!!
bonjour
j'aurais besoin d'une explication sur un bout de code
j'aurais besoin d'effectuer une recherche sur toutes les feuilles d'un classeur.
j'avais dans une autre macro, un bout de code que je comptais réutiliser
..... With Workbooks(i & ".htm").Worksheets(1).Cells Set c = .Find(what:="Libellé", After:¬tiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse) If Not c Is Nothing Then Range(c.Address).Activate ActiveCell.Offset(1, 0).Activate ......
mais on est obligé de passer en parametre l'indice de la feuille ???
ca veut dire qu'il faut que je compte toutes les feuilles avant de lancer la recherche ?
Merci
Salut penelope
Pour éviter de compter toutes les feuilles pour déterminer l'indice de
l'onglet qui t'interresse tu peux mettre en préambule ce bout de code :
For j = 1 To Workbooks(i & ".htm").Sheets.Count
If Sheets(j).Name = "Nom" Then
Indice = j
Exit For
End If
Next
Puis de corriger ta ligne :
With Workbooks(i & ".htm").Worksheets(Indice).Cells
Celà devrait faire
Dis moi !!!
bonjour
j'aurais besoin d'une explication sur un bout de code
j'aurais besoin d'effectuer une recherche sur toutes les feuilles d'un
classeur.
j'avais dans une autre macro, un bout de code que je comptais
réutiliser
.....
With Workbooks(i & ".htm").Worksheets(1).Cells
Set c = .Find(what:="Libellé", After:¬tiveCell,
LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _
MatchCase:úlse)
If Not c Is Nothing Then
Range(c.Address).Activate
ActiveCell.Offset(1, 0).Activate
......
mais on est obligé de passer en parametre l'indice de la feuille ???
ca veut dire qu'il faut que je compte toutes les feuilles avant de
lancer la recherche ?
Pour éviter de compter toutes les feuilles pour déterminer l'indice de l'onglet qui t'interresse tu peux mettre en préambule ce bout de code :
For j = 1 To Workbooks(i & ".htm").Sheets.Count If Sheets(j).Name = "Nom" Then Indice = j Exit For End If Next
Puis de corriger ta ligne :
With Workbooks(i & ".htm").Worksheets(Indice).Cells
Celà devrait faire
Dis moi !!!
bonjour
j'aurais besoin d'une explication sur un bout de code
j'aurais besoin d'effectuer une recherche sur toutes les feuilles d'un classeur.
j'avais dans une autre macro, un bout de code que je comptais réutiliser
..... With Workbooks(i & ".htm").Worksheets(1).Cells Set c = .Find(what:="Libellé", After:¬tiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse) If Not c Is Nothing Then Range(c.Address).Activate ActiveCell.Offset(1, 0).Activate ......
mais on est obligé de passer en parametre l'indice de la feuille ???
ca veut dire qu'il faut que je compte toutes les feuilles avant de lancer la recherche ?
Merci
Ellimac
Bonjour,
Le code suivante entre la valeur 1 en A1 de toutes les feuilles :
Sub Toto() For cpt = 1 To Sheets.Count Sheets(cpt).Range("a1") = 1 Next End Sub
Camille
bonjour
j'aurais besoin d'une explication sur un bout de code
j'aurais besoin d'effectuer une recherche sur toutes les feuilles d'un classeur.
j'avais dans une autre macro, un bout de code que je comptais réutiliser
..... With Workbooks(i & ".htm").Worksheets(1).Cells Set c = .Find(what:="Libellé", After:¬tiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse) If Not c Is Nothing Then Range(c.Address).Activate ActiveCell.Offset(1, 0).Activate ......
mais on est obligé de passer en parametre l'indice de la feuille ???
ca veut dire qu'il faut que je compte toutes les feuilles avant de lancer la recherche ?
Merci
Bonjour,
Le code suivante entre la valeur 1 en A1 de toutes les feuilles :
Sub Toto()
For cpt = 1 To Sheets.Count
Sheets(cpt).Range("a1") = 1
Next
End Sub
Camille
bonjour
j'aurais besoin d'une explication sur un bout de code
j'aurais besoin d'effectuer une recherche sur toutes les feuilles d'un
classeur.
j'avais dans une autre macro, un bout de code que je comptais
réutiliser
.....
With Workbooks(i & ".htm").Worksheets(1).Cells
Set c = .Find(what:="Libellé", After:¬tiveCell,
LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _
MatchCase:úlse)
If Not c Is Nothing Then
Range(c.Address).Activate
ActiveCell.Offset(1, 0).Activate
......
mais on est obligé de passer en parametre l'indice de la feuille ???
ca veut dire qu'il faut que je compte toutes les feuilles avant de
lancer la recherche ?
Le code suivante entre la valeur 1 en A1 de toutes les feuilles :
Sub Toto() For cpt = 1 To Sheets.Count Sheets(cpt).Range("a1") = 1 Next End Sub
Camille
bonjour
j'aurais besoin d'une explication sur un bout de code
j'aurais besoin d'effectuer une recherche sur toutes les feuilles d'un classeur.
j'avais dans une autre macro, un bout de code que je comptais réutiliser
..... With Workbooks(i & ".htm").Worksheets(1).Cells Set c = .Find(what:="Libellé", After:¬tiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse) If Not c Is Nothing Then Range(c.Address).Activate ActiveCell.Offset(1, 0).Activate ......
mais on est obligé de passer en parametre l'indice de la feuille ???
ca veut dire qu'il faut que je compte toutes les feuilles avant de lancer la recherche ?
Merci
papou
Bonjour Non, tu n'auras pas à compter tes feuilles. Modifie comme ceci :
Dim Nbf As Integer For Nbf = 1 To Workbooks(i & ".htm").Sheets.Count With Workbooks("i & ".htm"").Worksheets(Nbf).Cells Set c = .Find(what:="Libellé", After:¬tiveCell, _ LookIn:=xlFormulas, LookAt:=xlPart, _ SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse) End With If Not c Is Nothing Then '.....etc etc... End If Next Nbf
Par contre petite remarque pour la suite du code( ...etc etc...) : tu devrais éviter la sélection de cellules. Ca sera d'autant plus délicat que tu dois parcourir toutes tes feuilles, alors attention aussi à bien désigner la feuille sur laquelle tu vas effectuer des opérations.
Cordialement Pascal
<penelope> a écrit dans le message de news:
bonjour
j'aurais besoin d'une explication sur un bout de code
j'aurais besoin d'effectuer une recherche sur toutes les feuilles d'un classeur.
j'avais dans une autre macro, un bout de code que je comptais réutiliser
.... With Workbooks(i & ".htm").Worksheets(1).Cells Set c = .Find(what:="Libellé", After:¬tiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse) If Not c Is Nothing Then Range(c.Address).Activate ActiveCell.Offset(1, 0).Activate .....
mais on est obligé de passer en parametre l'indice de la feuille ???
ca veut dire qu'il faut que je compte toutes les feuilles avant de lancer la recherche ?
Merci
Bonjour
Non, tu n'auras pas à compter tes feuilles.
Modifie comme ceci :
Dim Nbf As Integer
For Nbf = 1 To Workbooks(i & ".htm").Sheets.Count
With Workbooks("i & ".htm"").Worksheets(Nbf).Cells
Set c = .Find(what:="Libellé", After:¬tiveCell, _
LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse)
End With
If Not c Is Nothing Then
'.....etc etc...
End If
Next Nbf
Par contre petite remarque pour la suite du code( ...etc etc...) : tu
devrais éviter la sélection de cellules.
Ca sera d'autant plus délicat que tu dois parcourir toutes tes feuilles,
alors attention aussi à bien désigner la feuille sur laquelle tu vas
effectuer des opérations.
Cordialement
Pascal
<penelope> a écrit dans le message de news:
g6poo39e35vn5iam6hfk0ha7i44u3rr42p@4ax.com...
bonjour
j'aurais besoin d'une explication sur un bout de code
j'aurais besoin d'effectuer une recherche sur toutes les feuilles d'un
classeur.
j'avais dans une autre macro, un bout de code que je comptais
réutiliser
....
With Workbooks(i & ".htm").Worksheets(1).Cells
Set c = .Find(what:="Libellé", After:¬tiveCell,
LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _
MatchCase:úlse)
If Not c Is Nothing Then
Range(c.Address).Activate
ActiveCell.Offset(1, 0).Activate
.....
mais on est obligé de passer en parametre l'indice de la feuille ???
ca veut dire qu'il faut que je compte toutes les feuilles avant de
lancer la recherche ?
Bonjour Non, tu n'auras pas à compter tes feuilles. Modifie comme ceci :
Dim Nbf As Integer For Nbf = 1 To Workbooks(i & ".htm").Sheets.Count With Workbooks("i & ".htm"").Worksheets(Nbf).Cells Set c = .Find(what:="Libellé", After:¬tiveCell, _ LookIn:=xlFormulas, LookAt:=xlPart, _ SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse) End With If Not c Is Nothing Then '.....etc etc... End If Next Nbf
Par contre petite remarque pour la suite du code( ...etc etc...) : tu devrais éviter la sélection de cellules. Ca sera d'autant plus délicat que tu dois parcourir toutes tes feuilles, alors attention aussi à bien désigner la feuille sur laquelle tu vas effectuer des opérations.
Cordialement Pascal
<penelope> a écrit dans le message de news:
bonjour
j'aurais besoin d'une explication sur un bout de code
j'aurais besoin d'effectuer une recherche sur toutes les feuilles d'un classeur.
j'avais dans une autre macro, un bout de code que je comptais réutiliser
.... With Workbooks(i & ".htm").Worksheets(1).Cells Set c = .Find(what:="Libellé", After:¬tiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse) If Not c Is Nothing Then Range(c.Address).Activate ActiveCell.Offset(1, 0).Activate .....
mais on est obligé de passer en parametre l'indice de la feuille ???
ca veut dire qu'il faut que je compte toutes les feuilles avant de lancer la recherche ?
Merci
FFO
Rebonjour penelope
en relisant ta demande tu souhaites peut être traiter toutes les feuilles
Je te propose dans cette perspective de modifier ton code ainsi :
For j = 1 To Workbooks(i & ".htm").Sheets.Count With Workbooks(i & ".htm").Worksheets(j).Cells Set c = .Find(what:="Libellé", After:¬tiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse) If Not c Is Nothing Then Range(c.Address).Activate ActiveCell.Offset(1, 0).Activate Next
Celà devrait faire
Dis moi !!!!
bonjour
j'aurais besoin d'une explication sur un bout de code
j'aurais besoin d'effectuer une recherche sur toutes les feuilles d'un classeur.
j'avais dans une autre macro, un bout de code que je comptais réutiliser
..... With Workbooks(i & ".htm").Worksheets(1).Cells Set c = .Find(what:="Libellé", After:¬tiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse) If Not c Is Nothing Then Range(c.Address).Activate ActiveCell.Offset(1, 0).Activate ......
mais on est obligé de passer en parametre l'indice de la feuille ???
ca veut dire qu'il faut que je compte toutes les feuilles avant de lancer la recherche ?
Merci
Rebonjour penelope
en relisant ta demande tu souhaites peut être traiter toutes les feuilles
Je te propose dans cette perspective de modifier ton code ainsi :
For j = 1 To Workbooks(i & ".htm").Sheets.Count
With Workbooks(i & ".htm").Worksheets(j).Cells
Set c = .Find(what:="Libellé", After:¬tiveCell,
LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _
MatchCase:úlse)
If Not c Is Nothing Then
Range(c.Address).Activate
ActiveCell.Offset(1, 0).Activate
Next
Celà devrait faire
Dis moi !!!!
bonjour
j'aurais besoin d'une explication sur un bout de code
j'aurais besoin d'effectuer une recherche sur toutes les feuilles d'un
classeur.
j'avais dans une autre macro, un bout de code que je comptais
réutiliser
.....
With Workbooks(i & ".htm").Worksheets(1).Cells
Set c = .Find(what:="Libellé", After:¬tiveCell,
LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _
MatchCase:úlse)
If Not c Is Nothing Then
Range(c.Address).Activate
ActiveCell.Offset(1, 0).Activate
......
mais on est obligé de passer en parametre l'indice de la feuille ???
ca veut dire qu'il faut que je compte toutes les feuilles avant de
lancer la recherche ?
en relisant ta demande tu souhaites peut être traiter toutes les feuilles
Je te propose dans cette perspective de modifier ton code ainsi :
For j = 1 To Workbooks(i & ".htm").Sheets.Count With Workbooks(i & ".htm").Worksheets(j).Cells Set c = .Find(what:="Libellé", After:¬tiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse) If Not c Is Nothing Then Range(c.Address).Activate ActiveCell.Offset(1, 0).Activate Next
Celà devrait faire
Dis moi !!!!
bonjour
j'aurais besoin d'une explication sur un bout de code
j'aurais besoin d'effectuer une recherche sur toutes les feuilles d'un classeur.
j'avais dans une autre macro, un bout de code que je comptais réutiliser
..... With Workbooks(i & ".htm").Worksheets(1).Cells Set c = .Find(what:="Libellé", After:¬tiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse) If Not c Is Nothing Then Range(c.Address).Activate ActiveCell.Offset(1, 0).Activate ......
mais on est obligé de passer en parametre l'indice de la feuille ???
ca veut dire qu'il faut que je compte toutes les feuilles avant de lancer la recherche ?