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

Selection de toutes les cellules d'une même valeur

4 réponses
Avatar
Choko
Bonjour =E0 tous,

Comment selectionner sous xl2003 toutes les cellules d'une plage
contenant la valeur '2' par exemple sachant que je dois faire une
boucle sur chaque valeur (1 =E0 8) pour y affecter un format sp=E9cial =E0
chacune.

Je cherche =E0 =E9viter le 'for each Cell in MaPlage ...'car la tache est
vraiment trop longue, certainement car je m'y prends mal en formatant
Cell par Cell plutot que par une selection de plage discontinue.. .

D'avance merci

Choko

4 réponses

Avatar
Hervé
Bonjour Choko,

La proc ci-dessous recherche dans les colonnes de A à D (adapte) en faisant
une boucle sur les 8 chiffres en les recherchant dans la plage et en
applicant un formatage particulier pour chacun d'eux (pour l'exemple, sur 1
et 2).

Teste pour voir et adapte :

Private Sub Chercher()

Dim Plage As Range
Dim Cel As Range
Dim Adr As String
Dim I As Integer

'plage de recherche en
'colonnes A à D (à adapter)
Set Plage = Range([A1], [D65536].End(xlUp))

'Recherche des chiffres 1 à 8
For I = 1 To 8

Set Cel = Plage.Find(I, [A1], , xlWhole)

If Not Cel Is Nothing Then

Adr = Cel.Address
'Cherche toutes les cellules
'ici, adapter le formatage
Do
'exemple de formatage :
Select Case I
Case 1 'pour les chiffres 1
'couleur du fond en rouge
Cel.Interior.ColorIndex = 3
Case 2 'pour les chiffres 2
'fonte en gras et taille 14
Cel.Font.Bold = True
Cel.Font.Size = 14
Case 3 'etc...
'...
Case 4
'...
Case 5
'...
Case 6
'...
Case 7
'...
Case 8
'...
End Select

Set Cel = Plage.FindNext(Cel)
Loop While Adr <> Cel.Address

End If

Next I

Set Cel = Nothing
Set Plage = Nothing

End Sub

Hervé.


"Choko" a écrit dans le message de
news:
Bonjour à tous,

Comment selectionner sous xl2003 toutes les cellules d'une plage
contenant la valeur '2' par exemple sachant que je dois faire une
boucle sur chaque valeur (1 à 8) pour y affecter un format spécial à
chacune.

Je cherche à éviter le 'for each Cell in MaPlage ...'car la tache est
vraiment trop longue, certainement car je m'y prends mal en formatant
Cell par Cell plutot que par une selection de plage discontinue.. .

D'avance merci

Choko
Avatar
Choko
Le select case ne répond pas tout à fait à mon besoin.

J''aimerais faire une boucle sur la plage en demandant d'unir
progressivement les cellules répondants au critère pour ainsi obtenir
une plage discontinue sélectionnée. Une fois cette sélection obtenue,
on aurait plus qu'à lui appliquer le format, plutôt que de faire x
fois le format (lourd dans mon cas (bordures/couleur/police...)).

Je ne me souviens plus comme faire un union de cellule selon un
critère.
Mon idée est elle possible?


On 29 nov, 15:03, Hervé wrote:
Bonjour Choko,

La proc ci-dessous recherche dans les colonnes de A à D (adapte) en fai sant
une boucle sur les 8 chiffres en les recherchant dans la plage et en
applicant un formatage particulier pour chacun d'eux (pour l'exemple, sur 1
et 2).

Teste pour voir et adapte :

Private Sub Chercher()

Dim Plage As Range
Dim Cel As Range
Dim Adr As String
Dim I As Integer

        'plage de recherche en
        'colonnes A à D (à adapter)
    Set Plage = Range([A1], [D65536].End(xlUp))

        'Recherche des chiffres 1 à 8
    For I = 1 To 8

        Set Cel = Plage.Find(I, [A1], , xlWhole)

        If Not Cel Is Nothing Then

            Adr = Cel.Address
            'Cherche toutes les cellules
            'ici, adapter le formatage
            Do
            'exemple de formatage :
                Select Case I
                    Case 1 'pour les chiffres 1
            'couleur du fond en rouge
                        Cel.Interior.ColorIndex = 3
                    Case 2 'pour les chiffres 2
            'fonte en gras et taille 14
                        Cel.Font.Bold = True
                        Cel.Font.Size = 14
                    Case 3 'etc...
                    '...
                    Case 4
                    '...
                    Case 5
                    '...
                    Case 6
                    '...
                    Case 7
                    '...
                    Case 8
                    '...
                End Select

                Set Cel = Plage.FindNext(Cel)
            Loop While Adr <> Cel.Address

        End If

    Next I

Set Cel = Nothing
Set Plage = Nothing

End Sub

Hervé.

"Choko" a écrit dans le message denews:e939
Bonjour à tous,

