Copier en fonction du nom de cellule

isataz

XLDnaute Nouveau
Hello le forum,

j'aurais besoin d'un petit coup de main pour copier des valeurs en fonction d'un nom de cellule si on la sélectionne.
Je m'explique, j'ai des blocs contenant des produits et leurs prix, et dans la colonne Q j'ai des prix remisés pour chacun des blocs.
Dans la colonne P j'ai inscrit DC sur la première ligne du bloc et je voudrais que si on sélectionne cette cellule, les prix de la colonne Q pour le bloc concerné soient copiés dans la colonne N.
J'ai mis un onglet de mon fichier complet en exemple.

Merci beaucoup par avance pour le coup de main.
 

Pièces jointes

  • SANDBOX.xlsm
    27.4 KB · Affichages: 32

vgendron

XLDnaute Barbatruc
Hello
avec ce code a placer dans le code de la feuille "Covering" et pas dans un module standard

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count <> 1 Then Exit Sub
Application.EnableEvents = False

If Not Intersect(Target, Columns("P")) Is Nothing And Target = "DC" Then
    rep = MsgBox("Souhaitez vous appliquer les prix remisés en colonne N?", vbYesNo)
    If rep = 6 Then
        If Target.Offset(1, 1) = "" Then
            Target.Offset(0, 1).Copy
        Else
            fin = Target.Offset(0, 1).End(xlDown).Row
            Target.Offset(0, 1).Resize(fin - Target.Row + 1, 1).Copy
        End If
        Target.Offset(0, -2).PasteSpecial xlPasteValues
    End If
End If
Application.CutCopyMode = False
Application.EnableEvents = True
End Sub
 

isataz

XLDnaute Nouveau
Super !! Top !! Merci beaucoup !!!

Par contre, il semble que je ne puisse pas avoir et ce code dans la feuille et des copier/coller basiques dans un module.

j'ai une erreur sur le Selection.PasteSpecial

VB:
Sub DCIPdepolisall()
'
    Range("T19:T47").Select
    Selection.COPY
    Range("O19").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("V19").Select
End Sub
 

vgendron

XLDnaute Barbatruc
Salut
modifie ton code comme suit
VB:
Sub DCIPdepolisall()
Application.EnableEvents = False 'empeche le déclenchement des macro évènementielles

Range("T19:T47").Copy
Range("O19").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False
    'Range("V19").Select

Application.EnableEvents = True
End Sub
 

Discussions similaires

Réponses
16
Affichages
441

Statistiques des forums

Discussions
312 111
Messages
2 085 405
Membres
102 883
dernier inscrit
jameseyz