VBA- Excel Collage spécial des valeurs sans chaine de caract

Bonjour,

Je vous serais reconnaisant si vous pouviez m'aider, j'ai parcouru de nombreux forums et je n'ai pas trouvé l'explication.

Je vous expose mon Problème sous Excel 2003, j'ai un tableau avec les colonnes suivantes :

AQ - AR - AS - AT - AU - AV - AW

Prov. - Reprise 2010 -Reprise 2011 -Solde -COMPTA à Fin-COMPTA Cumulées à fin-P.A.T. à Fin

Chaque mois, on copie les valeurs de la colonne AW (dans la colonne AW, il y a une formulle dont le résultat est "" quand c'est vide) à la colonne AU (Pas de formules dedans).

Quand on fais cette opération dans ma colonne AS qui fait un calcul sur la colonne AU, se retrouve le #VALEUR!, en effet le collage spécial de la valeur de la colonne AW, transforme les cellules où il n'y a rien "", en cellule en type : chaîne de caractère et non plus numérique. Quand je fais la touche suppression dans les cellules de la colonne AU, cela me supprime l'erreur.

Y'a t'il un code pour pallier à ce désagrément, j'ai essayé en fesant un copier d'une cellule avec un zéro et de faire un collage spécial avec addition de la cellule et cela ne marche pas non plus.

Voici le code VBA d'une partie de la macro :

Range("AW6:AW60").Select

Application.CutCopyMode = False

Selection.Copy

Range("AU6:AU60").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Application.CutCopyMode = False

Je vous remercie de l'aide que vous pourrez m'apporter.

Bon week end.

Bonjour

Avec 2003 cela fonctionne

Sub test()
Range("AW6:AW60").Copy
Range("AU6:AU60").PasteSpecial Paste:=xlPasteValues, _
    Operation:=xlPasteSpecialOperationAdd, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub

Un contrainte il faut que la plage destination soit vide au préalable

Bonne journée

Je te remercie beaucoup, j'essaye lundi, en revanche c'est dommage qu'il faut que les cellules soient vides avant car il y aura les valeurs du mois précédent, à moins que j'insère une ligne avant qui efface toutes les cellules de la colonne avant... je vais essayer et je te tiens au courant

Bon week.

Bonjour, je viens d'essayer, au préalable vider les cellules de destination (comme tu m'as dit), heureusement qu'il n'y a pas de modification sur le calcul des cellules copiées sinon cette solution ne marcherait pas, copier la plage et faire un collage spécial avec addition.

Range("AU6:AU60").Select
    Selection.ClearContents
    Range("AW6:AW60").Select
    Selection.Copy
    Range("AU6:AU60").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, SkipBlanks _
        :=False, Transpose:=False

Merci beaucoup

Bonsoir

je te propose un code un peu plus concis

Sub test()
  With Range("AU6:AU60")
    .ClearContents
    Range("AW6:AW60").Copy
    .PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, _
              SkipBlanks:=False, Transpose:=False
  End With
End Sub

Bonne soirée

Rechercher des sujets similaires à "vba collage special valeurs chaine caract"