OVH Cloud OVH Cloud

selection de range pour une boucle

12 réponses
Avatar
hymotep
Bonjour,

dans un tableau de ce type là:
1 2 3 4 ........ 25 26 27
A 5 6 4 texte
B

je rempli les cellules de A1 à A25 (une cellule par jour)
Je souhaite que la boucle opère sur les 5 dernieres valeurs de la ligne
(A1:A25)
Pour info en A26 il y a du texte ....

je teste cette version sans succés
For Each cell In Range("a1", Range("a1").End(xlRight).Offset(1, 5))

une autre piste serait la fonction décaler et nbval (je les aime bien) mais
est ce transposable en VBA pour definir le range de la boucle ?

vous avez une idée? merci

--
"vas dont savoir quand tu sais pas" Coluche

2 réponses

1 2
Avatar
hymotep
dernier essai payant
désolé Ange je vient de trouver le pourquoi du comment (une cellule vide
cachée, la vilaine)
Cells(20, Cells(20, 1).End(xlToRight).Column - 4).Resize(, 5).Select
cela fonctionne correctement au détail prés qu'il faut minimun 5 cellules
non vide


la persévérence a du bon
--
"vas dont savoir quand tu sais pas" Coluche


"Ange Ounis" wrote:

ange ounis oui j'ai testé, j'ai même indiqué le résultat d1:h1. si tu es
affirmatif je réessairai.


Je le suis !
Ceci dit, si tu as une solution qui te convient, c'est l'essentiel.

----------
Ange Ounis
----------

merci pour vos conseils
pierre ta routine tourne a merveille, exactement ce que je cherche (t'en pis
pour decaler, je le placerai ailleur)

ange ounis oui j'ai testé, j'ai même indiqué le résultat d1:h1. si tu es
affirmatif je réessairai.

encore merci






Avatar
Ange Ounis
Adaptation pour moins de 5 cellules remplies :

'''''''''''''''
Sub Selectionne()
If IsEmpty(Cells(20, 2)) Then
Cells(20, 1).Select
ElseIf Cells(20, 1).End(xlToRight).Column < 5 Then
Cells(20, 1).Resize(, Cells(20, 1).End(xlToRight).Column).Select
Else
Cells(20, Cells(20, 1).End(xlToRight).Column - 4).Resize(, 5).Select
End If
End Sub
'''''''''''''''

----------
Ange Ounis
----------

dernier essai payant
désolé Ange je vient de trouver le pourquoi du comment (une cellule vide
cachée, la vilaine)
Cells(20, Cells(20, 1).End(xlToRight).Column - 4).Resize(, 5).Select
cela fonctionne correctement au détail prés qu'il faut minimun 5 cellules
non vide


la persévérence a du bon


1 2