Code macro

Bonjour à tous,

mon code ci-dessous est opérationnel mais le problème c'est qu'il copie colle "tout".

j'aimerais le modifier à l'image d'un collage spécial: valeur uniquement.

comment faire?

merci

oza

Sub Enregistre()
Dim lignecourante As Long
Dim Quoi As String
Dim Trouve As Range

Quoi = Range("'travail à la référence'!A27")
Set Trouve = Worksheets("données MAJ").Range("A:A").Find(Quoi, LookAt:=xlWhole)
If Trouve Is Nothing Then
 lignecourante = Range("'données MAJ'!A65536").End(xlUp).Row + 1

 Worksheets("données MAJ").Range("A" & lignecourante) = Worksheets("travail à la référence").Range("A27")
 Worksheets("travail à la référence").Range("B27:W27").Copy Destination:=Worksheets("données MAJ").Range("B" & lignecourante & ":W" & lignecourante)

 lignecourante = Worksheets("récap").Range("A65536").End(xlUp).Row + 1

 Worksheets("récap").Range("A" & lignecourante) = Worksheets("travail à la référence").Range("A27")
 Worksheets("travail à la référence").Range("B27:W27").Copy Destination:=Worksheets("récap").Range("B" & lignecourante & ":W" & lignecourante)
 Worksheets("récap").Range("X" & lignecourante) = Worksheets("travail à la référence").Range("F12")

Else
 MsgBox "Cette référence existe déjà", vbCritical, "Alerte Application"
End If
'MaJTranche
End Sub

Bonjour

Fais un copier collage spécial valeur avec l'enregistreur pour avoir la syntaxe de la ligne de Code et modifies en conséquence.

Cordialement

pas bête l'astuce! merci

ça fonctionne mais quand j'exécute la macro, les onglets défilent à toute vitesse.

est-il possible possible d'éviter cela en épurant le code?

ce n'est qu'une question d'esthétique cela dit...

merci!

Sheets("travail à la référence").Select
 Range("A27").Select
 Selection.Copy
 Sheets("données MAJ").Select
 Range("A" & lignecourante).Select
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False
 Sheets("travail à la référence").Select

 Range("B27:W27").Select
 Selection.Copy
 Sheets("données MAJ").Select
 Range("B" & lignecourante & ":W" & lignecourante).Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False
 Sheets("travail à la référence").Select

 'Worksheets("données MAJ").Range("A" & lignecourante) = Worksheets("travail à la référence").Range("A27")
 'Worksheets("travail à la référence").Range("B27:W27").Copy Destination:=Worksheets("données MAJ").Range("B" & lignecourante & ":W" & lignecourante)

 lignecourante = Worksheets("récap").Range("A65536").End(xlUp).Row + 1

 Sheets("travail à la référence").Select
 Range("A27").Select
 Selection.Copy
 Sheets("récap").Select
 Range("A" & lignecourante).Select
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False
 Sheets("travail à la référence").Select

  Range("B27:W27").Select
 Selection.Copy
 Sheets("récap").Select
 Range("B" & lignecourante & ":W" & lignecourante).Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False
 Sheets("travail à la référence").Select

  Sheets("travail à la référence").Select
 Range("F12").Select
 Selection.Copy
 Sheets("récap").Select
 Range("X" & lignecourante).Select
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False
 Sheets("travail à la référence").Select
Application.CutCopyMode = False

 'Worksheets("récap").Range("A" & lignecourante) = Worksheets("travail à la référence").Range("A27")
 'Worksheets("travail à la référence").Range("B27:W27").Copy Destination:=Worksheets("récap").Range("B" & lignecourante & ":W" & lignecourante)
 'Worksheets("récap").Range("X" & lignecourante) = Worksheets("travail à la référence").Range("F12")

Bonjour,

Pas besoin d'épurer le code, il te suffit d'ajouter ceci :

Application.ScreenUpdating = False

'ton code de copie

Application.ScreenUpdating = True

Cordialement.

impeccable merci Zirak!

Rechercher des sujets similaires à "code macro"