XL 2013 Colorier lignes d'un tableau en fonction d'une valeur recherchée

don_pets

XLDnaute Occasionnel
Bonjour le fofo,

Besoin de vous sur un petit blocage.

Voici le concept :

But du jeu : surligner les lignes lorsqu'une valeur est présente.

L'idée est simple si le mot désiré est dans une colonne fixe avec un nombre de colonne connu à l'avance.

(cf pièce jointe)

Code:
With Sheets(2)

    For i = 2 To .Range("A36553").End(xlUp).Row
        Set plage = Sheets(2).Columns("A:I").Rows(i)
            If .Cells(i, 6).Value = "Clos" Then
            plage.Interior.ColorIndex = 37
            End If
            
    Next i

End With

Là où ça se complique c'est que les tableaux ne sont pas tous identiques, tant en nombre de colonne que la colonne dans laquelle se situe le terme recherché.

Moralité il faudrait que je puisse adjoindre à mon code une double variable du genre:
Code:
Col=sheets (2)Range("A1").End(xlToRight).Select
Nom=inputbox("Dans quelle colonne se trouve la recherche ?")

Ou alors d'élargir la recherche sur tout le tableau, du genre :

Code:
sheets(2).range("a1").select
plage=selection.currentregion.select

Bref quelque soit le chemin que je prends je n'arrive à pas au résultat (simple) escompté.

L'un de vous aurait-il une brillante idée ?

Merci par avance,

don
 

Pièces jointes

  • Test.xlsm
    25.7 KB · Affichages: 35
  • Test.xlsm
    25.7 KB · Affichages: 32

don_pets

XLDnaute Occasionnel
Re : Colorier lignes d'un tableau en fonction d'une valeur recherchée

Salut Modeste,

en fait non je veux pouvoir le gérer en vb.

Ce n'est qu'un partie de mon code (le reste c'est de l'import, de l'édition, tout ça tout ça), et du coup je veux pouvoir l'industrialiser par vb et non mfc
 

Modeste

XLDnaute Barbatruc
Re : Colorier lignes d'un tableau en fonction d'une valeur recherchée

Re,

Tu n'as pas précisé le volume de données à traiter; essaie peut-être ce qui suit:
VB:
Private Sub CommandButton1_Click()

With Sheets(2)
    nbCol = Application.CountA(.[1:1])
    For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
        If Application.CountIf(.Cells(i, 1).Resize(1, nbCol), "Clos") Then _
        .Cells(i, 1).Resize(1, nbCol).Interior.ColorIndex = 37
    Next i
End With

End Sub
 

Paf

XLDnaute Barbatruc
Re : Colorier lignes d'un tableau en fonction d'une valeur recherchée

Bonjour don_pets, Modeste,

Si la valeur "Clos" ne se trouve que dans une colonne, un essai :
Code:
Sub LaMacroquicherche()
 Dim Plage As Range, LigFin As Long, ColFin As Integer, Trouve, Recherche As String

 Recherche = "Clos"
 With Sheets(2)
 Set Plage = .Range("a1").CurrentRegion
 ColFin = Plage.SpecialCells(xlCellTypeLastCell).Column
 LigFin = Plage.SpecialCells(xlCellTypeLastCell).Row
 Set Trouve = Plage.Find(Recherche, LookIn:=xlValues, lookat:=xlWhole)
 If Not Trouve Is Nothing Then
    Col = Trouve.Column
    For i = 1 To LigFin
        If .Cells(i, Col).Value = Recherche Then
            Range(.Cells(i, 1), .Cells(i, ColFin)).Interior.ColorIndex = 37
        End If
    Next i
 Else
    MsgBox "Aucune donnée " & Recherche & " n'a été trouvée "
    Exit Sub
 End If
 End With
End Sub

A+
 

don_pets

XLDnaute Occasionnel
Re : Colorier lignes d'un tableau en fonction d'une valeur recherchée

yeaaa,

Je viens de tester vos 2 méthodes, c'est mouchos perfect.

Pour la bonne forme paf tu as oublié juste un "." avant le range (pour ceux qui copieraient le code).

Merci vous deux,

Encore une fois ma demande est satisfaite,

Have a cool day

don
 

Paf

XLDnaute Barbatruc
Re : Colorier lignes d'un tableau en fonction d'une valeur recherchée

Re

@ don_pets
tu as oublié juste un "." avant le range

Pas besoin dans ce cas puisque les cellules de début et de fin sont référencées à la feuille concernée

@ Modeste

j'avais loupé le post #4 : solution plus légère que la mienne, notamment pour la gestion des "Clos" :)

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 092
Messages
2 085 223
Membres
102 826
dernier inscrit
ag amestan