Modification d'une macro

philippe -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,

Voici une petite macro qui me permet de copier une selection de la feuille ("commande") sur la feuille ("Hist") avec la condition que cela ce rajoute à ce qu'il y à déjà sur la feuille ("Hist").

Sub TransfertDeCommandeDuJour()
ActiveSheet.Unprotect Password:="XXX"
Set f1 = Sheets("Commande")
Set f2 = Sheets("Hist")
For i = 4 To f1.Range("A65536").End(xlUp).Row
If f1.Range("A" & i) = f1.Range("C1") Then
x = f2.Range("A65536").End(xlUp).Row + 1
f1.Range("A" & i & ":F" & i).Copy f2.Range("A" & x)
Application.CutCopyMode = False
End If
ActiveSheet.Protect Password:="XXX"
Next
End Sub

Cela fonctionne bien, mais au lieu d'un simple copier/coller je voudrais faire en sorte que la macro effectue un collage spécial en tenant compte de la valeur de la cellule.

j'ai déjà essayé de modifier la macro pour obtenir ce résultat mais à chaque fois ca ne fonctionne plus.
Je ne suis pas un pro dans le domaine et j'imagine que je fais à chaque fois des erreurs d'écritures.
Pouvez-vous m'aider !!! SVP !!!

Et cela même si je dois complètement changer celle-ci.
merci beaucoup d'avance

Philippe
A voir également:

2 réponses

Paf
 
bonjour,

peux tu préciser:
la macro effectue un collage spécial en tenant compte de la valeur de la cellule.


tu peux essayer d'enregistrer une macro en faisant ta manip de collage spécial, et adapter ce code à la macro à modifier.

A+
0
philippe
 
J'ai eu la même idée, voila l'enregistrement de la macro avec collage spécial.

Sub testest()
'
' testest Macro
'

'
Selection.Copy
Range("E8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Range("A1").Select
End Sub

le tout maintenant c'est de l'adapter avec l'autre et c'est là que ca bloque.
j'ai essayé mais probablement que je me trompe quelque part.
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour,
Malheureusement Excel ne supporte pas le COPY PASTESPECIAL
Il faut procéder par étape.
    f1.Range("A" & i & ":F" & i).Copy   
    f2.Select   
    Range("A" & x).select  
   ActiveSheet.pasteSpeciel paste:=XlValue

A+
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
0