Macro avec condition copier valeur si une cellule = à un mois précis

Emmillya

XLDnaute Nouveau
Bonjour,
J'essais désespérément de complété cette macro... qui me donne toujours erreur: end sub attendu??
Dans ma cellule S1 il y a la formule =MOIS(AUJOURDHUI()) qui me donne le mois en cours.

De S2:S13 on retrouve les nombres de 1 à 12 représentant les mois de l'année.

Lorsque le mois changera (S1) je veux que ma macro copie/valeur (donc annule les formules) qui se trouvent dans les cellule correspondant au mois précédent.

Exemple: S1= Novembre
Donc S12 = 11 puis les données dans les cellules U12:Y12 on retrouve la somme de ma formule de colone spécifique. Mais quand S1 chang à Décembre je ne veux pas perdre mes donné de novembre!! Je veux que ma macro copie/valeur automatiquement les données de U12:Y12 pour conserver mes données. Du coup ma formule va continué de fonctionner dans les cellule U13:Y13 qui corresponde au mois de décembre.

SVP aidez moi.(voir fichier joint- raccourci macro ctrl i) Merci

Voici ce que j'ai écrit:
Sub intro()
'
' intro Macro
' Macro enregistrée le 28/11/2013 par emmillya
'
' Touche de raccourci du clavier: Ctrl+i
'
Sub Worksheet_Change(ByVal Target As Range)
Range("S2:S13").Select
If Target.Column="$S$1" Then

Range("U2:Y17").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("X20").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Range("V19").Select
End Sub
 

Pièces jointes

  • Classeur1.xls
    39.5 KB · Affichages: 55
  • Classeur1.xls
    39.5 KB · Affichages: 54
  • Classeur1.xls
    39.5 KB · Affichages: 60

DoubleZero

XLDnaute Barbatruc
Re : Macro avec condition copier valeur si une cellule = à un mois précis

Bonjour à toutes et à tous,

Bienvenue sur XLD, Emmillya.

Une suggestion, avec ce code :

Code:
Sub Formules_convertir_selon_date()
    Dim i As Long
    Application.ScreenUpdating = False
    For i = Cells(Rows.Count, "s").End(xlUp).Row To 2 Step -1
        If Range("s" & i) < Range("s1") Then Range("s" & i).Resize(, 7).Value = Range("s" & i).Resize(, 7).Value
    Next i
    Application.ScreenUpdating = True
End Sub

A bientôt :)
 

Discussions similaires

Réponses
7
Affichages
328

Statistiques des forums

Discussions
312 274
Messages
2 086 703
Membres
103 377
dernier inscrit
fredy45