Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recherche en vba d'un format de cellule

6 réponses
Avatar
Gilbert
Bonjour,

Je veux séparer des données dans des classeurs existants. La seule chose qui
permet de les différencier, c'est une bordure supérieure en trait épais.
En faisant une macro (qui fonctionne), j'ai obtenu le code suivant :
Cells.Find(What:="", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:=False _
, SearchFormat:=True).Activate

Comment puis-je spécifier le format à rechercher?

Merci d'avance

--
Cordialement,

Gilbert

6 réponses

Avatar
isabelle
bonjour Gilbert,

ce n'est pas possible avec Find mais il y a une possibilité avec une fonction perso,
mais attention est ne se recalcule pas tout seul, il faut appuyer sur F9

Function EstBonFormat(cellule As Range) As Integer
Application.Volatile
With cellule.Borders(xlEdgeTop)
If .LineStyle = xlContinuous And .Weight = xlThick Then EstBonFormat = 1
End With
End Function

isabelle

Bonjour,

Je veux séparer des données dans des classeurs existants. La seule chose qui
permet de les différencier, c'est une bordure supérieure en trait épais.
En faisant une macro (qui fonctionne), j'ai obtenu le code suivant :
Cells.Find(What:="", After:¬tiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:úlse _
, SearchFormat:=True).Activate

Comment puis-je spécifier le format à rechercher?

Merci d'avance



Avatar
Gilbert
Merci Isabelle
Je vais tester ça, mais je n'ai pas compris ce qui ne se recalcule pas tout
seul....

--
Cordialement,

Gilbert


"isabelle" a écrit dans le message de
news:
bonjour Gilbert,

ce n'est pas possible avec Find mais il y a une possibilité avec une
fonction perso,

mais attention est ne se recalcule pas tout seul, il faut appuyer sur F9

Function EstBonFormat(cellule As Range) As Integer
Application.Volatile
With cellule.Borders(xlEdgeTop)
If .LineStyle = xlContinuous And .Weight = xlThick Then
EstBonFormat = 1

End With
End Function

isabelle

Bonjour,

Je veux séparer des données dans des classeurs existants. La seule chose
qui


permet de les différencier, c'est une bordure supérieure en trait épais.
En faisant une macro (qui fonctionne), j'ai obtenu le code suivant :
Cells.Find(What:="", After:¬tiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:úlse _
, SearchFormat:=True).Activate

Comment puis-je spécifier le format à rechercher?

Merci d'avance





Avatar
MichDenis
| > Comment puis-je spécifier le format à rechercher?

| ce n'est pas possible avec Find mais il y a une possibilité avec une fonction perso,
| mais attention est ne se recalcule pas tout seul, il faut appuyer sur F9

Voici un exemple comment faire pour utiliser la méthode "find"
pour rechercher un format et boucler ....

Évidemment, je compte sur toi pour adapter cette procédure
au besoin du demandeur !

;-))

Rechercher un format de cellules particulier et Boucler

---------------------------------------------
Sub TrouverFormat()

Dim Rg As Range
Dim LeCellFormat As CellFormat

Set LeCellFormat = Application.FindFormat
'Détermine les caractéristiques
'du format de cellule recherché.
With LeCellFormat
.Clear 'S'assurer d'effacer les critères
'des anciennes recherches
.Interior.ColorIndex = 36
'La liste pourrait être plus longue ...
End With

'Détermine la plage de cellules où s'effectue
'la recherche
With Worksheets("Feuil1")
Set Rg = .Range("A:A")
End With

'Trouve la cellule ayant le bon format pour
'y effectuer une ou des opérations quelconques...
With Rg
Set C = .Find(What:="", SearchFormat:=True)
If Not C Is Nothing Then
adr = C.Address
Do
'Le code que tu veux exécuter avec la cellule trouvée
C.Select
'pour passer à la cellule suivante ...
Set C = .Find(What:="", after:¬tiveCell, SearchFormat:=True)
Loop Until C.Address = adr
End If
End With

End Sub






Je veux séparer des données dans des classeurs existants. La seule chose qui
permet de les différencier, c'est une bordure supérieure en trait épais.
En faisant une macro (qui fonctionne), j'ai obtenu le code suivant :
Cells.Find(What:="", After:¬tiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:úlse _
, SearchFormat:=True).Activate


Merci d'avance



Avatar
Gilbert
Désolé pour l'autre message. Je viens de comprendre (dans l'aide d'Excel) ce
qu'est une fonction volatile.
Merci

--
Cordialement,

Gilbert


"isabelle" a écrit dans le message de
news:
bonjour Gilbert,

ce n'est pas possible avec Find mais il y a une possibilité avec une
fonction perso,

