2017-10-20 8 views
0

J'ai une macro pour copier et coller des valeurs dans différentes colonnes de ma feuille de calcul. Sur les colonnes cibles, j'ai quelques formules que je dois éviter de surcharger quand la macro colle les valeurs car je veux que la formule calcule les nouvelles valeurs. J'ai déjà créé un code, mais j'apprécierais que vous aidiez à ajouter la condition pour éviter de coller là où il y a des formules sur la cible.Coller les figures en évitant les formules sur la cible

Sub RawDataNew() 
' 
' RawDataNew Macro 
' To move validated to previous week on raw data tab 
' 
    Range("$B$17:$AQ$2572").AutoFilter Field:=6 
    Range("Z18:AB2572").Select 
    Selection.Copy 
    Range("AU18").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    Range("H18:H2572").Select 
    Selection.Copy 
    Range("AR18").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    Range("O18:O2572").Select 
    Application.CutCopyMode = False 
    Selection.Copy 
    Range("AS18").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    Range("W18:W2572").Select 
    Selection.Copy 
    Range("AX18").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    Range("X18:X2572").Select 
    Application.CutCopyMode = False 
    Selection.Copy 
    Range("AY18").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
     Range("G4").FormulaR1C1 = "=TODAY()" 
    Range("G4").Value = Date 

    Range("G5").Value = Environ("username") 
' 
End Sub 
+0

Quelle langue est-ce? Quelle feuille de calcul? –

+0

Peut-être en utilisant la balise excel vous obtenez plus d'aide –

+0

Salut Scott c'est VBA – Diego

Répondre

0

La méthode de collage que vous utilisez Paste:=xlPasteValues ne fait que coller les valeurs; Si vous voulez des formules ainsi que des valeurs, vous aurez besoin de Paste:=xlPasteAll.

Si vous ne souhaitez que des formules, vous aurez besoin Paste:=xlPasteFormulas

S'il vous plaît se référer à link pour d'autres paramètres optionnels

Une autre suggestion utilise la méthode = par exemple. Range("A1").value = Range("B1").value Comme la méthode copier/coller est très lente, en particulier lorsque vous avez autant de données que vous utilisez ici maintenant. En outre, vous obtiendrez tout le formatage supplémentaire des cellules copiées, ce qui peut être assez ennuyeux à traiter

+0

Merci Maldred mais je dois vraiment le coller comme valeurs, le défi est que sur la colonne où je le colle il y a une formule que je dois garder il. Si je colmate des valeurs, il les remplacera et si je les colle tous, il les conservera mais le reste des données seront des formules fournissant des données dont je n'ai pas besoin. La cible dans la macro doit avoir une exception pour éviter de coller des valeurs dans la cellule où se trouve une formule, mais je ne sais pas comment l'ajouter à ma macro – Diego