Findnext ne prend pas en considération le format des cellules ?
5 réponses
Daniel.C
Bonjour.
Je cherche à sélectionner les cellules fusionnées et ayant un renvoi à la
ligne automatique. J'ai le code suivant :
With Application.FindFormat
.WrapText = True
.MergeCells = True
End With
Set Cel = sh.Cells.Find("*", SearchFormat:=True)
...
Set Cel = Cells.FindNext(Cel)
Je trouve toutes les cellules remplies, quel que soit le paramétrage initié
en début de procédure (sauf la première, trouvée par "find"). Quand
j'exécute la commande manuellement, les deux options sont bien positionnées.
Il semberait que "findnext" ne reconnaisse pas les options spécifiées, et
pourtant, l'enregistreur de macros donne la même syntaxe, à ceci près
qu'elle sélectionne les cellules.
Merci par avance.
Daniel
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
michdenis
Je n'ai rien testé....avec FindFormat
Mais rien ne t'empêche d'utiliser ceci :
Set Cel = sh.Cells.Find("*", SearchFormat:=True)
'Et au lieu de findnext .
Set Cel = sh.Cells.Find(What:="*", After:Îl, SearchFormat:=True)
N.B. Lorsque l'on déclare le "prompt" pour un argument, on le déclare pour chacun des arguments de la méthode
"Daniel.C" a écrit dans le message de news:
Bonjour.
Je cherche à sélectionner les cellules fusionnées et ayant un renvoi à la ligne automatique. J'ai le code suivant :
With Application.FindFormat .WrapText = True .MergeCells = True End With Set Cel = sh.Cells.Find("*", SearchFormat:=True) ... Set Cel = Cells.FindNext(Cel)
Je trouve toutes les cellules remplies, quel que soit le paramétrage initié en début de procédure (sauf la première, trouvée par "find"). Quand j'exécute la commande manuellement, les deux options sont bien positionnées. Il semberait que "findnext" ne reconnaisse pas les options spécifiées, et pourtant, l'enregistreur de macros donne la même syntaxe, à ceci près qu'elle sélectionne les cellules. Merci par avance. Daniel
Je n'ai rien testé....avec FindFormat
Mais rien ne t'empêche d'utiliser ceci :
Set Cel = sh.Cells.Find("*", SearchFormat:=True)
'Et au lieu de findnext .
Set Cel = sh.Cells.Find(What:="*", After:Îl, SearchFormat:=True)
N.B. Lorsque l'on déclare le "prompt" pour un argument,
on le déclare pour chacun des arguments de la méthode
"Daniel.C" <dZZZcolardelle@free.fr> a écrit dans le message de news:
OhDzSM8HJHA.3668@TK2MSFTNGP02.phx.gbl...
Bonjour.
Je cherche à sélectionner les cellules fusionnées et ayant un renvoi à la
ligne automatique. J'ai le code suivant :
With Application.FindFormat
.WrapText = True
.MergeCells = True
End With
Set Cel = sh.Cells.Find("*", SearchFormat:=True)
...
Set Cel = Cells.FindNext(Cel)
Je trouve toutes les cellules remplies, quel que soit le paramétrage initié
en début de procédure (sauf la première, trouvée par "find"). Quand
j'exécute la commande manuellement, les deux options sont bien positionnées.
Il semberait que "findnext" ne reconnaisse pas les options spécifiées, et
pourtant, l'enregistreur de macros donne la même syntaxe, à ceci près
qu'elle sélectionne les cellules.
Merci par avance.
Daniel
Set Cel = sh.Cells.Find(What:="*", After:Îl, SearchFormat:=True)
N.B. Lorsque l'on déclare le "prompt" pour un argument, on le déclare pour chacun des arguments de la méthode
"Daniel.C" a écrit dans le message de news:
Bonjour.
Je cherche à sélectionner les cellules fusionnées et ayant un renvoi à la ligne automatique. J'ai le code suivant :
With Application.FindFormat .WrapText = True .MergeCells = True End With Set Cel = sh.Cells.Find("*", SearchFormat:=True) ... Set Cel = Cells.FindNext(Cel)
Je trouve toutes les cellules remplies, quel que soit le paramétrage initié en début de procédure (sauf la première, trouvée par "find"). Quand j'exécute la commande manuellement, les deux options sont bien positionnées. Il semberait que "findnext" ne reconnaisse pas les options spécifiées, et pourtant, l'enregistreur de macros donne la même syntaxe, à ceci près qu'elle sélectionne les cellules. Merci par avance. Daniel
Daniel.C
Bonjour et merci de ta réponse. C'est ce que j'ai fait, mais je voulais être sûr. C'est quand même bizarre cette syntaxe de l'enregistreur... Quoique je ne l'aie pas testée...
-- Cordialement. Daniel "michdenis" a écrit dans le message de news:
Je n'ai rien testé....avec FindFormat
Mais rien ne t'empêche d'utiliser ceci :
Set Cel = sh.Cells.Find("*", SearchFormat:=True)
'Et au lieu de findnext .
Set Cel = sh.Cells.Find(What:="*", After:Îl, SearchFormat:=True)
N.B. Lorsque l'on déclare le "prompt" pour un argument, on le déclare pour chacun des arguments de la méthode
"Daniel.C" a écrit dans le message de news:
Bonjour.
Je cherche à sélectionner les cellules fusionnées et ayant un renvoi à la ligne automatique. J'ai le code suivant :
With Application.FindFormat .WrapText = True .MergeCells = True End With Set Cel = sh.Cells.Find("*", SearchFormat:=True) ... Set Cel = Cells.FindNext(Cel)
Je trouve toutes les cellules remplies, quel que soit le paramétrage initié en début de procédure (sauf la première, trouvée par "find"). Quand j'exécute la commande manuellement, les deux options sont bien positionnées. Il semberait que "findnext" ne reconnaisse pas les options spécifiées, et pourtant, l'enregistreur de macros donne la même syntaxe, à ceci près qu'elle sélectionne les cellules. Merci par avance. Daniel
Bonjour et merci de ta réponse. C'est ce que j'ai fait, mais je voulais être
sûr. C'est quand même bizarre cette syntaxe de l'enregistreur... Quoique je
ne l'aie pas testée...
--
Cordialement.
Daniel
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
unMUSc8HJHA.2492@TK2MSFTNGP05.phx.gbl...
Je n'ai rien testé....avec FindFormat
Mais rien ne t'empêche d'utiliser ceci :
Set Cel = sh.Cells.Find("*", SearchFormat:=True)
'Et au lieu de findnext .
Set Cel = sh.Cells.Find(What:="*", After:Îl, SearchFormat:=True)
N.B. Lorsque l'on déclare le "prompt" pour un argument,
on le déclare pour chacun des arguments de la méthode
"Daniel.C" <dZZZcolardelle@free.fr> a écrit dans le message de news:
OhDzSM8HJHA.3668@TK2MSFTNGP02.phx.gbl...
Bonjour.
Je cherche à sélectionner les cellules fusionnées et ayant un renvoi à la
ligne automatique. J'ai le code suivant :
With Application.FindFormat
.WrapText = True
.MergeCells = True
End With
Set Cel = sh.Cells.Find("*", SearchFormat:=True)
...
Set Cel = Cells.FindNext(Cel)
Je trouve toutes les cellules remplies, quel que soit le paramétrage
initié
en début de procédure (sauf la première, trouvée par "find"). Quand
j'exécute la commande manuellement, les deux options sont bien
positionnées.
Il semberait que "findnext" ne reconnaisse pas les options spécifiées, et
pourtant, l'enregistreur de macros donne la même syntaxe, à ceci près
qu'elle sélectionne les cellules.
Merci par avance.
Daniel
Bonjour et merci de ta réponse. C'est ce que j'ai fait, mais je voulais être sûr. C'est quand même bizarre cette syntaxe de l'enregistreur... Quoique je ne l'aie pas testée...
-- Cordialement. Daniel "michdenis" a écrit dans le message de news:
Je n'ai rien testé....avec FindFormat
Mais rien ne t'empêche d'utiliser ceci :
Set Cel = sh.Cells.Find("*", SearchFormat:=True)
'Et au lieu de findnext .
Set Cel = sh.Cells.Find(What:="*", After:Îl, SearchFormat:=True)
N.B. Lorsque l'on déclare le "prompt" pour un argument, on le déclare pour chacun des arguments de la méthode
"Daniel.C" a écrit dans le message de news:
Bonjour.
Je cherche à sélectionner les cellules fusionnées et ayant un renvoi à la ligne automatique. J'ai le code suivant :
With Application.FindFormat .WrapText = True .MergeCells = True End With Set Cel = sh.Cells.Find("*", SearchFormat:=True) ... Set Cel = Cells.FindNext(Cel)
Je trouve toutes les cellules remplies, quel que soit le paramétrage initié en début de procédure (sauf la première, trouvée par "find"). Quand j'exécute la commande manuellement, les deux options sont bien positionnées. Il semberait que "findnext" ne reconnaisse pas les options spécifiées, et pourtant, l'enregistreur de macros donne la même syntaxe, à ceci près qu'elle sélectionne les cellules. Merci par avance. Daniel
michdenis
Je ne sais pas ce que tu tentes de faires, mais voici un exemple où tu peux substituer un format de cellule par un autre ...
Sub ReplaceFormats()
Dim oCellFindFormat As CellFormat Dim oCellReplaceFormat As CellFormat Dim rngReplace As Boolean, sMessage As String
'Define variables for Find and Replace formats Set oCellFindFormat = Application.FindFormat Set oCellReplaceFormat = Application.ReplaceFormat
'Set the Search criteria for the Find Formats With oCellFindFormat .Clear .Font.Name = "Arial" .Interior.Color = vbRed End With
'Set the Replace criteria for the Replace Formats With oCellReplaceFormat .Clear .Font.Name = "Arial" .Interior.ColorIndex = 25 End With 'Perform the replace Me.UsedRange.Replace What:="", Replacement:="", _ SearchFormat:=True, ReplaceFormat:=True
'Reset the Find and Replace formats oCellFindFormat.Clear oCellReplaceFormat.Clear
End Sub
"Daniel.C" a écrit dans le message de news:
Bonjour et merci de ta réponse. C'est ce que j'ai fait, mais je voulais être sûr. C'est quand même bizarre cette syntaxe de l'enregistreur... Quoique je ne l'aie pas testée...
-- Cordialement. Daniel "michdenis" a écrit dans le message de news:
Je n'ai rien testé....avec FindFormat
Mais rien ne t'empêche d'utiliser ceci :
Set Cel = sh.Cells.Find("*", SearchFormat:=True)
'Et au lieu de findnext .
Set Cel = sh.Cells.Find(What:="*", After:Îl, SearchFormat:=True)
N.B. Lorsque l'on déclare le "prompt" pour un argument, on le déclare pour chacun des arguments de la méthode
"Daniel.C" a écrit dans le message de news:
Bonjour.
Je cherche à sélectionner les cellules fusionnées et ayant un renvoi à la ligne automatique. J'ai le code suivant :
With Application.FindFormat .WrapText = True .MergeCells = True End With Set Cel = sh.Cells.Find("*", SearchFormat:=True) ... Set Cel = Cells.FindNext(Cel)
Je trouve toutes les cellules remplies, quel que soit le paramétrage initié en début de procédure (sauf la première, trouvée par "find"). Quand j'exécute la commande manuellement, les deux options sont bien positionnées. Il semberait que "findnext" ne reconnaisse pas les options spécifiées, et pourtant, l'enregistreur de macros donne la même syntaxe, à ceci près qu'elle sélectionne les cellules. Merci par avance. Daniel
Je ne sais pas ce que tu tentes de faires, mais voici un exemple
où tu peux substituer un format de cellule par un autre ...
Sub ReplaceFormats()
Dim oCellFindFormat As CellFormat
Dim oCellReplaceFormat As CellFormat
Dim rngReplace As Boolean, sMessage As String
'Define variables for Find and Replace formats
Set oCellFindFormat = Application.FindFormat
Set oCellReplaceFormat = Application.ReplaceFormat
'Set the Search criteria for the Find Formats
With oCellFindFormat
.Clear
.Font.Name = "Arial"
.Interior.Color = vbRed
End With
'Set the Replace criteria for the Replace Formats
With oCellReplaceFormat
.Clear
.Font.Name = "Arial"
.Interior.ColorIndex = 25
End With
'Perform the replace
Me.UsedRange.Replace What:="", Replacement:="", _
SearchFormat:=True, ReplaceFormat:=True
'Reset the Find and Replace formats
oCellFindFormat.Clear
oCellReplaceFormat.Clear
End Sub
"Daniel.C" <dZZZcolardelle@free.fr> a écrit dans le message de news:
u3Hn5g8HJHA.4232@TK2MSFTNGP03.phx.gbl...
Bonjour et merci de ta réponse. C'est ce que j'ai fait, mais je voulais être
sûr. C'est quand même bizarre cette syntaxe de l'enregistreur... Quoique je
ne l'aie pas testée...
--
Cordialement.
Daniel
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
unMUSc8HJHA.2492@TK2MSFTNGP05.phx.gbl...
Je n'ai rien testé....avec FindFormat
Mais rien ne t'empêche d'utiliser ceci :
Set Cel = sh.Cells.Find("*", SearchFormat:=True)
'Et au lieu de findnext .
Set Cel = sh.Cells.Find(What:="*", After:Îl, SearchFormat:=True)
N.B. Lorsque l'on déclare le "prompt" pour un argument,
on le déclare pour chacun des arguments de la méthode
"Daniel.C" <dZZZcolardelle@free.fr> a écrit dans le message de news:
OhDzSM8HJHA.3668@TK2MSFTNGP02.phx.gbl...
Bonjour.
Je cherche à sélectionner les cellules fusionnées et ayant un renvoi à la
ligne automatique. J'ai le code suivant :
With Application.FindFormat
.WrapText = True
.MergeCells = True
End With
Set Cel = sh.Cells.Find("*", SearchFormat:=True)
...
Set Cel = Cells.FindNext(Cel)
Je trouve toutes les cellules remplies, quel que soit le paramétrage
initié
en début de procédure (sauf la première, trouvée par "find"). Quand
j'exécute la commande manuellement, les deux options sont bien
positionnées.
Il semberait que "findnext" ne reconnaisse pas les options spécifiées, et
pourtant, l'enregistreur de macros donne la même syntaxe, à ceci près
qu'elle sélectionne les cellules.
Merci par avance.
Daniel
Je ne sais pas ce que tu tentes de faires, mais voici un exemple où tu peux substituer un format de cellule par un autre ...
Sub ReplaceFormats()
Dim oCellFindFormat As CellFormat Dim oCellReplaceFormat As CellFormat Dim rngReplace As Boolean, sMessage As String
'Define variables for Find and Replace formats Set oCellFindFormat = Application.FindFormat Set oCellReplaceFormat = Application.ReplaceFormat
'Set the Search criteria for the Find Formats With oCellFindFormat .Clear .Font.Name = "Arial" .Interior.Color = vbRed End With
'Set the Replace criteria for the Replace Formats With oCellReplaceFormat .Clear .Font.Name = "Arial" .Interior.ColorIndex = 25 End With 'Perform the replace Me.UsedRange.Replace What:="", Replacement:="", _ SearchFormat:=True, ReplaceFormat:=True
'Reset the Find and Replace formats oCellFindFormat.Clear oCellReplaceFormat.Clear
End Sub
"Daniel.C" a écrit dans le message de news:
Bonjour et merci de ta réponse. C'est ce que j'ai fait, mais je voulais être sûr. C'est quand même bizarre cette syntaxe de l'enregistreur... Quoique je ne l'aie pas testée...
-- Cordialement. Daniel "michdenis" a écrit dans le message de news:
Je n'ai rien testé....avec FindFormat
Mais rien ne t'empêche d'utiliser ceci :
Set Cel = sh.Cells.Find("*", SearchFormat:=True)
'Et au lieu de findnext .
Set Cel = sh.Cells.Find(What:="*", After:Îl, SearchFormat:=True)
N.B. Lorsque l'on déclare le "prompt" pour un argument, on le déclare pour chacun des arguments de la méthode
"Daniel.C" a écrit dans le message de news:
Bonjour.
Je cherche à sélectionner les cellules fusionnées et ayant un renvoi à la ligne automatique. J'ai le code suivant :
With Application.FindFormat .WrapText = True .MergeCells = True End With Set Cel = sh.Cells.Find("*", SearchFormat:=True) ... Set Cel = Cells.FindNext(Cel)
Je trouve toutes les cellules remplies, quel que soit le paramétrage initié en début de procédure (sauf la première, trouvée par "find"). Quand j'exécute la commande manuellement, les deux options sont bien positionnées. Il semberait que "findnext" ne reconnaisse pas les options spécifiées, et pourtant, l'enregistreur de macros donne la même syntaxe, à ceci près qu'elle sélectionne les cellules. Merci par avance. Daniel
michdenis
De façon plus précise, lors d'une recherche "Find", seulement ces paramètres sont enregistrés et retenus pour une recherche subséquente :
LookIn, LookAt, SearchOrder et MatchByte... ce qui explique que l'on doive définir à chaque fois (recherche) le paramètre SearchFormat:=True de la méthode Find. Cependant, il ne fait pas parti de la thode FindNext ...conséquemment, il n'y a aucune façon de le définir saut si ce n'est la méthode utilisée dans mon message antérieure.
De façon plus précise, lors d'une recherche "Find", seulement
ces paramètres sont enregistrés et retenus pour une recherche
subséquente :
LookIn, LookAt, SearchOrder et MatchByte... ce qui explique que
l'on doive définir à chaque fois (recherche) le paramètre
SearchFormat:=True de la méthode Find. Cependant, il ne fait
pas parti de la thode FindNext ...conséquemment, il n'y a aucune
façon de le définir saut si ce n'est la méthode utilisée dans mon
message antérieure.
De façon plus précise, lors d'une recherche "Find", seulement ces paramètres sont enregistrés et retenus pour une recherche subséquente :
LookIn, LookAt, SearchOrder et MatchByte... ce qui explique que l'on doive définir à chaque fois (recherche) le paramètre SearchFormat:=True de la méthode Find. Cependant, il ne fait pas parti de la thode FindNext ...conséquemment, il n'y a aucune façon de le définir saut si ce n'est la méthode utilisée dans mon message antérieure.
Daniel.C
Merci de ces précisions. C'est déroutant, parce que ça ne fonctionne pas comme la commande Excel, quand tu fais une recherche et que tu cliques sur "Suivant", tu penses à "FindNext"...mais, non. Encore merci. -- Cordialement. Daniel "michdenis" a écrit dans le message de news:
De façon plus précise, lors d'une recherche "Find", seulement ces paramètres sont enregistrés et retenus pour une recherche subséquente :
LookIn, LookAt, SearchOrder et MatchByte... ce qui explique que l'on doive définir à chaque fois (recherche) le paramètre SearchFormat:=True de la méthode Find. Cependant, il ne fait pas parti de la thode FindNext ...conséquemment, il n'y a aucune façon de le définir saut si ce n'est la méthode utilisée dans mon message antérieure.
Merci de ces précisions. C'est déroutant, parce que ça ne fonctionne pas
comme la commande Excel, quand tu fais une recherche et que tu cliques sur
"Suivant", tu penses à "FindNext"...mais, non.
Encore merci.
--
Cordialement.
Daniel
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
egBx7B9HJHA.1940@TK2MSFTNGP03.phx.gbl...
De façon plus précise, lors d'une recherche "Find", seulement
ces paramètres sont enregistrés et retenus pour une recherche
subséquente :
LookIn, LookAt, SearchOrder et MatchByte... ce qui explique que
l'on doive définir à chaque fois (recherche) le paramètre
SearchFormat:=True de la méthode Find. Cependant, il ne fait
pas parti de la thode FindNext ...conséquemment, il n'y a aucune
façon de le définir saut si ce n'est la méthode utilisée dans mon
message antérieure.
Merci de ces précisions. C'est déroutant, parce que ça ne fonctionne pas comme la commande Excel, quand tu fais une recherche et que tu cliques sur "Suivant", tu penses à "FindNext"...mais, non. Encore merci. -- Cordialement. Daniel "michdenis" a écrit dans le message de news:
De façon plus précise, lors d'une recherche "Find", seulement ces paramètres sont enregistrés et retenus pour une recherche subséquente :
LookIn, LookAt, SearchOrder et MatchByte... ce qui explique que l'on doive définir à chaque fois (recherche) le paramètre SearchFormat:=True de la méthode Find. Cependant, il ne fait pas parti de la thode FindNext ...conséquemment, il n'y a aucune façon de le définir saut si ce n'est la méthode utilisée dans mon message antérieure.