Selection de plage de cellule en fonction d'1 cellule refere

Bonjour à tous,

Ca faisait un petit moment que je vous avais pas embeté...

J'ai un tableau pour lequel j'aimerais, en fonction de la cellule active (ou selectionnée), selectionner une plage de cellule

ex :

je clic sur la cellule "A1", je clic sur mon bouton de commande, j'ai la plage (B1:C1;E1:G1) selectionnée

puis si je clic sur A4 alors meme plage mais en ligne 4 = plage (B4:C4;E4:G4) selectionnée

=> toujours les memes colonnes pas jamais la meme ligne de depart,

j'ai gratté un peu partout pour trouver un bout de code qui repondrait à mon besoin, j'ai trouvé des choses interessantes mais je n'arrive pas à le rendre utilisable pour moi.

  'Dim MaPlage As Range
      'Set MaPlage = Range("A" & i & ":L" & i)
ou
      'set MaPlage = Columns("A:L").Rows(i)
(ici j'arrive pas a definir i = cellule active ou selectionnée)

Merci de votre aide

Bonjour,

A tester par double clic sur une cellule colonne A

(code à mettre dans la feuille concernée)

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim Z1 As Range, Z2 As Range, MaPlageMultiZone As Range
    Cancel = True
        If Target.Column = 1 Then
            Set Z1 = Range(Cells(Target.Row, 2), Cells(Target.Row, 3))
            Set Z2 = Range(Cells(Target.Row, 5), Cells(Target.Row, 7))
            Set MaPlageMultiZone = Union(Z1, Z2)
            MaPlageMultiZone.Select
        End If
End Sub

Bonjour M12,

Grand merci, ca marche super. (c'est pas exactement ce que j'avais en tete mais c'est cool)

puis-je mettre autant de plage que je veux z1;z2...;Z15 - avec la fct union ? (bien sur si je declare bien les dim au depart et le set qui vont bien...) c'est pas limité en qté?

Re,

Logiquement OUI

oui ca marche bien,

Desolé de t'embeter encore (derniere promis) pour finir d'optimiser le fichier...peut-on limiter ce code de la ligne 5 à 45?

Re,

A tester

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim Z1 As Range, Z2 As Range, MaPlageMultiZone As Range
    Cancel = True
        If Target.Column = 1 Then
            If Target.Row > 4 And Target.Row < 46 Then
                Set Z1 = Range(Cells(Target.Row, 2), Cells(Target.Row, 3))
                Set Z2 = Range(Cells(Target.Row, 5), Cells(Target.Row, 7))
                Set MaPlageMultiZone = Union(Z1, Z2)
                MaPlageMultiZone.Select
            End If
        End If
End Sub

M12 t'es super

Merci bcp

Rechercher des sujets similaires à "selection plage fonction refere"