OVH Cloud OVH Cloud

selection partielle de ActiveCell.CurrentRegion

47 réponses
Avatar
J
Bonjour (XL2000)VBA
j'ai des range construits sur le même modèle, (colonne A à F) mais d'un
nombre de lignes variables.
le nombre de ces range est variable.

Quand j'ai une cellule d'un range qui est sélectionnée, je sais
sélectionner tout le bloc : ActiveCell.CurrentRegion.Select

Mais comment sélectionner seulement "de la 1ere cellule de la colonne B
à la dernière cellule de la colle F" de cette CurrentRegion?

merci,à tous et bon dimanche
@+
J@@

10 réponses

1 2 3 4 5
Avatar
J
Je reposte, mon envoi précédent s'est perdu tout en bas :-<<<
merci à toi lSteph

Rebonjour lSteph
c'est moins bien ;-)
ta 1ere solution était plus proche, j'ai beau donner des coups de
tournevis dans tous les sens, je n'améliore rien.
Et en plus (mais ce n'est pas à cause de cela) j'ai une fuite d'eau dans
la cuisine, faut que je coure chercher la boîte à outils :-<

j'ai mis un embryon de fichier sur cjoint

http://cjoint.com/?iBv0kK7N4a

Bonne soirée (matinée pour moi, j'ai le dimanche devant moi :-))
@+
J@@


Re, J@@

Sub CurRegSaufPremCol()
With ActiveCell.CurrentRegion
If Not IsEmpty(.Cells(.Cells.Count)) Then
Range(.Cells(1).Offset(1, 1), .Cells(.Cells.Count)).Select
Else
Range(.Cells(1).Offset(1, 1), .Cells(.Cells.Count).End(xlUp)).Select
End If
End With
End Sub

'Bonne soirée

"J@@" a écrit dans le message de news:

Bonjour lSteph
(réponse tardive, suis allé dormir :-)
ta réponse sélectionne en effet, dans CurrentRegion, depuis la 1ere
cellule de B, mais va jusqu'au bout de la CurrentRegion, alors que je
voudrais sélectionner "que" jusqu'à la dernière cellule de la colonne F de
cette CurrentRegion.

Par ailleurs, en vrai de vrai, je voulais sélectionné depuis le *2ème*
cellule de B, je pensai adapter aisément le code, et beh ... je ne vois
pas comment.

Merci pour les lumières
cordialement
J@@

Bonjour J@@,

Ceci irait-il:

Sub CurRegSaufPremCol()
With ActiveCell.CurrentRegion
Range(.Cells(2), .Cells(.Cells.Count)).Select
End With
End Sub

'Cordialement.

LSteph

"J@@" a écrit dans le message de news:

Bonjour (XL2000)VBA
j'ai des range construits sur le même modèle, (colonne A à F) mais d'un
nombre de lignes variables.
le nombre de ces range est variable.

Quand j'ai une cellule d'un range qui est sélectionnée, je sais
sélectionner tout le bloc : ActiveCell.CurrentRegion.Select

Mais comment sélectionner seulement "de la 1ere cellule de la colonne B
à la dernière cellule de la colle F" de cette CurrentRegion?

merci,à tous et bon dimanche
@+
J@@









Avatar
lSteph
Re,

à mon grand étonnement, il n'y a rien en F au delà du titre
les matrices arrivent au même niveau sur chaque ligne , donc sauf erreur
les codes précédents paraissent opèrer selon la première demande.
L'objectif contenu dans le cadre s'éloigne vivement de ce que j'avais cru
comprendre, faut-il le considèrer?.
Quand tu auras réparé ta fuite d'eau, j'aurais rejoint les bras de
morphée....
Aussi comme pour moi le Dimanche touche à sa fin,
tu peux indiquer toutes précisions pour ceux qui ont encore un oeil ouvert.

Je te souhaite, d'avance...

Bonne nuit.

lSteph

"J@@" a écrit dans le message de news:

Je reposte, mon envoi précédent s'est perdu tout en bas :-<<<
merci à toi lSteph

Rebonjour lSteph
c'est moins bien ;-)
ta 1ere solution était plus proche, j'ai beau donner des coups de
tournevis dans tous les sens, je n'améliore rien.
Et en plus (mais ce n'est pas à cause de cela) j'ai une fuite d'eau dans
la cuisine, faut que je coure chercher la boîte à outils :-<

j'ai mis un embryon de fichier sur cjoint

http://cjoint.com/?iBv0kK7N4a

Bonne soirée (matinée pour moi, j'ai le dimanche devant moi :-))
@+
J@@


Re, J@@

Sub CurRegSaufPremCol()
With ActiveCell.CurrentRegion
If Not IsEmpty(.Cells(.Cells.Count)) Then
Range(.Cells(1).Offset(1, 1), .Cells(.Cells.Count)).Select
Else
Range(.Cells(1).Offset(1, 1), .Cells(.Cells.Count).End(xlUp)).Select
End If
End With
End Sub

'Bonne soirée

"J@@" a écrit dans le message de news:

Bonjour lSteph
(réponse tardive, suis allé dormir :-)
ta réponse sélectionne en effet, dans CurrentRegion, depuis la 1ere
cellule de B, mais va jusqu'au bout de la CurrentRegion, alors que je
voudrais sélectionner "que" jusqu'à la dernière cellule de la colonne F
de cette CurrentRegion.

Par ailleurs, en vrai de vrai, je voulais sélectionné depuis le *2ème*
cellule de B, je pensai adapter aisément le code, et beh ... je ne vois
pas comment.

Merci pour les lumières
cordialement
J@@

Bonjour J@@,

Ceci irait-il:

Sub CurRegSaufPremCol()
With ActiveCell.CurrentRegion
Range(.Cells(2), .Cells(.Cells.Count)).Select
End With
End Sub

'Cordialement.

LSteph

"J@@" a écrit dans le message de news:

Bonjour (XL2000)VBA
j'ai des range construits sur le même modèle, (colonne A à F) mais
d'un nombre de lignes variables.
le nombre de ces range est variable.

Quand j'ai une cellule d'un range qui est sélectionnée, je sais
sélectionner tout le bloc : ActiveCell.CurrentRegion.Select

Mais comment sélectionner seulement "de la 1ere cellule de la colonne
B à la dernière cellule de la colle F" de cette CurrentRegion?

merci,à tous et bon dimanche
@+
J@@











Avatar
FxM
Bonsoir J@@,

Non testé (comme d'hab dirait JPS) :

sub test()
'sur une seule ligne
set zone = intersect(activecell.currentregion,range("A1:F1").entirecolumn)
'jusqu'ici

if not isnothing(zone) then zone.select
end sub

@+
FxM



Bonjour (XL2000)VBA
j'ai des range construits sur le même modèle, (colonne A à F) mais d'un
nombre de lignes variables.
le nombre de ces range est variable.

Quand j'ai une cellule d'un range qui est sélectionnée, je sais
sélectionner tout le bloc : ActiveCell.CurrentRegion.Select

Mais comment sélectionner seulement "de la 1ere cellule de la colonne B
à la dernière cellule de la colle F" de cette CurrentRegion?

merci,à tous et bon dimanche
@+
J@@


Avatar
FL
Re bonjour
Si j'ai un peu mieux compris, , après t'être positionné dans le tableau dont
tu souhaites la sélection

Sub a()
While ActiveCell.Offset(i) <> ""
i = i - 1
Wend
While ActiveCell.Offset(j) <> ""
j = j + 1
Wend
ligne1 = ActiveCell.Row + i + 1
ligne2 = ActiveCell.Row + j - 1
Range("B" & ligne1 & ":F" & ligne2).Select
End Sub

Cordialement
FL


"J@@" a écrit dans le message de news:

Bonjour FL
en effet, tu n'es pas le seul, des ténèbres de ma pensée tortueuse ne peut
jaillir la lumière :-<

Dois-je comprendre que sur la même feuille tu as plusieurs tableaux qui
se trouvent de la colonne A à la colonne F. et que tu veux que quelque
soit le tableau ou tu te trouves sélectionner entre B et F la partie
courante.
voilà, c'est cela

A tout hasard, j'ai joint un fichier là : http://cjoint.com/?iBv0kK7N4a

merci à toi
J@@


@+
FL

"J@@" a écrit dans le message de news:

Bonjour FL
merci à toi
Là, le départ est bon, mais cela ne se limite pas à la CurrentRegion
@+
cordialement
J@@
Bonjour,
essaies cela

Range( "B"& Range("B1").end(xldown).row & ":F"&
Range("F65536").end(xlup).row)

Cordialement
FL


"J@@" a écrit dans le message de news:

Bonjour (XL2000)VBA
j'ai des range construits sur le même modèle, (colonne A à F) mais
d'un nombre de lignes variables.
le nombre de ces range est variable.

Quand j'ai une cellule d'un range qui est sélectionnée, je sais
sélectionner tout le bloc : ActiveCell.CurrentRegion.Select

Mais comment sélectionner seulement "de la 1ere cellule de la colonne
B à la dernière cellule de la colle F" de cette CurrentRegion?

merci,à tous et bon dimanche
@+
J@@











Avatar
FL
Le code de FxM marche avec IsEmpty au lieu de isNothing

Sub test()
Set zone = Intersect(ActiveCell.CurrentRegion,
Range("B1:F1").EntireColumn)
If Not IsEmpty(zone) Then zone.Select
End Sub

le résultat est identique apparemment à
Sub a()
While ActiveCell.Offset(i) <> ""
i = i - 1
Wend
While ActiveCell.Offset(j) <> ""
j = j + 1
Wend
ligne1 = ActiveCell.Row + i + 1
ligne2 = ActiveCell.Row + j - 1
Range("B" & ligne1 & ":F" & ligne2).Select
End Sub

Cordialement
FL

"FxM" a écrit dans le message de news:

Bonsoir J@@,

Non testé (comme d'hab dirait JPS) :

sub test()
'sur une seule ligne
set zone =
intersect(activecell.currentregion,range("A1:F1").entirecolumn)
'jusqu'ici

if not isnothing(zone) then zone.select
end sub

@+
FxM



Bonjour (XL2000)VBA
j'ai des range construits sur le même modèle, (colonne A à F) mais d'un
nombre de lignes variables.
le nombre de ces range est variable.

Quand j'ai une cellule d'un range qui est sélectionnée, je sais
sélectionner tout le bloc : ActiveCell.CurrentRegion.Select

Mais comment sélectionner seulement "de la 1ere cellule de la colonne B
à la dernière cellule de la colle F" de cette CurrentRegion?

merci,à tous et bon dimanche
@+
J@@




Avatar
J
Bonjour FxM
merci pour la réponse
ton code fonctionne après une discrète retouche, saurais-tu (en plus ;-)
)comment l'adapter pour qu'il *ne sélectionne pas* la 1ere ligne de
cette CurrentRegion?
STP

Sub test2()
Dim zone As Range
Set zone = Intersect(ActiveCell.CurrentRegion,
Range("B1:F1").EntireColumn)
If Not zone Is Nothing Then zone.Select
End Sub

J'en bave avec mes explications filandreuses, qui semblent avoir
effondrées du monde ;-)
Mon dimanche s'achevant, je ne vais pas tarder à rejoindre Morphée et
ses célèbres bras :-)
@+
J@@

Bonsoir J@@,

Non testé (comme d'hab dirait JPS) :

sub test()
'sur une seule ligne
set zone = intersect(activecell.currentregion,range("A1:F1").entirecolumn)
'jusqu'ici

if not isnothing(zone) then zone.select
end sub

Bonjour (XL2000)VBA
j'ai des range construits sur le même modèle, (colonne A à F) mais
d'un nombre de lignes variables.
le nombre de ces range est variable.

Quand j'ai une cellule d'un range qui est sélectionnée, je sais
sélectionner tout le bloc : ActiveCell.CurrentRegion.Select

Mais comment sélectionner seulement "de la 1ere cellule de la colonne
B à la dernière cellule de la colle F" de cette CurrentRegion?




Avatar
FL
avec le code suivant, la première ligne n'est pas sélectionnée.

Sub a()
While ActiveCell.Offset(i) <> ""
i = i - 1
Wend
While ActiveCell.Offset(j) <> ""
j = j + 1
Wend
ligne1 = ActiveCell.Row + i + 2
ligne2 = ActiveCell.Row + j - 1
Range("B" & ligne1 & ":F" & ligne2).Select
End Sub

Cordialement
FL

"J@@" a écrit dans le message de news:

Bonjour FxM
merci pour la réponse
ton code fonctionne après une discrète retouche, saurais-tu (en plus
;-) )comment l'adapter pour qu'il *ne sélectionne pas* la 1ere ligne de
cette CurrentRegion?
STP

Sub test2()
Dim zone As Range
Set zone = Intersect(ActiveCell.CurrentRegion,
Range("B1:F1").EntireColumn)
If Not zone Is Nothing Then zone.Select
End Sub

J'en bave avec mes explications filandreuses, qui semblent avoir
effondrées du monde ;-)
Mon dimanche s'achevant, je ne vais pas tarder à rejoindre Morphée et ses
célèbres bras :-)
@+
J@@

Bonsoir J@@,

Non testé (comme d'hab dirait JPS) :

sub test()
'sur une seule ligne
set zone =
intersect(activecell.currentregion,range("A1:F1").entirecolumn)
'jusqu'ici

if not isnothing(zone) then zone.select
end sub

Bonjour (XL2000)VBA
j'ai des range construits sur le même modèle, (colonne A à F) mais d'un
nombre de lignes variables.
le nombre de ces range est variable.

Quand j'ai une cellule d'un range qui est sélectionnée, je sais
sélectionner tout le bloc : ActiveCell.CurrentRegion.Select

Mais comment sélectionner seulement "de la 1ere cellule de la colonne B
à la dernière cellule de la colle F" de cette CurrentRegion?






Avatar
J
Bon lundi lSteph
je ne suis guère meilleur, -pour la plomberie, que -pour VBA, que -pour
les explications.
Je pensais, avec la solution à ma question initiale, me débrouiller tout
seul après, mais en testant, je ne parviens pas à modifier les
propositions pour cadrer sur ce que je veux.

à mon grand étonnement, il n'y a rien en F au delà du titre
c'est moi qui ai toiletté un peu vite, mais il arrive qu'il y ait du

rab, ex : test en G5, ou qu'il y ait des blancs dans les saisies, sauf
en A, B et C.

les matrices arrivent au même niveau sur chaque ligne , donc sauf erreur
les codes précédents paraissent opèrer selon la première demande.
L'objectif contenu dans le cadre s'éloigne vivement de ce que j'avais cru
comprendre, faut-il le considèrer?.
je cherche sur le forum des pistes, pas trop pointillées, puis j'adapte,

quand je peux, et parfois je patine...
le descriptif du cadre est bon.

Quand tu auras réparé ta fuite d'eau, j'aurais rejoint les bras de
morphée....
j'ai résolu les fuites d'évacuations de l'évier, pas celles de l'alim.

Les bricoleurs du dimanche...

Aussi comme pour moi le Dimanche touche à sa fin,
tu peux indiquer toutes précisions pour ceux qui ont encore un oeil ouvert.

Je te souhaite, d'avance...

Bonne nuit.

lSteph
Apparemment tu n'es pas le seul qui s'est emmêlé dans mes explications ;-)

Merci et bon réveil à toi :-)
@+
J@@