Comment selectionner sous xl2003 toutes les cellules d'une plage
contenant la valeur '2' par exemple sachant que je dois faire une
boucle sur chaque valeur (1 à 8) pour y affecter un format spécial à
chacune.

Je cherche à éviter le 'for each Cell in MaPlage ...'car la tache est
vraiment trop longue, certainement car je m'y prends mal en formatant
Cell par Cell plutot que par une selection de plage discontinue.. .

D'avance merci

Choko


Avatar
Fredo P.
La vitesse d'éxécution est en étroite relation avec les commandes
"Application"
à Adapter et essayer
Sub Macro1()
Dim c As Object
Dim plg As Range
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Set plg = [A1:M10]
For Each c In plg
If c = 2 Then
c.Font.Bold = True
c.Font.ColorIndex = 8
c.Interior.ColorIndex = 3
c.Borders.Color = 8
c.Borders.LineStyle = 7
c.Font.Underline = xlUnderlineStyleSingle

End If
Next
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

End Sub
--

Fredo P.


"Choko" a écrit dans le message de news:

Bonjour à tous,

Comment selectionner sous xl2003 toutes les cellules d'une plage
contenant la valeur '2' par exemple sachant que je dois faire une
boucle sur chaque valeur (1 à 8) pour y affecter un format spécial à
chacune.

Je cherche à éviter le 'for each Cell in MaPlage ...'car la tache est
vraiment trop longue, certainement car je m'y prends mal en formatant
Cell par Cell plutot que par une selection de plage discontinue.. .

D'avance merci

Choko
Avatar
Hervé
Bonsoir,

Exemple très simple. Ce n'est pas une union de cellules mais une sélection
multiple. A voir si cela peut t'aider :

Dim Plage As Range
Dim Cel As Range
Dim Adr As String

Set Plage = [A1:D25]

'mémorise les adresses de cellules
For Each Cel In Plage
If Cel = 10 Then
Adr = Adr & Cel.Address & ","
End If
Next Cel
'gère l'erreur si aucune cellule
On Error GoTo Fin
'supprime la dernière virgule
Adr = Left(Adr, Len(Adr) - 1)
'selectionne les cellules
Range(Adr).Select
With Selection.Font
.Bold = True
.Size = 14
End With
Fin:

Hervé.

"Choko" a écrit dans le message de
news:
Le select case ne répond pas tout à fait à mon besoin.

J''aimerais faire une boucle sur la plage en demandant d'unir
progressivement les cellules répondants au critère pour ainsi obtenir
une plage discontinue sélectionnée. Une fois cette sélection obtenue,
on aurait plus qu'à lui appliquer le format, plutôt que de faire x
fois le format (lourd dans mon cas (bordures/couleur/police...)).

Je ne me souviens plus comme faire un union de cellule selon un
critère.
Mon idée est elle possible?


On 29 nov, 15:03, Hervé wrote:
Bonjour Choko,

La proc ci-dessous recherche dans les colonnes de A à D (adapte) en
faisant
une boucle sur les 8 chiffres en les recherchant dans la plage et en
applicant un formatage particulier pour chacun d'eux (pour l'exemple, sur
1
et 2).

Teste pour voir et adapte :

Private Sub Chercher()

Dim Plage As Range
Dim Cel As Range
Dim Adr As String
Dim I As Integer

'plage de recherche en
'colonnes A à D (à adapter)
Set Plage = Range([A1], [D65536].End(xlUp))

'Recherche des chiffres 1 à 8
For I = 1 To 8

Set Cel = Plage.Find(I, [A1], , xlWhole)

If Not Cel Is Nothing Then

Adr = Cel.Address
'Cherche toutes les cellules
'ici, adapter le formatage
Do
'exemple de formatage :
Select Case I
Case 1 'pour les chiffres 1
'couleur du fond en rouge
Cel.Interior.ColorIndex = 3
Case 2 'pour les chiffres 2
'fonte en gras et taille 14
Cel.Font.Bold = True
Cel.Font.Size = 14
Case 3 'etc...
'...
Case 4
'...
Case 5
'...
Case 6
'...
Case 7
'...
Case 8
'...
End Select

Set Cel = Plage.FindNext(Cel)
Loop While Adr <> Cel.Address

End If

Next I

Set Cel = Nothing
Set Plage = Nothing

End Sub

Hervé.

"Choko" a écrit dans le message
denews:
Bonjour à tous,

Comment selectionner sous xl2003 toutes les cellules d'une plage
contenant la valeur '2' par exemple sachant que je dois faire une
boucle sur chaque valeur (1 à 8) pour y affecter un format spécial à
chacune.

Je cherche à éviter le 'for each Cell in MaPlage ...'car la tache est
vraiment trop longue, certainement car je m'y prends mal en formatant
Cell par Cell plutot que par une selection de plage discontinue.. .

D'avance merci

Choko