[VBA] Lancer une feuille à partir d'une plage X puis toutes les 7 lignes

Bonjour,

Grace au code ci-dessous, lorsque je double-clique sur les cellules D10 à V10 une feuille "MangerUnePomme.show" qui se lance.
J'aurais aimé reproduire le même schéma mais toutes les 7 lignes tout en gardant les mêmes colonnes D et V.

Est-ce faisable ?

Le code :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
    If Not Application.Intersect(Target, Range("D10:V10")) Is Nothing Then
        MangerUnePomme.show
    End If
End Sub

Bonjour,

Un essai ...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim x As Integer

   Cancel = True
   For x = 10 To 2000 Step 7  ' < adapter le chiffre 2000
      If Not Application.Intersect(Target, Range("D" & x & ":V" & x)) Is Nothing Then
         MangerUnePomme.Show
      End If
   Next x
End Sub

ric

Je te remercie, ça marche super bien !

Est-ce possible de définir "à l'infini" aulieu de 2000 ?
Car j'ai vu également que si je mets un trop grand chiffre cela prend un certain temps parfois pour sélectionner une cellule.

Bonjour,

Est-ce que jusqu'à la dernière ligne contenant des données conviendrait ?

un essai ...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim x As Integer
Dim Dlig As Integer

   Application.ScreenUpdating = False
   Cancel = True

   Dlig = Cells(Rows.Count, "D").End(xlUp).Row

   For x = 10 To Dlig Step 7  ' < adapter le chiffre 2000
      If Not Application.Intersect(Target, Range("D" & x & ":V" & x)) Is Nothing Then
         MangerUnePomme.Show
      End If
   Next x
End Sub

ric

C'est parfait, merci beaucoup !

Bonjour,

Une version que j'aime mieux > elle fonctionnera quelque soit la hauteur dans la colonne ...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim x As Integer

   Cancel = True
   If Target.Count > 1 Then Exit Sub

   Application.ScreenUpdating = False

   If Not Application.Intersect(Target, Range("D:V")) Is Nothing Then
      x = Target.Row - 10
      If Target.Row = 10 Then
         MangerUnePomme.Show
      ElseIf (x / 7) - (Int(x / 7)) = 0 Then
         MangerUnePomme.Show
      End If
   End If
End Sub

ric

Rechercher des sujets similaires à "vba lancer feuille partir plage puis toutes lignes"