selection cellules

poipoi59

XLDnaute Junior
Bonjour,

J'ai une feuille de calcul avec un tri de cellules fait par macro.

J'aimerais ajouter une macro qui permet de selectionner une plage de cellules uniquement si les cellules sont non vides ET différentes de "".


Merci pour votre aide
 

job75

XLDnaute Barbatruc
Re : selection cellules

Re,

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

A+
 

wilfried_42

XLDnaute Barbatruc
Re : selection cellules

re:

bonjour job

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
si tu n'as pas de formule, le code reste :
Code:
range("A:E").Cells.SpecialCells(xlCellTypeConstants).select
 

poipoi59

XLDnaute Junior
Re : selection cellules

re:

bonjour job

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
si tu n'as pas de formule, le code reste :
Code:
range("A:E").Cells.SpecialCells(xlCellTypeConstants).select



Bonjour,

Merci ça marche nickel, par contre qu'il ne sélectionne les cellules vides et différentes de "" qu'à compter de la 3ème ligne

Est-ce possible ?

Merci de mettre à disposition vos connaissances

poipoi59
 

Discussions similaires

Réponses
26
Affichages
421

Membres actuellement en ligne

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS