XL 2010 se deplacer vers le bas en VBA

  • Initiateur de la discussion Initiateur de la discussion philmaure
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

philmaure

XLDnaute Impliqué
bonjour,

comment dupliquer la commande : Range(Selection, Selection.End(xlDown)).Select jusqu'à ce qu'il y a des données

Dans mon exemple joint, en se positionnant sur la cellule A1 comment sélectionner l'ensemble des données.

Je ne souhaite pas comme solution la sélection de la colonne a en totalité mais bien que les données.

Merci pour votre aide
Cdlt
Philmaure
 

Pièces jointes

re,

merci pour la réponse mais effectivement j'ai mal exprimé mon besoin

dans un tableau avec X ligne et colonne, j'ai besoin de faire une selection précise.
si dans ma macro je met 28 fois la ligne de commande : Range(Selection, Selection.End(xlDown)).Select
je parviens à sélectionner ce dont j'ai besoin.

Ma question est est -il possible de simplifier ma macro et eviter de copier 28 fois la ligne de commande.

Merci
Cdlt
Philippe
 
euh..

voir ce code et les différentes façons de sélectionner

Code:
Sub sel()
'selection de toutes les datas sur la colonne A à partir de A2
Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row).Select

'selection uniquement du bloc A2
Range("A2").CurrentRegion.Select

'selection uniquement du bloc A10
Range("A10").CurrentRegion.Select


'selection des i blocs les uns après les autres
For i = 1 To 2
    Range("A" & 8 * i - 6).CurrentRegion.Select
Next i
End Sub
 
Bonjour à tous.

Juste pour s'amuser :​
VB:
Sub toto()
Dim m&, i&, j&, k&, p As Range
  With [A1].Cells
    m = Cells(Rows.Count, .Column).End(xlUp).Row
    If m <= .Row Then
      If .Value <> "" Then Set p = .Cells Else MsgBox "Rien !": Exit Sub
    Else
      For i = m To .Row Step -1
        If Cells(i, .Column).Value = "" Then
          j = i - (i < m)
          If j < m Then
            If p Is Nothing Then
              Set p = Range(Cells(j, .Column), Cells(k, .Column))
            Else
              Set p = Union(Range(Cells(k, .Column), Cells(j, .Column)), p)
            End If
          End If
          For k = i To .Row Step -1
            If Cells(k, .Column) <> "" Then Exit For
          Next
          i = k
        Else
          If i = m Then k = m: Set p = Range(Cells(m, .Column), Cells(m, .Column))
        End If
      Next
      If p Is Nothing Then Set p = Range(Cells(.Row, .Column), Cells(m, .Column))
      If .Value <> "" And k <> 0 Then Set p = Union(Range(Cells(.Row, .Column), Cells(k, .Column)), p)
    End If
  End With
  p.Select
End Sub

En prime, ça ne plante pas si la colonne est vide...


Bonne soirée.


ℝOGER2327
#8314

Samedi 21 Tatane 143 (Saints Catoblepas, lord et Anoblepas, amiral - fête Suprême Quarte)
16 Thermidor An CCXXIV, 6,5589h - guimauve
2016-W31-3T15:44:29Z
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
799
Réponses
3
Affichages
539
Retour