Simplifier/raccourcir une macro
Bonjour,
Je suis totalement novice dans les macro excel
J'ai crée cette macro afin de sauvegarder les donnée d'un tableau dans une autre feuille a la fin de chaque semaine (soit pour 52 semaine)
Sub Sauver()
'
' Macro2 Macro
'
' Touche de raccourci du clavier: Ctrl+j
'
Application.ScreenUpdating = False
If Range("C1") = 1 Then (Numéro de la semaine en cours)
Range("D10, E10").Copy
Sheets("Bilan Année").Select
Range("B4:C4").PasteSpecial xlPasteValues
Sheets("Tableau").Select
Range("A1").Select
End If
If Range("C1") = 2 Then (Numéro de la semaine en cours)
Range("D10, E10").Copy
Sheets("Bilan Année").Select
Range("B5:C5").PasteSpecial xlPasteValues
Sheets("Tableau").Select
Range("A1").Select
End If
If Range("C1") = 3 Then (Numéro de la semaine en cours)
Range("D10, E10").Copy
Sheets("Bilan Année").Select
Range("B6:C6").PasteSpecial xlPasteValues
Sheets("Tableau").Select
Range("A1").Select
End If
.....Edit modo : merci de mettre le code entre balises SVP avec le bouton </>
Ma question est donc comment peut-on raccourcir cette macro ?
Cordialement
MajorJim
Bonjour MajorJim et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire :
- La charte du forum
- Quelques fonctionnalités du forum à connaître
qui vous aideront dans vos demandes et réponses sur ce forum.
Regardez aussi les petites icônes mises à votre disposition dans la barre de menu qui :
- vous permettent de poster un code (</>)
- ou de clôturer un fil lorsque vous avez terminé (V)
Concernant votre demande, voici une possibilité avec des commentaires
Sub Sauver()
Dim NumSem As Integer
' Touche de raccourci du clavier: Ctrl+j
'
Application.ScreenUpdating = False
' Avec l'objet conteneur : feuille Tableau
With Sheet("Tableau")
' Récupérer le numéroe de semaine en C1
NumSem = .Range("C1").Value
' Copier la plage D10:E10
.Range("D10:E10").Copy
' Coller la valeur dans la plage BA:C4 décaler de NumSem-1
Sheets("Bilan Année").Range("B4:C4").Offset(NumSem - 1).PasteSpecial xlPasteValues
End With
Application.ScreenUpdating = True
End SubMerci pour votre participation
Cordialement