mais attention est ne se recalcule pas tout seul, il faut appuyer sur F9

Function EstBonFormat(cellule As Range) As Integer
Application.Volatile
With cellule.Borders(xlEdgeTop)
If .LineStyle = xlContinuous And .Weight = xlThick Then
EstBonFormat = 1

End With
End Function

isabelle

Bonjour,

Je veux séparer des données dans des classeurs existants. La seule chose
qui


permet de les différencier, c'est une bordure supérieure en trait épais.
En faisant une macro (qui fonctionne), j'ai obtenu le code suivant :
Cells.Find(What:="", After:¬tiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:úlse _
, SearchFormat:=True).Activate

Comment puis-je spécifier le format à rechercher?

Merci d'avance





Avatar
isabelle
salut Denis,

tu viens de me faire découvrir quelque chose que je n'avais pas remarqué, merci à toi,

isabelle

| > Comment puis-je spécifier le format à rechercher?

| ce n'est pas possible avec Find mais il y a une possibilité avec une fonction perso,
| mais attention est ne se recalcule pas tout seul, il faut appuyer sur F9

Voici un exemple comment faire pour utiliser la méthode "find"
pour rechercher un format et boucler ....

Évidemment, je compte sur toi pour adapter cette procédure
au besoin du demandeur !

;-))

Rechercher un format de cellules particulier et Boucler

---------------------------------------------
Sub TrouverFormat()

Dim Rg As Range
Dim LeCellFormat As CellFormat

Set LeCellFormat = Application.FindFormat
'Détermine les caractéristiques
'du format de cellule recherché.
With LeCellFormat
.Clear 'S'assurer d'effacer les critères
'des anciennes recherches
.Interior.ColorIndex = 36
'La liste pourrait être plus longue ...
End With

'Détermine la plage de cellules où s'effectue
'la recherche
With Worksheets("Feuil1")
Set Rg = .Range("A:A")
End With

'Trouve la cellule ayant le bon format pour
'y effectuer une ou des opérations quelconques...
With Rg
Set C = .Find(What:="", SearchFormat:=True)
If Not C Is Nothing Then
adr = C.Address
Do
'Le code que tu veux exécuter avec la cellule trouvée
C.Select
'pour passer à la cellule suivante ...
Set C = .Find(What:="", after:¬tiveCell, SearchFormat:=True)
Loop Until C.Address = adr
End If
End With

End Sub





Je veux séparer des données dans des classeurs existants. La seule chose qui
permet de les différencier, c'est une bordure supérieure en trait épais.
En faisant une macro (qui fonctionne), j'ai obtenu le code suivant :
Cells.Find(What:="", After:¬tiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:úlse _
, SearchFormat:=True).Activate


Merci d'avance







Avatar
Gilbert
Magnifique! Merci beaucoup. Je vais adapter ça.

--
Cordialement,

Gilbert


"MichDenis" a écrit dans le message de
news:uzc$
| > Comment puis-je spécifier le format à rechercher?

| ce n'est pas possible avec Find mais il y a une possibilité avec une
fonction perso,

| mais attention est ne se recalcule pas tout seul, il faut appuyer sur F9

Voici un exemple comment faire pour utiliser la méthode "find"
pour rechercher un format et boucler ....

Évidemment, je compte sur toi pour adapter cette procédure
au besoin du demandeur !

;-))

Rechercher un format de cellules particulier et Boucler

---------------------------------------------
Sub TrouverFormat()

Dim Rg As Range
Dim LeCellFormat As CellFormat

Set LeCellFormat = Application.FindFormat
'Détermine les caractéristiques
'du format de cellule recherché.
With LeCellFormat
.Clear 'S'assurer d'effacer les critères
'des anciennes recherches
.Interior.ColorIndex = 36
'La liste pourrait être plus longue ...
End With

'Détermine la plage de cellules où s'effectue
'la recherche
With Worksheets("Feuil1")
Set Rg = .Range("A:A")
End With

'Trouve la cellule ayant le bon format pour
'y effectuer une ou des opérations quelconques...
With Rg
Set C = .Find(What:="", SearchFormat:=True)
If Not C Is Nothing Then
adr = C.Address
Do
'Le code que tu veux exécuter avec la cellule trouvée
C.Select
'pour passer à la cellule suivante ...
Set C = .Find(What:="", after:¬tiveCell, SearchFormat:=True)
Loop Until C.Address = adr
End If
End With

End Sub






Je veux séparer des données dans des classeurs existants. La seule chose
qui


permet de les différencier, c'est une bordure supérieure en trait épais.
En faisant une macro (qui fonctionne), j'ai obtenu le code suivant :
Cells.Find(What:="", After:¬tiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:úlse _
, SearchFormat:=True).Activate


Merci d'avance