"J@@"
Je reposte, mon envoi précédent s'est perdu tout en bas :-<<<
merci à toi lSteph

Rebonjour lSteph
c'est moins bien ;-)
ta 1ere solution était plus proche, j'ai beau donner des coups de
tournevis dans tous les sens, je n'améliore rien.
Et en plus (mais ce n'est pas à cause de cela) j'ai une fuite d'eau dans
la cuisine, faut que je coure chercher la boîte à outils :-<

j'ai mis un embryon de fichier sur cjoint

http://cjoint.com/?iBv0kK7N4a

Bonne soirée (matinée pour moi, j'ai le dimanche devant moi :-))
@+
J@@


Re, J@@

Sub CurRegSaufPremCol()
With ActiveCell.CurrentRegion
If Not IsEmpty(.Cells(.Cells.Count)) Then
Range(.Cells(1).Offset(1, 1), .Cells(.Cells.Count)).Select
Else
Range(.Cells(1).Offset(1, 1), .Cells(.Cells.Count).End(xlUp)).Select
End If
End With
End Sub

"J@@" <
ta réponse sélectionne en effet, dans CurrentRegion, depuis la 1ere
cellule de B, mais va jusqu'au bout de la CurrentRegion, alors que je
voudrais sélectionner "que" jusqu'à la dernière cellule de la colonne F
de cette CurrentRegion.

Par ailleurs, en vrai de vrai, je voulais sélectionné depuis le *2ème*
cellule de B, je pensai adapter aisément le code, et beh ... je ne vois
pas comment.

Bonjour J@@,

Ceci irait-il:

Sub CurRegSaufPremCol()
With ActiveCell.CurrentRegion
Range(.Cells(2), .Cells(.Cells.Count)).Select
End With
End Sub

"J@@" <
Bonjour (XL2000)VBA
j'ai des range construits sur le même modèle, (colonne A à F) mais
d'un nombre de lignes variables. le nombre de ces range est variable.

Quand j'ai une cellule d'un range qui est sélectionnée, je sais
sélectionner tout le bloc : ActiveCell.CurrentRegion.Select

Mais comment sélectionner seulement "de la 1ere cellule de la colonne
B à la dernière cellule de la colle F" de cette CurrentRegion?












Avatar
J
Bonjour et merci à la famille F
FxM : le code fonctionne, mais je vois pas bien comment le modifier,
FL : plus visuel pour moi, j'y retourne pour l'intégrer dans mon projet
@+
Cordialement
J@@

Le code de FxM marche avec IsEmpty au lieu de isNothing

Sub test()
Set zone = Intersect(ActiveCell.CurrentRegion,
Range("B1:F1").EntireColumn)
If Not IsEmpty(zone) Then zone.Select
End Sub

le résultat est identique apparemment à
Sub a()
While ActiveCell.Offset(i) <> ""
i = i - 1
Wend
While ActiveCell.Offset(j) <> ""
j = j + 1
Wend
ligne1 = ActiveCell.Row + i + 1
ligne2 = ActiveCell.Row + j - 1
Range("B" & ligne1 & ":F" & ligne2).Select
End Sub

Cordialement
FL

"FxM" a écrit dans le message de news:

Bonsoir J@@,

Non testé (comme d'hab dirait JPS) :

sub test()
'sur une seule ligne
set zone =
intersect(activecell.currentregion,range("A1:F1").entirecolumn)
'jusqu'ici

if not isnothing(zone) then zone.select
end sub

@+
FxM



Bonjour (XL2000)VBA
j'ai des range construits sur le même modèle, (colonne A à F) mais d'un
nombre de lignes variables.
le nombre de ces range est variable.

Quand j'ai une cellule d'un range qui est sélectionnée, je sais
sélectionner tout le bloc : ActiveCell.CurrentRegion.Select

Mais comment sélectionner seulement "de la 1ere cellule de la colonne B
à la dernière cellule de la colle F" de cette CurrentRegion?

merci,à tous et bon dimanche
@+
J@@








Avatar
J
Bonjour FL
C'est bon. J'ai intégré ton code dans mon ébauche, que voici :
Question complémentaire :
Je souhaite sélectionner (puis copier) successivement chacune de ces
zones existant dans la feuille.
Comme chaque zone correspond à un groupe "Sexe : F" ou "Sexe : M",
comment faire pour
For each "sexe" then etc
Next sexe
(Ca fait un peu bizarre, je sais ...
Merci pour les idées
@+
cordialement
J@@

'****
Sub test_suite()
Dim Rg As Range
On Error Resume Next
With Worksheets("Liste_test")
Set Rg = .Range("A1:A" &
.Range("A65356").End(xlUp).Row).Find("Sexe").Offset(3, 1)
If Not Rg Is Nothing Then
Rg.Select
'codeFL
While ActiveCell.Offset(i) <> ""
i = i - 1
Wend
While ActiveCell.Offset(j) <> ""
j = j + 1
Wend
ligne1 = ActiveCell.Row + i + 2
ligne2 = ActiveCell.Row + j - 1
Range("B" & ligne1 & ":F" & ligne2).Select
'codeFL
End If
End With
Set Rg = Nothing
End Sub
'****

avec le code suivant, la première ligne n'est pas sélectionnée.

Sub a()
While ActiveCell.Offset(i) <> ""
i = i - 1
Wend
While ActiveCell.Offset(j) <> ""
j = j + 1
Wend
ligne1 = ActiveCell.Row + i + 2
ligne2 = ActiveCell.Row + j - 1
Range("B" & ligne1 & ":F" & ligne2).Select
End Sub

Cordialement
FL

"J@@" <
Bonjour FxM
merci pour la réponse
ton code fonctionne après une discrète retouche, saurais-tu (en plus
;-) )comment l'adapter pour qu'il *ne sélectionne pas* la 1ere ligne de
cette CurrentRegion?
STP

Sub test2()
Dim zone As Range
Set zone = Intersect(ActiveCell.CurrentRegion,
Range("B1:F1").EntireColumn)
If Not zone Is Nothing Then zone.Select
End Sub

J'en bave avec mes explications filandreuses, qui semblent avoir
effondrées du monde ;-)
Mon dimanche s'achevant, je ne vais pas tarder à rejoindre Morphée et ses
célèbres bras :-)
@+
J@@

Bonsoir J@@,

Non testé (comme d'hab dirait JPS) :

sub test()
'sur une seule ligne
set zone =
intersect(activecell.currentregion,range("A1:F1").entirecolumn)
'jusqu'ici

if not isnothing(zone) then zone.select
end sub

Bonjour (XL2000)VBA
j'ai des range construits sur le même modèle, (colonne A à F) mais d'un
nombre de lignes variables.
le nombre de ces range est variable.

Quand j'ai une cellule d'un range qui est sélectionnée, je sais
sélectionner tout le bloc : ActiveCell.CurrentRegion.Select

Mais comment sélectionner seulement "de la 1ere cellule de la colonne B
à la dernière cellule de la colle F" de cette CurrentRegion?










1 2 3 4 5