Sélectionner un plage de donées avec VBA

F

Fabian

Guest
Bonsoir à tous,

Je suis en train de créer une macro qui va d'abord se placer dans une case donnée dont l'enplacement varie tout le temps mais pas le texte qui est à l'intérieur.

Une fois que je suis dans cette case je souhaite sélectioner la plage de cellule qui est à côté. Mais je ne sais pas comment faire. En fait je voudrais que la plage de données varie en fonction de la cellule trouver lors des premières étape de la macro.

Ex: Si le curseur se place en A5 je voudrais que A5:F6soit sélectionné. S'il est en A10, je voudrais que ce soit A10:F11.

Merci pour vos conseils avisés!

A bientôt,

Fabian.
 

adebrux

XLDnaute Occasionnel
Salut Fabian,

En supposant que tu veuilles toujours sélectionner une plage qui descende d'une ligne et qui avance de 5 colonnes, tu peux faire le code suivant pour créer ta plage de donnée sur excel.
Je suppose dans mon code que 'ma_cellule' est la cellule que tu as déjà trouvée précédement.

Code:
Dim premier As Boolean
Dim col, ligne As Integer
Sheets(1).Activate
'attention, g mis comme cellule de départ A1, il faudra peut être la changer
col = Range('A1').Column
ligne = Range('A1').Row
premier = True
For i = ligne To ligne + 1
    For j = col To col + 5
        If premier = True Then
            Cells(i, j).Name = 'maplage'
            premier = False
        Else
            Union(Range('maplage'), Cells(i, j)).Name = 'maplage'
        End If
    Next j
Next i

Bon courage pour la suite, et n'hésite pas à poser des questions si nécessaire

A+
Arnaud
 

Hellboy

XLDnaute Accro
Bonjour Fabian, adebrux

Une autre proposition:


Option Explicit

Public Sub Plage()
       
Dim intLigneStart As Integer, intLigneEnd As Integer, _
                intColStart   
As Integer, intColEnd    As Integer
       
With ActiveCell
                    intColStart = .Column + 1
'    A côté et je suppose ici que c'est vers la droite
                    intLigneStart = .Row
       
End With
        intColEnd = Cells(intLigneStart, intColStart).End(xlToRight).Column
        intLigneEnd = Cells(intLigneStart, intColEnd).End(xlDown).Row
        Range(Cells(intLigneStart, intColStart), Cells(intLigneEnd, intColEnd)).Select
End Sub

Message édité par: Hellboy, à: 08/11/2005 19:26