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

2 réponses

  1. 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
    1. 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
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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