Récupérer plage de cellule d'une autre feuille selon cellule active

Bonjour,

j'aurais besoin d'aide, cela fait un moment que je cherche la solution à mon problème sans y arriver....

Voila donc mon problème..

J'ai un classeur avec un feuille qui me sert de base, nommée ''MATRI", ( avec des formules) et une feuille sur laquelle les personnes travaillent nommée ''PLANN''.

je souhaiterais qu'en faisant un double clik sur une cellule de la colonne D de la feuille ''PLANN" on récupère les formules qui se trouvent dans les colonnes de E à AL de la même ligne sélectionné depuis la feuille ''MATRI".

j'ai réussit à le faire cellule par cellule avec le code ci-dessous, mais impossible de l' adapter pour une plage de cellule...

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not (Target.Column >= 2 And Target.Column <= 42) Then Exit Sub
Cancel = True
With Target
.FormulaR1C1 = Sheets("MATRI").Range(.Address).FormulaR1C1
End With
End Sub

Pourriez-vous m'aider.

Par avance merci

Bonjour Julienp91,

Voir code ci-dessous :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If (Target.Column <> 4) Or (Target.Value = "") Then Exit Sub
    ActiveSheet.Range(Cells(Target.Row, "E").Address, Cells(Target.Row, "AL").Address).Formula = Sheets("MATRI").Range(Cells(Target.Row, "E").Address, Cells(Target.Row, "AL").Address).Formula
    Cancel = TrueEnd Sub

Cdlt,

Cylfo

Super Merci

Je vais osé abuser, désolé ...

Est il possible de fusionner les deux codes.

Vraiment désolé

Je n'ai pas compris. Que voulez-vous dire par "fusionner les deux codes" ?

En faite j'aurais souhaité pouvoir, soit faire un double click cellule par cellule pour mettre à jour cellule par cellule soit faire un double click sur le cellule de la colonne D pour pouvoir mettre à jour toute la plage complète d'un seul coup.

Bonjour,

Code ci-dessous :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   If (Target.Column = 4) And (Target.Value <> "") Then
      ActiveSheet.Range(Cells(Target.Row, "E").Address, Cells(Target.Row, "AL").Address).Formula = Sheets("MATRI").Range(Cells(Target.Row, "E").Address, Cells(Target.Row, "AL").Address).Formula
      Cancel = True
   ElseIf (Target.Column >= 5) And (Target.Column <= 38) Then    ' ajouter : And (Target.Value = "") si vous vouez que la copie ne se fasse que si la cellule de destination est vide
      Target.Formula = Sheets("MATRI").Cells(Target.Row, Target.Column).Formula
      Cancel = True
   End If
End Sub

Cdlt,

Cylfo

Merci beaucoup, c'est parfait .

Rechercher des sujets similaires à "recuperer plage feuille active"