Selection de toutes les cellules d'une même valeur
4 réponses
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.. .
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
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
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" <frederic.evrard@gmail.com> a écrit dans le message de
news:e9398c69-2de1-4a9e-8caf-07fcf285c026@9g2000yqa.googlegroups.com...
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.. .
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
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
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é <mhsi...@orange.fr> 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" <frederic.evr...@gmail.com> a écrit dans le message denews:e939 8c69-2de1-4a9e-8caf-07fcf285c026@9g2000yqa.googlegroups.com...
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.. .
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
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
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" <frederic.evrard@gmail.com> a écrit dans le message de news:
e9398c69-2de1-4a9e-8caf-07fcf285c026@9g2000yqa.googlegroups.com...
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.. .
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
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
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" <frederic.evrard@gmail.com> a écrit dans le message de
news:0f0971ed-e1c7-4894-bef0-3846848927b2@b2g2000yqi.googlegroups.com...
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é <mhsi...@orange.fr> 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" <frederic.evr...@gmail.com> a écrit dans le message
denews:e9398c69-2de1-4a9e-8caf-07fcf285c026@9g2000yqa.googlegroups.com...
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.. .
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.. .