Par contre, j'ai mal formulé ma question initiale, si les colonnes de A à J sont alimentés, je ne souhaite sélectionner que toutes les lignes des colonnes A à E
Mais non, je n'aurais pas dû annuler mon 1er post.
Le code proposé par wilfried sélectionne uniquement les constantes, y compris les textes vides "". Et les cellules avec des formules ne sont pas sélectionnées.
Voici donc une autre solution qui dans la plage nommée plage (menu Insertion-Nom) sélectionne les cellules non vides et différentes de "" :
Code:
Sub CellulesPleines()
Dim plein As Range, cel As Range
Set plein = [plage].Find("*", LookIn:=xlValues)
If plein Is Nothing Then MsgBox "Plage vide": Exit Sub
For Each cel In [plage]
If cel <> "" Then Set plein = Union(cel, plein)
Next
plein.Select
End Sub
il est vrai que j'ai omis les formules, mais venant de faire l'essai en mettant Range("B4") = "", la cellule n'est pas selectionnée donc c'est ok il reste les formules s'il y en a
voici avec les résultats de formules
Code:
Sub sel_plage()
Dim plage As Range, frm As Range, c As Range
Set plage = Range("A:E")
Set frm = plage.Cells.SpecialCells(xlCellTypeFormulas)
Set plage = plage.Cells.SpecialCells(xlCellTypeConstants)
For Each c In frm
If c.Text > "" Then Set plage = Application.Union(plage, c)
Next
plage.Select
End Sub
il est vrai que j'ai omis les formules, mais venant de faire l'essai en mettant Range("B4") = "", la cellule n'est pas selectionnée donc c'est ok il reste les formules s'il y en a
voici avec les résultats de formules
Code:
Sub sel_plage()
Dim plage As Range, frm As Range, c As Range
Set plage = Range("A:E")
Set frm = plage.Cells.SpecialCells(xlCellTypeFormulas)
Set plage = plage.Cells.SpecialCells(xlCellTypeConstants)
For Each c In frm
If c.Text > "" Then Set plage = Application.Union(plage, c)
Next
plage.Select
End Sub