XL 2016 Copier/Coller valeurs Erreur 1004

isataz

XLDnaute Nouveau
Bonjour à tous,

Serait-il possible de m'aider à améliorer le code ci-dessous pour que je puisse coller les valeurs plutôt qu'un coller simple?
La range que je copie est à base de RechercheV sur la colonne D que je ne veux pas copier.

J'ai essayé de rajouter .PasteSpecial(xlPasteValues) un peu partout, mais j'ai toujours la même erreur. (unable to get the pastespecial property of the range class)

VB:
Sub DEL(ligne As Integer)
Application.EnableEvents = False 'on désactive les évènements
Application.ScreenUpdating = False 'on désactive le rafraichissement des feuilles
With ActiveSheet
    Set BlocSuivant = .Range("A" & ligne & ":B65536").Find(.Name, lookat:=xlPart) 'recherche de la prochaine ligne de colonne B qui contient le nom de la feuille
    If Not BlocSuivant Is Nothing Then 'si il y a quelque chose
        If BlocSuivant.Row = ligne Then 'si on retrouve le bloc en cours (==on est sur le dernier bloc
            fin = .UsedRange.Rows.Count + 5 'on met la dernière ligne de la feuille
        Else
            fin = BlocSuivant.Row - 2 'sinon on récupère la ligne -2 pour remonter dans le bloc en cours
        End If
          
        .Range("F" & ligne & ":I" & fin).COPY Destination:=Sheets("DELETE").Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)  'on copie colle
        Application.CutCopyMode = False
        .Range("U" & ligne) = "Supprimé"
     End If
End With
Application.EnableEvents = True 'on réactive
Application.ScreenUpdating = True
End Sub

Merci beaucoup par avance !
 

Jacky67

XLDnaute Barbatruc
Bonjour à tous,

Serait-il possible de m'aider à améliorer le code ci-dessous pour que je puisse coller les valeurs plutôt qu'un coller simple?
La range que je copie est à base de RechercheV sur la colonne D que je ne veux pas copier.

J'ai essayé de rajouter .PasteSpecial(xlPasteValues) un peu partout, mais j'ai toujours la même erreur. (unable to get the pastespecial property of the range class)

VB:
Sub DEL(ligne As Integer)
Application.EnableEvents = False 'on désactive les évènements
Application.ScreenUpdating = False 'on désactive le rafraichissement des feuilles
With ActiveSheet
    Set BlocSuivant = .Range("A" & ligne & ":B65536").Find(.Name, lookat:=xlPart) 'recherche de la prochaine ligne de colonne B qui contient le nom de la feuille
    If Not BlocSuivant Is Nothing Then 'si il y a quelque chose
        If BlocSuivant.Row = ligne Then 'si on retrouve le bloc en cours (==on est sur le dernier bloc
            fin = .UsedRange.Rows.Count + 5 'on met la dernière ligne de la feuille
        Else
            fin = BlocSuivant.Row - 2 'sinon on récupère la ligne -2 pour remonter dans le bloc en cours
        End If
        
        .Range("F" & ligne & ":I" & fin).COPY Destination:=Sheets("DELETE").Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)  'on copie colle
        Application.CutCopyMode = False
        .Range("U" & ligne) = "Supprimé"
     End If
End With
Application.EnableEvents = True 'on réactive
Application.ScreenUpdating = True
End Sub

Merci beaucoup par avance !
Bonjour ,
Sur deux lignes le copier/coller valeur
VB:
.Range("F" & ligne & ":I" & fin).Copy 'on copie
Sheets("DELETE").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues  'on  colle

**Non testé
 
Dernière édition:

isataz

XLDnaute Nouveau
Merci beaucoup Jacky, c'est nickel !!
Du coup j'ai une autre question... j'aimerais pouvoir faire un copier coller supplémentaire.
Dans le classeur joint, lorsque l'utilisateur clique sur supprimer, j'aimerais que pour le bloc concerné, les prix de la colonne K soient copiés vers la colonne O.
Je pars du principe que l'utilisateur va d'abord cliquer sur le copier de la colonne Y pour avoir une vue d'ensemble et ensuite choisira ce qu'il veut supprimer.

Merci encore pour le coup de main !
Isa
 

Pièces jointes

  • Classeur exemple.xlsm
    422.6 KB · Affichages: 4

Discussions similaires