Sélection de plusieurs cellules sur deux colonnes

Bonjour tout le monde,

Je veux écrire une macro, qui me selectionne les lignes qui n'ont que des valeurs numériques et les lignes vides qui sont en dessous de ces lignes avec valeurs numériques. (Sur les colonnes D et E, j'ai des valeurs NA# et des valeurs numeriques)

Pour en suite faire un remplissage de couleur verte et en fin filtre sur cette couleur.

J'ai réussi à écrire une macro qui fait le remplissage et le filtre mais à partir des cellules selectionnées à la main. Ce que je sais pas faire c'est lui demandé de selectionner les ces cellules automatiquement.

Merci d'avance pour votre aide !

Code :

7classeur2.xlsx (22.24 Ko)

Sub Macro1Test()
'
' Macro1Test Macro
'
' Touche de raccourci du clavier: Ctrl+m

ActiveCell.CurrentRegion.Activate
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65280
.TintAndShade = 0
.PatternTintAndShade = 0
End With
ActiveWorkbook.Worksheets("Synthese").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Synthese").AutoFilter.Sort.SortFields.Add(Range( _
"D3:D8402"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color _
= RGB(0, 255, 0)
ActiveSheet.Range("$D$3:$H$8402").AutoFilter Field:=1, Criteria1:=RGB(0, _
255, 0), Operator:=xlFilterCellColor

End Sub

Voici le fichier prenant en charge les macros !

Merci !

9classeur2.xlsm (32.72 Ko)

Bonjour,

Cliquez sur le bouton Hop !

Code de la macro EnVert() dans module 1 :

Sub EnVert()
Const LigneDeb = 3   ' numéro de ligne du titre de la colonne D
Dim derlig&, t, i&, Acolorer As Boolean

   With Sheets("Feuil1")
      Application.ScreenUpdating = False
      .Range(.Cells(LigneDeb + 1, "d"), .Cells(Rows.Count, "e")).Interior.ColorIndex = xlColorIndexNone
      If .FilterMode Then .ShowAllData
      derlig = .Cells(.Rows.Count, "d").End(xlUp).Row
      If derlig = LigneDeb Then Exit Sub
      t = .Range(.Cells(1, "d"), .Cells(derlig, "d"))
      For i = LigneDeb + 1 To UBound(t)
         If IsError(t(i, 1)) Then
            Acolorer = False
         ElseIf t(i, 1) = "" Then
            If Acolorer Then Cells(i, "d").Resize(, 2).Interior.Color = vbGreen
         ElseIf IsNumeric(t(i, 1)) Then
            Acolorer = True
            Cells(i, "d").Resize(, 2).Interior.Color = vbGreen
         End If
      Next i
   End With
End Sub

Bonjour,

Le code fonctionne ! Je vous remercie bcp pour votre aide

Re,

Idem mais avec une macro FiltrerVert() qui alternativement affiche toutes le lignes ou seulement les lignes en vert.

Son code :

Sub FiltrerVert()
Const LigneDeb = 3   ' numéro de ligne du titre de la colonne D
Dim derlig&

   With Sheets("Feuil1")
      Application.ScreenUpdating = False
      If .FilterMode Then
         .ShowAllData
      Else
         If .AutoFilterMode Then .Cells.AutoFilter
         derlig = .Cells(.Rows.Count, "d").End(xlUp).Row
         .Range(.Cells(LigneDeb, "d"), .Cells(derlig, "e")).AutoFilter Field:=1, Criteria1:=vbGreen, Operator:=xlFilterCellColor
      End If
   End With
End Sub

Oh merci beaucoup, le code fonctionne à merveille.

Rechercher des sujets similaires à "selection deux colonnes"