OVH Cloud OVH Cloud

Selection automatique de lignes

9 réponses
Avatar
Daniel
Re Bonjour à tous le forum!

Je repose la question avec le bon intitulé !

Je cherche le code qui me permet de selectionner toute les lignes d'une
feuille dans lesquelles il y à une saisie.

Je m'explique. J'ai une feuille avec 2 valeurs. 1 Saisie en E3 et l'autre
saisie en C400. La macro doit donc selectionner toutes les lignes de la
feuille de la ligne 1 à 400.

Ensuite, je cherche à faire la même chose, mais q'uniquement à partir de la
ligne 4 de la feuille! La macro devra donc selectionner de la ligne 4 à 400.


Merci d'avance

9 réponses

Avatar
michdenis
Bonjour Daniel,


Tu peux utiliser ceci :

Range("1:400").EntireRow.Select

et

Range(4:400").EntireRow.Select


Cherches-tu autre chose ?


Salutations!


"Daniel" a écrit dans le message de news:
Re Bonjour à tous le forum!

Je repose la question avec le bon intitulé !

Je cherche le code qui me permet de selectionner toute les lignes d'une
feuille dans lesquelles il y à une saisie.

Je m'explique. J'ai une feuille avec 2 valeurs. 1 Saisie en E3 et l'autre
saisie en C400. La macro doit donc selectionner toutes les lignes de la
feuille de la ligne 1 à 400.

Ensuite, je cherche à faire la même chose, mais q'uniquement à partir de la
ligne 4 de la feuille! La macro devra donc selectionner de la ligne 4 à 400.


Merci d'avance
Avatar
michdenis
Il manquait un guillement au second range ...

Range("1:400").EntireRow.Select
et
Range("4:400").EntireRow.Select


Salutations!


"michdenis" a écrit dans le message de news:
Bonjour Daniel,


Tu peux utiliser ceci :

Range("1:400").EntireRow.Select

et

Range(4:400").EntireRow.Select


Cherches-tu autre chose ?


Salutations!


"Daniel" a écrit dans le message de news:
Re Bonjour à tous le forum!

Je repose la question avec le bon intitulé !

Je cherche le code qui me permet de selectionner toute les lignes d'une
feuille dans lesquelles il y à une saisie.

Je m'explique. J'ai une feuille avec 2 valeurs. 1 Saisie en E3 et l'autre
saisie en C400. La macro doit donc selectionner toutes les lignes de la
feuille de la ligne 1 à 400.

Ensuite, je cherche à faire la même chose, mais q'uniquement à partir de la
ligne 4 de la feuille! La macro devra donc selectionner de la ligne 4 à 400.


Merci d'avance
Avatar
Daniel
Bonjour michdenis!

Ce que je cherchai en fait c'est ça :

Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select

Merci beaucoup à vous !


"michdenis" wrote:

Il manquait un guillement au second range ...

Range("1:400").EntireRow.Select
et
Range("4:400").EntireRow.Select


Salutations!


"michdenis" a écrit dans le message de news:
Bonjour Daniel,


Tu peux utiliser ceci :

Range("1:400").EntireRow.Select

et

Range(4:400").EntireRow.Select


Cherches-tu autre chose ?


Salutations!


"Daniel" a écrit dans le message de news:
Re Bonjour à tous le forum!

Je repose la question avec le bon intitulé !

Je cherche le code qui me permet de selectionner toute les lignes d'une
feuille dans lesquelles il y à une saisie.

Je m'explique. J'ai une feuille avec 2 valeurs. 1 Saisie en E3 et l'autre
saisie en C400. La macro doit donc selectionner toutes les lignes de la
feuille de la ligne 1 à 400.

Ensuite, je cherche à faire la même chose, mais q'uniquement à partir de la
ligne 4 de la feuille! La macro devra donc selectionner de la ligne 4 à 400.


Merci d'avance






Avatar
AV
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select


Je me permets d'attirer ton attention sur les limites de l'utilisation de
xlLastCell ou UsedRange
Nombreux fils sur le sujet mais simple rappel :
une cellule vide mais simplement formatée différemment du format par défaut sera
considérée de la même façon qu'une cellule renseignée
A toi de voir...

AV

Avatar
Daniel
C'est vrai que ce n'est pas le code que je cherchait initialement! A tu une
autre solution à me proposer ?



Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select


Je me permets d'attirer ton attention sur les limites de l'utilisation de
xlLastCell ou UsedRange
Nombreux fils sur le sujet mais simple rappel :
une cellule vide mais simplement formatée différemment du format par défaut sera
considérée de la même façon qu'une cellule renseignée
A toi de voir...

AV






Avatar
michdenis
Bonjour Daniel,


Pour déterminer la dernière cellule utilisée soit par une valeur ou une formule d'une feuille de calcul :

'------------------------------
Dim DerLig As Long
Dim DerCol As Integer

'donne la dernière ligne occupée
'soit par une valeur ou une formule
DerLig = Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

'donne la dernière ligne occupée
'soit par une valeur
DerLig = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

'donne la dernière colonne occupée
'soit par une valeur ou une formule
DerCol = Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Row

'donne la dernière colonne occupée
'soit par une valeur
DerCol = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

MsgBox Cells(DerLig, DerCol).Address
'------------------------------


Salutations!




"Daniel" a écrit dans le message de news:
Bonjour michdenis!

Ce que je cherchai en fait c'est ça :

Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select

Merci beaucoup à vous !


"michdenis" wrote:

Il manquait un guillement au second range ...

Range("1:400").EntireRow.Select
et
Range("4:400").EntireRow.Select


Salutations!


"michdenis" a écrit dans le message de news:
Bonjour Daniel,


Tu peux utiliser ceci :

Range("1:400").EntireRow.Select

et

Range(4:400").EntireRow.Select


Cherches-tu autre chose ?


Salutations!


"Daniel" a écrit dans le message de news:
Re Bonjour à tous le forum!

Je repose la question avec le bon intitulé !

Je cherche le code qui me permet de selectionner toute les lignes d'une
feuille dans lesquelles il y à une saisie.

Je m'explique. J'ai une feuille avec 2 valeurs. 1 Saisie en E3 et l'autre
saisie en C400. La macro doit donc selectionner toutes les lignes de la
feuille de la ligne 1 à 400.

Ensuite, je cherche à faire la même chose, mais q'uniquement à partir de la
ligne 4 de la feuille! La macro devra donc selectionner de la ligne 4 à 400.


Merci d'avance






Avatar
Daniel
Et donc comment utiliser ce code pour ajouter : Selectionner de la cellule A4
à la dernière cellule determinée par la macro ??


Bonjour Daniel,


Pour déterminer la dernière cellule utilisée soit par une valeur ou une formule d'une feuille de calcul :

'------------------------------
Dim DerLig As Long
Dim DerCol As Integer

'donne la dernière ligne occupée
'soit par une valeur ou une formule
DerLig = Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

'donne la dernière ligne occupée
'soit par une valeur
DerLig = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

'donne la dernière colonne occupée
'soit par une valeur ou une formule
DerCol = Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Row

'donne la dernière colonne occupée
'soit par une valeur
DerCol = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

MsgBox Cells(DerLig, DerCol).Address
'------------------------------


Salutations!




"Daniel" a écrit dans le message de news:
Bonjour michdenis!

Ce que je cherchai en fait c'est ça :

Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select

Merci beaucoup à vous !


"michdenis" wrote:

Il manquait un guillement au second range ...

Range("1:400").EntireRow.Select
et
Range("4:400").EntireRow.Select


Salutations!


"michdenis" a écrit dans le message de news:
Bonjour Daniel,


Tu peux utiliser ceci :

Range("1:400").EntireRow.Select

et

Range(4:400").EntireRow.Select


Cherches-tu autre chose ?


Salutations!


"Daniel" a écrit dans le message de news:
Re Bonjour à tous le forum!

Je repose la question avec le bon intitulé !

Je cherche le code qui me permet de selectionner toute les lignes d'une
feuille dans lesquelles il y à une saisie.

Je m'explique. J'ai une feuille avec 2 valeurs. 1 Saisie en E3 et l'autre
saisie en C400. La macro doit donc selectionner toutes les lignes de la
feuille de la ligne 1 à 400.

Ensuite, je cherche à faire la même chose, mais q'uniquement à partir de la
ligne 4 de la feuille! La macro devra donc selectionner de la ligne 4 à 400.


Merci d'avance











Avatar
michdenis
Bonjour Daniel,

Selon que tu veuiles tenir compte seulement des valeurs affichées ou des valeurs et des formules contenues dans ta feuille de
calcul, tu choisis la méthode appropriée pour déterminer la dernière ligne et la dernière colonne

Voici un exemple, en tenant compte des valeurs ou formules comme dernière cellule dans la feuille

Dim DerLig As Long
Dim DerCol As Integer

'donne la dernière ligne occupée
'soit par une valeur ou une formule
DerLig = Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

'donne la dernière colonne occupée
'soit par une valeur ou une formule
DerCol = Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

Range(Selection, Cells(DerLig, DerCol)).Select


Salutations!

****************************
Comme Il s'est glissé une erreur lors du copier-coller, je retranscris ma réponse initiale :

Dim DerLig As Long
Dim DerCol As Integer

'donne la dernière ligne occupée
'soit par une valeur ou une formule
DerLig = Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

'donne la dernière ligne occupée
'soit par une valeur
DerLig = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

'donne la dernière colonne occupée
'soit par une valeur ou une formule
DerCol = Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

'donne la dernière colonne occupée
'soit par une valeur
DerCol = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

MsgBox Cells(DerLig, DerCol).Address
Avatar
Daniel
Super ! C'est exactement ce qu'il me faillait ! Merci et encor merci !


Bonjour Daniel,

Selon que tu veuiles tenir compte seulement des valeurs affichées ou des valeurs et des formules contenues dans ta feuille de
calcul, tu choisis la méthode appropriée pour déterminer la dernière ligne et la dernière colonne

Voici un exemple, en tenant compte des valeurs ou formules comme dernière cellule dans la feuille

Dim DerLig As Long
Dim DerCol As Integer

'donne la dernière ligne occupée
'soit par une valeur ou une formule
DerLig = Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

'donne la dernière colonne occupée
'soit par une valeur ou une formule
DerCol = Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

Range(Selection, Cells(DerLig, DerCol)).Select


Salutations!

****************************
Comme Il s'est glissé une erreur lors du copier-coller, je retranscris ma réponse initiale :

Dim DerLig As Long
Dim DerCol As Integer

'donne la dernière ligne occupée
'soit par une valeur ou une formule
DerLig = Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

'donne la dernière ligne occupée
'soit par une valeur
DerLig = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

'donne la dernière colonne occupée
'soit par une valeur ou une formule
DerCol = Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

'donne la dernière colonne occupée
'soit par une valeur
DerCol = Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

MsgBox Cells(DerLig, DerCol).Address