Une macro recherchant une chaîne de caractères dans
les cellules d'une colonne fonctionne très bien :
.../...
' T est une liste de mots à identifier
'W1() est un variant
W1 = Split(T & Sep, Sep)
k = UBound(W1, 1) - 1
.../...
With ObjetRangeMaColonne
For i = 0 To k
If W1(i) > "" Then
Set Z = .Find(what:=W1(i), lookAt:=xlWhole, After:=.Rows(1),
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, LookIn:=xlValues,
MatchCase:=False, SearchFormat:=False)
If Not Z Is Nothing Then
h = h + 1
j = Z.Row
.../...
If h = 1 Then W3 = W1(i) Else W3 = W3 & Sep & W1(i)
Else
R = True
End If
End If
Next i
End With
.../...
' T devient la liste des mots identifiés
T=W3
Mais si je masque ObjetRangeMaColonne
dans le tableur, cette macro ne reconnait plus
rien alors que d'autres valeurs avec .value sont
parfaitement lues dans d'autres colonnes
cachées.
Bug avec .Find dans ce contexte?
Origine ?
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
isabelle
bonjour Michel,
j'ai fait le test suivant et je n'ai pas eu ce problème,
Sub Macro1() Dim ObjetRangeMaColonne As Range Set ObjetRangeMaColonne = Columns("A:A") ObjetRangeMaColonne.EntireColumn.Hidden = True With ObjetRangeMaColonne Set z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1)) End With If Not z Is Nothing Then MsgBox z.Address End Sub
as tu vérifié la valeur de W1(i) ?
isabelle
Bonjour
Une macro recherchant une chaîne de caractères dans les cellules d'une colonne fonctionne très bien : .../... ' T est une liste de mots à identifier 'W1() est un variant W1 = Split(T & Sep, Sep) k = UBound(W1, 1) - 1 .../... With ObjetRangeMaColonne For i = 0 To k If W1(i) > "" Then Set Z = .Find(what:=W1(i), lookAt:=xlWhole, After:=.Rows(1), SearchOrder:=xlByColumns, _ SearchDirection:=xlNext, LookIn:=xlValues, MatchCase:úlse, SearchFormat:úlse) If Not Z Is Nothing Then h = h + 1 j = Z.Row .../... If h = 1 Then W3 = W1(i) Else W3 = W3 & Sep & W1(i) Else R = True End If End If Next i End With .../... ' T devient la liste des mots identifiés T=W3
Mais si je masque ObjetRangeMaColonne dans le tableur, cette macro ne reconnait plus rien alors que d'autres valeurs avec .value sont parfaitement lues dans d'autres colonnes cachées. Bug avec .Find dans ce contexte? Origine ?
Merci.@+
bonjour Michel,
j'ai fait le test suivant et je n'ai pas eu ce problème,
Sub Macro1()
Dim ObjetRangeMaColonne As Range
Set ObjetRangeMaColonne = Columns("A:A")
ObjetRangeMaColonne.EntireColumn.Hidden = True
With ObjetRangeMaColonne
Set z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1))
End With
If Not z Is Nothing Then MsgBox z.Address
End Sub
as tu vérifié la valeur de W1(i) ?
isabelle
Bonjour
Une macro recherchant une chaîne de caractères dans
les cellules d'une colonne fonctionne très bien :
.../...
' T est une liste de mots à identifier
'W1() est un variant
W1 = Split(T & Sep, Sep)
k = UBound(W1, 1) - 1
.../...
With ObjetRangeMaColonne
For i = 0 To k
If W1(i) > "" Then
Set Z = .Find(what:=W1(i), lookAt:=xlWhole, After:=.Rows(1),
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, LookIn:=xlValues,
MatchCase:úlse, SearchFormat:úlse)
If Not Z Is Nothing Then
h = h + 1
j = Z.Row
.../...
If h = 1 Then W3 = W1(i) Else W3 = W3 & Sep & W1(i)
Else
R = True
End If
End If
Next i
End With
.../...
' T devient la liste des mots identifiés
T=W3
Mais si je masque ObjetRangeMaColonne
dans le tableur, cette macro ne reconnait plus
rien alors que d'autres valeurs avec .value sont
parfaitement lues dans d'autres colonnes
cachées.
Bug avec .Find dans ce contexte?
Origine ?
j'ai fait le test suivant et je n'ai pas eu ce problème,
Sub Macro1() Dim ObjetRangeMaColonne As Range Set ObjetRangeMaColonne = Columns("A:A") ObjetRangeMaColonne.EntireColumn.Hidden = True With ObjetRangeMaColonne Set z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1)) End With If Not z Is Nothing Then MsgBox z.Address End Sub
as tu vérifié la valeur de W1(i) ?
isabelle
Bonjour
Une macro recherchant une chaîne de caractères dans les cellules d'une colonne fonctionne très bien : .../... ' T est une liste de mots à identifier 'W1() est un variant W1 = Split(T & Sep, Sep) k = UBound(W1, 1) - 1 .../... With ObjetRangeMaColonne For i = 0 To k If W1(i) > "" Then Set Z = .Find(what:=W1(i), lookAt:=xlWhole, After:=.Rows(1), SearchOrder:=xlByColumns, _ SearchDirection:=xlNext, LookIn:=xlValues, MatchCase:úlse, SearchFormat:úlse) If Not Z Is Nothing Then h = h + 1 j = Z.Row .../... If h = 1 Then W3 = W1(i) Else W3 = W3 & Sep & W1(i) Else R = True End If End If Next i End With .../... ' T devient la liste des mots identifiés T=W3
Mais si je masque ObjetRangeMaColonne dans le tableur, cette macro ne reconnait plus rien alors que d'autres valeurs avec .value sont parfaitement lues dans d'autres colonnes cachées. Bug avec .Find dans ce contexte? Origine ?
Merci.@+
Michel41
Merci J'ai mis des "Debug.?" partout et est même fait la recherche sur Mot avec Mot=trim(cstr(W1(i)))
OK si la colonne est visible KO si la colonne est invisible KO qqs la méthode d'invisibilité (par VBA, souris, sélection de paramétrage) Redevient OK comme par enchantement ensuite quand la colonne redevient visible !!!!!
Ce n'est pas le seul problème que j'ai eu avec .Find : mes mots sont numériques et pour que cela fonctionne déjà en mode VISIBLE sans être embêté par le format ou le type numérique (voir confusion même avec Date) je précède le nombre par une lettre comme : "T1234567891011"
Je vais recopier le programme proposé sur une feuille insérée pour le tester En attendant si d'autres idées, je suis toujours preneur
Merci@+
"isabelle" a écrit dans le message de news:
bonjour Michel,
j'ai fait le test suivant et je n'ai pas eu ce problème,
Sub Macro1() Dim ObjetRangeMaColonne As Range Set ObjetRangeMaColonne = Columns("A:A") ObjetRangeMaColonne.EntireColumn.Hidden = True With ObjetRangeMaColonne Set z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1)) End With If Not z Is Nothing Then MsgBox z.Address End Sub
as tu vérifié la valeur de W1(i) ?
isabelle
Bonjour
Une macro recherchant une chaîne de caractères dans les cellules d'une colonne fonctionne très bien : .../... ' T est une liste de mots à identifier 'W1() est un variant W1 = Split(T & Sep, Sep) k = UBound(W1, 1) - 1 .../... With ObjetRangeMaColonne For i = 0 To k If W1(i) > "" Then Set Z = .Find(what:=W1(i), lookAt:=xlWhole, After:=.Rows(1), SearchOrder:=xlByColumns, _ SearchDirection:=xlNext, LookIn:=xlValues, MatchCase:úlse, SearchFormat:úlse) If Not Z Is Nothing Then h = h + 1 j = Z.Row .../... If h = 1 Then W3 = W1(i) Else W3 = W3 & Sep & W1(i) Else R = True End If End If Next i End With .../... ' T devient la liste des mots identifiés T=W3
Mais si je masque ObjetRangeMaColonne dans le tableur, cette macro ne reconnait plus rien alors que d'autres valeurs avec .value sont parfaitement lues dans d'autres colonnes cachées. Bug avec .Find dans ce contexte? Origine ?
Merci.@+
Merci
J'ai mis des "Debug.?" partout
et est même fait la recherche sur Mot
avec Mot=trim(cstr(W1(i)))
OK si la colonne est visible
KO si la colonne est invisible
KO qqs la méthode d'invisibilité
(par VBA, souris, sélection de paramétrage)
Redevient OK comme par enchantement
ensuite quand la colonne redevient visible !!!!!
Ce n'est pas le seul problème que j'ai eu avec
.Find : mes mots sont numériques et pour que
cela fonctionne déjà en mode VISIBLE sans être
embêté par le format ou le type numérique
(voir confusion même avec Date) je précède
le nombre par une lettre comme :
"T1234567891011"
Je vais recopier le programme proposé sur une
feuille insérée pour le tester
En attendant si d'autres idées, je suis toujours preneur
Merci@+
"isabelle" <as.isabellevIE@videotron.ca> a écrit dans le message de news:
42049AA9.B32E891E@videotron.ca...
bonjour Michel,
j'ai fait le test suivant et je n'ai pas eu ce problème,
Sub Macro1()
Dim ObjetRangeMaColonne As Range
Set ObjetRangeMaColonne = Columns("A:A")
ObjetRangeMaColonne.EntireColumn.Hidden = True
With ObjetRangeMaColonne
Set z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1))
End With
If Not z Is Nothing Then MsgBox z.Address
End Sub
as tu vérifié la valeur de W1(i) ?
isabelle
Bonjour
Une macro recherchant une chaîne de caractères dans
les cellules d'une colonne fonctionne très bien :
.../...
' T est une liste de mots à identifier
'W1() est un variant
W1 = Split(T & Sep, Sep)
k = UBound(W1, 1) - 1
.../...
With ObjetRangeMaColonne
For i = 0 To k
If W1(i) > "" Then
Set Z = .Find(what:=W1(i), lookAt:=xlWhole,
After:=.Rows(1),
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, LookIn:=xlValues,
MatchCase:úlse, SearchFormat:úlse)
If Not Z Is Nothing Then
h = h + 1
j = Z.Row
.../...
If h = 1 Then W3 = W1(i) Else W3 = W3 & Sep & W1(i)
Else
R = True
End If
End If
Next i
End With
.../...
' T devient la liste des mots identifiés
T=W3
Mais si je masque ObjetRangeMaColonne
dans le tableur, cette macro ne reconnait plus
rien alors que d'autres valeurs avec .value sont
parfaitement lues dans d'autres colonnes
cachées.
Bug avec .Find dans ce contexte?
Origine ?
Merci J'ai mis des "Debug.?" partout et est même fait la recherche sur Mot avec Mot=trim(cstr(W1(i)))
OK si la colonne est visible KO si la colonne est invisible KO qqs la méthode d'invisibilité (par VBA, souris, sélection de paramétrage) Redevient OK comme par enchantement ensuite quand la colonne redevient visible !!!!!
Ce n'est pas le seul problème que j'ai eu avec .Find : mes mots sont numériques et pour que cela fonctionne déjà en mode VISIBLE sans être embêté par le format ou le type numérique (voir confusion même avec Date) je précède le nombre par une lettre comme : "T1234567891011"
Je vais recopier le programme proposé sur une feuille insérée pour le tester En attendant si d'autres idées, je suis toujours preneur
Merci@+
"isabelle" a écrit dans le message de news:
bonjour Michel,
j'ai fait le test suivant et je n'ai pas eu ce problème,
Sub Macro1() Dim ObjetRangeMaColonne As Range Set ObjetRangeMaColonne = Columns("A:A") ObjetRangeMaColonne.EntireColumn.Hidden = True With ObjetRangeMaColonne Set z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1)) End With If Not z Is Nothing Then MsgBox z.Address End Sub
as tu vérifié la valeur de W1(i) ?
isabelle
Bonjour
Une macro recherchant une chaîne de caractères dans les cellules d'une colonne fonctionne très bien : .../... ' T est une liste de mots à identifier 'W1() est un variant W1 = Split(T & Sep, Sep) k = UBound(W1, 1) - 1 .../... With ObjetRangeMaColonne For i = 0 To k If W1(i) > "" Then Set Z = .Find(what:=W1(i), lookAt:=xlWhole, After:=.Rows(1), SearchOrder:=xlByColumns, _ SearchDirection:=xlNext, LookIn:=xlValues, MatchCase:úlse, SearchFormat:úlse) If Not Z Is Nothing Then h = h + 1 j = Z.Row .../... If h = 1 Then W3 = W1(i) Else W3 = W3 & Sep & W1(i) Else R = True End If End If Next i End With .../... ' T devient la liste des mots identifiés T=W3
Mais si je masque ObjetRangeMaColonne dans le tableur, cette macro ne reconnait plus rien alors que d'autres valeurs avec .value sont parfaitement lues dans d'autres colonnes cachées. Bug avec .Find dans ce contexte? Origine ?
Merci.@+
Michel41
RE J'ai essayé
Sub Toto() 'zaza écrit en ligne 10 colonne 1 Dim ObjetRangeMaColonne As Range Dim Z As Range Set ObjetRangeMaColonne = Columns("A:A") ObjetRangeMaColonne.EntireColumn.Hidden = True With ObjetRangeMaColonne Set Z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1)) End With If Not Z Is Nothing Then MsgBox Z.Address End Sub
Cela ne fonctionne que quand je met ' (REM) devant la ligne rendant invisible !
Merci Si idée toujours preneur @+
"isabelle" a écrit dans le message de news:
bonjour Michel,
j'ai fait le test suivant et je n'ai pas eu ce problème,
Sub Macro1() Dim ObjetRangeMaColonne As Range Set ObjetRangeMaColonne = Columns("A:A") ObjetRangeMaColonne.EntireColumn.Hidden = True With ObjetRangeMaColonne Set z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1)) End With If Not z Is Nothing Then MsgBox z.Address End Sub
as tu vérifié la valeur de W1(i) ?
isabelle
Bonjour
Une macro recherchant une chaîne de caractères dans les cellules d'une colonne fonctionne très bien : .../... ' T est une liste de mots à identifier 'W1() est un variant W1 = Split(T & Sep, Sep) k = UBound(W1, 1) - 1 .../... With ObjetRangeMaColonne For i = 0 To k If W1(i) > "" Then Set Z = .Find(what:=W1(i), lookAt:=xlWhole, After:=.Rows(1), SearchOrder:=xlByColumns, _ SearchDirection:=xlNext, LookIn:=xlValues, MatchCase:úlse, SearchFormat:úlse) If Not Z Is Nothing Then h = h + 1 j = Z.Row .../... If h = 1 Then W3 = W1(i) Else W3 = W3 & Sep & W1(i) Else R = True End If End If Next i End With .../... ' T devient la liste des mots identifiés T=W3
Mais si je masque ObjetRangeMaColonne dans le tableur, cette macro ne reconnait plus rien alors que d'autres valeurs avec .value sont parfaitement lues dans d'autres colonnes cachées. Bug avec .Find dans ce contexte? Origine ?
Merci.@+
RE
J'ai essayé
Sub Toto()
'zaza écrit en ligne 10 colonne 1
Dim ObjetRangeMaColonne As Range
Dim Z As Range
Set ObjetRangeMaColonne = Columns("A:A")
ObjetRangeMaColonne.EntireColumn.Hidden = True
With ObjetRangeMaColonne
Set Z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1))
End With
If Not Z Is Nothing Then MsgBox Z.Address
End Sub
Cela ne fonctionne que quand je met ' (REM)
devant la ligne rendant invisible !
Merci
Si idée toujours preneur
@+
"isabelle" <as.isabellevIE@videotron.ca> a écrit dans le message de news:
42049AA9.B32E891E@videotron.ca...
bonjour Michel,
j'ai fait le test suivant et je n'ai pas eu ce problème,
Sub Macro1()
Dim ObjetRangeMaColonne As Range
Set ObjetRangeMaColonne = Columns("A:A")
ObjetRangeMaColonne.EntireColumn.Hidden = True
With ObjetRangeMaColonne
Set z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1))
End With
If Not z Is Nothing Then MsgBox z.Address
End Sub
as tu vérifié la valeur de W1(i) ?
isabelle
Bonjour
Une macro recherchant une chaîne de caractères dans
les cellules d'une colonne fonctionne très bien :
.../...
' T est une liste de mots à identifier
'W1() est un variant
W1 = Split(T & Sep, Sep)
k = UBound(W1, 1) - 1
.../...
With ObjetRangeMaColonne
For i = 0 To k
If W1(i) > "" Then
Set Z = .Find(what:=W1(i), lookAt:=xlWhole,
After:=.Rows(1),
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, LookIn:=xlValues,
MatchCase:úlse, SearchFormat:úlse)
If Not Z Is Nothing Then
h = h + 1
j = Z.Row
.../...
If h = 1 Then W3 = W1(i) Else W3 = W3 & Sep & W1(i)
Else
R = True
End If
End If
Next i
End With
.../...
' T devient la liste des mots identifiés
T=W3
Mais si je masque ObjetRangeMaColonne
dans le tableur, cette macro ne reconnait plus
rien alors que d'autres valeurs avec .value sont
parfaitement lues dans d'autres colonnes
cachées.
Bug avec .Find dans ce contexte?
Origine ?
Sub Toto() 'zaza écrit en ligne 10 colonne 1 Dim ObjetRangeMaColonne As Range Dim Z As Range Set ObjetRangeMaColonne = Columns("A:A") ObjetRangeMaColonne.EntireColumn.Hidden = True With ObjetRangeMaColonne Set Z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1)) End With If Not Z Is Nothing Then MsgBox Z.Address End Sub
Cela ne fonctionne que quand je met ' (REM) devant la ligne rendant invisible !
Merci Si idée toujours preneur @+
"isabelle" a écrit dans le message de news:
bonjour Michel,
j'ai fait le test suivant et je n'ai pas eu ce problème,
Sub Macro1() Dim ObjetRangeMaColonne As Range Set ObjetRangeMaColonne = Columns("A:A") ObjetRangeMaColonne.EntireColumn.Hidden = True With ObjetRangeMaColonne Set z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1)) End With If Not z Is Nothing Then MsgBox z.Address End Sub
as tu vérifié la valeur de W1(i) ?
isabelle
Bonjour
Une macro recherchant une chaîne de caractères dans les cellules d'une colonne fonctionne très bien : .../... ' T est une liste de mots à identifier 'W1() est un variant W1 = Split(T & Sep, Sep) k = UBound(W1, 1) - 1 .../... With ObjetRangeMaColonne For i = 0 To k If W1(i) > "" Then Set Z = .Find(what:=W1(i), lookAt:=xlWhole, After:=.Rows(1), SearchOrder:=xlByColumns, _ SearchDirection:=xlNext, LookIn:=xlValues, MatchCase:úlse, SearchFormat:úlse) If Not Z Is Nothing Then h = h + 1 j = Z.Row .../... If h = 1 Then W3 = W1(i) Else W3 = W3 & Sep & W1(i) Else R = True End If End If Next i End With .../... ' T devient la liste des mots identifiés T=W3
Mais si je masque ObjetRangeMaColonne dans le tableur, cette macro ne reconnait plus rien alors que d'autres valeurs avec .value sont parfaitement lues dans d'autres colonnes cachées. Bug avec .Find dans ce contexte? Origine ?
Merci.@+
papou
Bonjour Il faut identifier "complètement" ton Range en désignant donc son propriétaire : Set ObjetRangeMaColonne = Worksheets("Feuil1").Columns("A:A") Cordialement Pascal
"Michel41" a écrit dans le message de news: 4204b5ba$0$18862$
RE J'ai essayé
Sub Toto() 'zaza écrit en ligne 10 colonne 1 Dim ObjetRangeMaColonne As Range Dim Z As Range Set ObjetRangeMaColonne = Columns("A:A") ObjetRangeMaColonne.EntireColumn.Hidden = True With ObjetRangeMaColonne Set Z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1)) End With If Not Z Is Nothing Then MsgBox Z.Address End Sub
Cela ne fonctionne que quand je met ' (REM) devant la ligne rendant invisible !
Merci Si idée toujours preneur @+
"isabelle" a écrit dans le message de news:
bonjour Michel,
j'ai fait le test suivant et je n'ai pas eu ce problème,
Sub Macro1() Dim ObjetRangeMaColonne As Range Set ObjetRangeMaColonne = Columns("A:A") ObjetRangeMaColonne.EntireColumn.Hidden = True With ObjetRangeMaColonne Set z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1)) End With If Not z Is Nothing Then MsgBox z.Address End Sub
as tu vérifié la valeur de W1(i) ?
isabelle
Bonjour
Une macro recherchant une chaîne de caractères dans les cellules d'une colonne fonctionne très bien : .../... ' T est une liste de mots à identifier 'W1() est un variant W1 = Split(T & Sep, Sep) k = UBound(W1, 1) - 1 .../... With ObjetRangeMaColonne For i = 0 To k If W1(i) > "" Then Set Z = .Find(what:=W1(i), lookAt:=xlWhole, After:=.Rows(1), SearchOrder:=xlByColumns, _ SearchDirection:=xlNext, LookIn:=xlValues, MatchCase:úlse, SearchFormat:úlse) If Not Z Is Nothing Then h = h + 1 j = Z.Row .../... If h = 1 Then W3 = W1(i) Else W3 = W3 & Sep & W1(i) Else R = True End If End If Next i End With .../... ' T devient la liste des mots identifiés T=W3
Mais si je masque ObjetRangeMaColonne dans le tableur, cette macro ne reconnait plus rien alors que d'autres valeurs avec .value sont parfaitement lues dans d'autres colonnes cachées. Bug avec .Find dans ce contexte? Origine ?
Merci.@+
Bonjour
Il faut identifier "complètement" ton Range en désignant donc son
propriétaire :
Set ObjetRangeMaColonne = Worksheets("Feuil1").Columns("A:A")
Cordialement
Pascal
"Michel41" <boomerang.pro.3@wanadoo.fr> a écrit dans le message de news:
4204b5ba$0$18862$8fcfb975@news.wanadoo.fr...
RE
J'ai essayé
Sub Toto()
'zaza écrit en ligne 10 colonne 1
Dim ObjetRangeMaColonne As Range
Dim Z As Range
Set ObjetRangeMaColonne = Columns("A:A")
ObjetRangeMaColonne.EntireColumn.Hidden = True
With ObjetRangeMaColonne
Set Z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1))
End With
If Not Z Is Nothing Then MsgBox Z.Address
End Sub
Cela ne fonctionne que quand je met ' (REM)
devant la ligne rendant invisible !
Merci
Si idée toujours preneur
@+
"isabelle" <as.isabellevIE@videotron.ca> a écrit dans le message de news:
42049AA9.B32E891E@videotron.ca...
bonjour Michel,
j'ai fait le test suivant et je n'ai pas eu ce problème,
Sub Macro1()
Dim ObjetRangeMaColonne As Range
Set ObjetRangeMaColonne = Columns("A:A")
ObjetRangeMaColonne.EntireColumn.Hidden = True
With ObjetRangeMaColonne
Set z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1))
End With
If Not z Is Nothing Then MsgBox z.Address
End Sub
as tu vérifié la valeur de W1(i) ?
isabelle
Bonjour
Une macro recherchant une chaîne de caractères dans
les cellules d'une colonne fonctionne très bien :
.../...
' T est une liste de mots à identifier
'W1() est un variant
W1 = Split(T & Sep, Sep)
k = UBound(W1, 1) - 1
.../...
With ObjetRangeMaColonne
For i = 0 To k
If W1(i) > "" Then
Set Z = .Find(what:=W1(i), lookAt:=xlWhole,
After:=.Rows(1),
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, LookIn:=xlValues,
MatchCase:úlse, SearchFormat:úlse)
If Not Z Is Nothing Then
h = h + 1
j = Z.Row
.../...
If h = 1 Then W3 = W1(i) Else W3 = W3 & Sep & W1(i)
Else
R = True
End If
End If
Next i
End With
.../...
' T devient la liste des mots identifiés
T=W3
Mais si je masque ObjetRangeMaColonne
dans le tableur, cette macro ne reconnait plus
rien alors que d'autres valeurs avec .value sont
parfaitement lues dans d'autres colonnes
cachées.
Bug avec .Find dans ce contexte?
Origine ?
Bonjour Il faut identifier "complètement" ton Range en désignant donc son propriétaire : Set ObjetRangeMaColonne = Worksheets("Feuil1").Columns("A:A") Cordialement Pascal
"Michel41" a écrit dans le message de news: 4204b5ba$0$18862$
RE J'ai essayé
Sub Toto() 'zaza écrit en ligne 10 colonne 1 Dim ObjetRangeMaColonne As Range Dim Z As Range Set ObjetRangeMaColonne = Columns("A:A") ObjetRangeMaColonne.EntireColumn.Hidden = True With ObjetRangeMaColonne Set Z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1)) End With If Not Z Is Nothing Then MsgBox Z.Address End Sub
Cela ne fonctionne que quand je met ' (REM) devant la ligne rendant invisible !
Merci Si idée toujours preneur @+
"isabelle" a écrit dans le message de news:
bonjour Michel,
j'ai fait le test suivant et je n'ai pas eu ce problème,
Sub Macro1() Dim ObjetRangeMaColonne As Range Set ObjetRangeMaColonne = Columns("A:A") ObjetRangeMaColonne.EntireColumn.Hidden = True With ObjetRangeMaColonne Set z = .Find(what:="zaza", lookAt:=xlWhole, After:=.Rows(1)) End With If Not z Is Nothing Then MsgBox z.Address End Sub
as tu vérifié la valeur de W1(i) ?
isabelle
Bonjour
Une macro recherchant une chaîne de caractères dans les cellules d'une colonne fonctionne très bien : .../... ' T est une liste de mots à identifier 'W1() est un variant W1 = Split(T & Sep, Sep) k = UBound(W1, 1) - 1 .../... With ObjetRangeMaColonne For i = 0 To k If W1(i) > "" Then Set Z = .Find(what:=W1(i), lookAt:=xlWhole, After:=.Rows(1), SearchOrder:=xlByColumns, _ SearchDirection:=xlNext, LookIn:=xlValues, MatchCase:úlse, SearchFormat:úlse) If Not Z Is Nothing Then h = h + 1 j = Z.Row .../... If h = 1 Then W3 = W1(i) Else W3 = W3 & Sep & W1(i) Else R = True End If End If Next i End With .../... ' T devient la liste des mots identifiés T=W3
Mais si je masque ObjetRangeMaColonne dans le tableur, cette macro ne reconnait plus rien alors que d'autres valeurs avec .value sont parfaitement lues dans d'autres colonnes cachées. Bug avec .Find dans ce contexte? Origine ?