Problème de sélection

OngNoi Messages postés 11 Statut Membre -  
OngNoi Messages postés 11 Statut Membre -
Je débute en macro Excel et je ne sais pas comment écrire le code pour faire les
choses suivantes:
1) A partir de la cellule active, descendre le curseur de 2 cellules en dessous.
2) A partir de la cellule active, amener le curseur à la colonne A de la même
ligne (je ne connais pas les références de la cellule active) ?
3) A partir d'une position donnée dans une colonne de données, comment écrire le
code pour sélectionner la première cellule vide ?

Merci

2 réponses

Cub Messages postés 13 Statut Membre 3
 
Voici une petite macro que j'ai écrite pour le boulot qui contient les exemples que tu souhaites :

Sub Macro1()
' le 22/06/2007 par Cub
' OriCol et OriLig : Ligne et colonne de la case de la matrice en heut à gauche
' Fonctionne si case vide à droite de la matrice et case vide en bas

OriCol = 3
OriLig = 2

pos_ligne = OriLig
pos_col = OriCol

celluleCourante = Cells(OriLig, OriCol)
Do While celluleCourante <> ""
pos_ligne = pos_ligne + 1
nbligne = nbligne + 1
celluleCourante = Cells(pos_ligne, OriCol)
Loop

celluleCourante = Cells(OriLig, OriCol)
Do While celluleCourante <> ""
pos_col = pos_col + 1
nbcol = nbcol + 1
celluleCourante = Cells(OriLig, pos_col)
Loop

MsgBox ("matrice de " & nbligne & " lignes et " & nbcol & "colonnes")
'
End Sub
0
OngNoi Messages postés 11 Statut Membre 3
 
Merci Cub de ta prompte réponse. Ta macro est intéressante et j'ai bien noté le code pour m'en servir pour un autre projet. En fait , si j'avais besoin de sélectionner la matrice, j'aurais simplement sélectionné la plage de la cellule en haut à gauche jusqu'à la dernière cellule en bas à droite en une seule instruction:
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select

Dans mon projet je dois copier puis coller 2 plages de données de longueur variable, l'une à la suite de l'autre. Seule la cellule en haut à gauche du premier collage est connue: A42. Avec l'instruction suivante je sais sélectionner la dernière cellule en bas à droite du premier collage.
ActiveCell.SpecialCells(xlLastCell).Select

Pour coller la 2è plage de données, je veux sélectionner la cellule qui se trouve par exemple dans la colonne B à 3 lignes au dessous de celle de xlLastCell. Existe-t-il un code VB tout simple pour faire ce Select ?

Merci
0
Utilisateur anonyme
 
Bonjour,

1) A partir de la cellule active, descendre le curseur de 2 cellules en dessous.

ActiveCell.Offset(2, 0).Select

2) A partir de la cellule active, amener le curseur à la colonne A de la même
ligne (je ne connais pas les références de la cellule active) ?

Range("A" & ActiveCell.Offset(0, 0).Row).Select

3) A partir d'une position donnée dans une colonne de données, comment écrire le
code pour sélectionner la première cellule vide ?

Dim Position As Long

Position = ActiveCell.Offset(0, 0).End(xlDown).Row
ActiveCell.Offset(Position, 0).Select

--------------

Lupin
0
OngNoi Messages postés 11 Statut Membre 3
 
Bonjour Lupin,

Tu as répondu exactement à mes questions.
MERCI BEAUCOUP

OngNoi
0
OngNoi Messages postés 11 Statut Membre 3
 
Re-bonjour Lupin,

Je t'ai quitté un peu vite car la 3è instruction ne marche pas, elle donne des résultats bizarres.
Mais elle m'a inspiré et j'ai trouvé la bonne syntaxe pour aller à la première cellule vide de la colonne:

Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select

Les 2 autres instructions marchent à merveille

Merci encore
0