Bonjour,
Je souhaiterai effectuer, en VBA, une sélection, vers le haut, de la cellule où se situe mon curseur vers la 2ème cellule de la même colonne.
Exemple : de C20 à C2 ou de Z300 à Z2
Pourriez-vous m'aider ?
Merci
Version imprimable
Bonjour,
Je souhaiterai effectuer, en VBA, une sélection, vers le haut, de la cellule où se situe mon curseur vers la 2ème cellule de la même colonne.
Exemple : de C20 à C2 ou de Z300 à Z2
Pourriez-vous m'aider ?
Merci
Bonjour,
A tester :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Option Explicit Public AireSelectionnee As Range Sub SelectionnerLesCellules() With ActiveSheet If ActiveCell.Row > 1 Then Set AireSelectionnee = .Range(ActiveCell, .Cells(2, ActiveCell.Column)) MsgBox AireSelectionnee.Address End If End With End Sub
désolé mais ton code ne fonctionne pas
Pourrais-tu me dire pourquoi celui-ci pose problème
MerciCode:
1
2 'Selectionner de la cellule active jusqu'à la deuxième ligne 'Range(Selection, Cells(ActiveCell.Column, 3)).Select
Bonjour
@Eric
n'y aurait il pas quelque chose qui te gène dans ce principeCode:
1
2
3 With ActiveSheet If ActiveCell.Row > 1 Then Set AireSelectionnee = .Range(ActiveCell, .Cells(2, ActiveCell.Column))
que vient faire activecell dans un bloc with activesheet ?
jusqu'à preuve du contraire activecell donne la cellule active de l'activesheet non?
ca se résume a ca
:koi:Code:Set AireSelectionnee =ActiveCell.resize(2,1)
Salut.
Les deux codes donnés par Patrick, apparemment non testés, ne donnent évidemment pas le même résultat... Le premier donné par Eric étant le bon, le "raccourci" emprunté par Patrick ne répondant pas à la demande initiale.
Pièce jointe 483894
bonjour pierre
2 codes????
j'en ai qu'un !! c'est le Resize!!! l'autre c'est une reprise de Eric pour montrer ce qui me dérangeais ( je n'avais pas a le tester )
edit:
et si je prend la demande initiale au pied de la lettre
je fait comme ceciCitation:
Bonjour,
Je souhaiterai effectuer, en VBA, une sélection, vers le haut, de la cellule où se situe mon curseur vers la 2ème cellule de la même colonne.
Exemple : de C20 à C2 ou de Z300 à Z2
Pourriez-vous m'aider ?
Merci
l'adress est bonne et le sheets parent est bien reconnu (sans block with activesheet)Code:
1
2
3
4 Sub testx() Set Rng = Range(ActiveCell, ActiveCell.Offset(-ActiveCell.Row + 2)) MsgBox Rng.Parent.Name & vbCrLf & Rng.Address End Sub
Tu sembles dire, au #6, que les deux codes donnent le même résultat ( "ca se résume a ca "). Je dis que les deux codes ne donnent pas le même résultat, donc, "ca ne se résume pas à ça"... Et je ne vois pas ce qu'il y a comme problème à utiliser ActiveSheet et ActiveCell dans la même ligne de code.
C'est juste cela que je souhaitais souligner.
Si j'ai mal interprété ton intervention, clarifie-la.
re
je me suis mal exprimé
"ca se résume a ca" c'est pour ma version
en considérant que l'activecell soi dans la rows(1)
mais a relire la demande initiale">1" ca pouvait être plus bas
pour le with activesheet:....activecell
je le fais jamais ca évite les erreurs du genre activesheet.activecell qui plante forcement car activesheet n'a pas de membre activecell
par contre activecell a bien un membre ".parent"
autrement dit par activecell tu peux tout chopper y compris le parent(qui est le activesheet)(démo dans le édit)
En attendant, le code d'Eric réalise ce que le demandeur demande et celui que tu donnais en #6 pas, comme l'illustre l'image que j'ai postée dans mon premier message. Avais-tu testé ton code? Il suffisait pourtant de regarder les adresses des plages restituées par le code d'Eric et le tien pour voir de suite lequel était le bon et lequel était le mauvais. Après, le code que tu donnes en #8 est correct, c'est juste une autre façon de coder que ce qui avait déjà été donné avant.
C'est vraiment n'importe quoi :triste: