Selection de cellule dans une page non vide

elgringo123456

XLDnaute Occasionnel
Supporter XLD
Bonjour,

Je vous sollcite sur la problématique suivante : selection dans une plage de cellules, les cellules non vide.

Il existe en vba le code permettant les cellules vides d'une plage :
SpecialCells(xlCellTypeBlanks))

Existe-t-il la méthode avec l'option du genre : xlCellTypeNonBlanks car je ne l'ai pas trouvé

J'utilise dans une fonction le test :
For Each Cell In Selection
If (Len(Trim(Cell)) <> 0) Then

Il est également possible d'utiliser le test "Not (IsEmpty)" mais au final ces méthodes sont consommatrices de ressources et inutilisables avec beaucoup de cellules d'ou l'envie de trouver la méthode citée précédemment à savoir sélectionner les cellules non vide d'une plage de données.

Merci d'avance de votre aide,
Cordialement
El Gringo 123456
:D
 

ROGER2327

XLDnaute Barbatruc
Re : Selection de cellule dans une page non vide

Bonsoir elgringo123456
Essayez ceci :
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim c As Long
   With Selection
      On Error Resume Next
      c = 2 * (.SpecialCells(xlCellTypeConstants).Count > 0)
      c = c + (.SpecialCells(xlCellTypeFormulas).Count > 0)
      On Error GoTo 0
      Select Case c
         Case -1: .SpecialCells(xlCellTypeFormulas).Select
         Case -2: .SpecialCells(xlCellTypeConstants).Select
         Case -3: Union(.SpecialCells(xlCellTypeConstants), .SpecialCells(xlCellTypeFormulas)).Select
         Case Else: ActiveCell.Select
      End Select
   End With
End Sub[/B][/COLOR]
ROGER2327
#2706
 

Gorfael

XLDnaute Barbatruc
Re : Selection de cellule dans une page non vide

Salut elgringo123456 et le forum
On peut trouver un tas de méthodes, mais ça reviendra à faire une boucle.
Peut-être que si on connaissaît le but à atteindre, pas la méthode que tu comptes utiliser, mais ce que tu veux avoir en final, on pourrait te proposer une autre idée, plus rapide à réaliser.
A+
 

ROGER2327

XLDnaute Barbatruc
Re : Selection de cellule dans une page non vide

Re...
C'est effectivement beaucoup plus court et très efficace pour engendrer des erreurs.
Une proposition d'amélioration :
Code:
[COLOR="DarkSlateGray"][B]Sub Macro1()
Dim nonvide As Range
   On Error GoTo E
   Set nonvide = Union(Cells.SpecialCells(-4123), Cells.SpecialCells(2))
   nonvide.Select
Exit Sub
E: MsgBox "Prière de n'utiliser cette procédure que dans une feuille " & vbLf & _
   "contenant au moins une formule et au moins une constante !"
End Sub[/B][/COLOR]
ROGER2327
#2710
 

soenda

XLDnaute Accro
Re : Selection de cellule dans une page non vide

Bonjour le fil, Roger, elgringo, Gorfael, Stapple

Le brin suivant sélectionne les cellules non-vide de la plage [A1:A15]

- La cellule [A1] doit-être vide
- On Error ... Pour le cas "aucune cellule trouvée"

Code:
    On Error Resume Next
    [A1:A15].ColumnDifferences([A1]).Select
A plus
 

elgringo123456

XLDnaute Occasionnel
Supporter XLD
Re : Selection de cellule dans une page non vide

Bonjour,

Je vous importune mais j'ai du mal à trouver la solution en reprenant le travail de Soenda je n'arrive pas à sélectionner uniquement les cellules vide et je ne comprends pas pourquoi :

Cells.Select
Selection.ColumnDifferences(Cells.SpecialCells(xlCellTypeBlanks).Select).Select

Par contre avec cette instruction cela fonctionne :
Cells.Select
Selection.ColumnDifferences([A1]).Select

Je vous embete encore mais ne sait-on jamais.

Merci d'avance,
Cordialement.
Elgringo 123456
 

elgringo123456

XLDnaute Occasionnel
Supporter XLD
Re : Selection de cellule dans une page non vide

Bonjour,

Je vous importune encore et en fait je cherche par la méthode de Soenda de récupérer sur la base d'une selection de Range de ne sélectionner uniquement les cellules non vides.

Dans le fichier joint vous verrez qu'en utilisant la méthode :

Range("A2:A7").Select
Selection.ColumnDifferences(Cells.SpecialCells(xlCellTypeBlanks)).Select

La sélection des zones non vides contenues dans A2 à A7 ne fonctionne pas.

Pourriez-vous me dire ce que je ne comprends pas ? A quoi est-ce du ?

Encore désolé de vous importuner.

Merci d'avance.
Cordialement.
Elgringo 123456
 

Discussions similaires

Réponses
3
Affichages
593

Statistiques des forums

Discussions
312 752
Messages
2 091 665
Membres
105 039
dernier inscrit
rouibi