Findnext ne prend pas en considération le format des cellules ?

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #17345161
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"
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
Le #17345401
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"
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"
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
Le #17345851
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"
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"
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"
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
Le #17345961
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
Le #17346111
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"
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.







Publicité
Poster une réponse
Anonyme