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

Le
Choko
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
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
Hervé
Le #20657391
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" 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
Choko
Le #20657671
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é
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" 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


Fredo P.
Le #20658721
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"
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
Hervé
Le #20672671
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" 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é
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" 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


Publicité
Poster une réponse
Anonyme