Modification d'une macro
philippe
-
lermite222 Messages postés 9042 Statut Contributeur -
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
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
-
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+-
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.
-
-
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.