Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Incrémentation fiche de suivi mensuel (Résolu par Job75)

susaita

XLDnaute Occasionnel
Bonsoir à tous et à toutes,
dans l'exemple ci-joint j'ai un code déjà fourni par JOB75 qui fait l'incrémentation avec lequel je travaille sur un autre fichier.
j'ai essayé de l'adapter sur mon fichier ci-inclus avec des nouvelles conditions mais j n'y arrive pas

**ce que je souhaite avoir en passant à septembre-16 c'est :
1-vider la cellule F7
2-vider la sélection D12:L14 en gardant les formules
3-vider la sélection F57:F59 en gardant les formules
4-Vider J59
5-Copier F12:F14 de l'onglet Août-16 dans R12:R14 de l'onglet Septembre-16
6-les cellules de la sélection T4:AQ4 doivent s'incrémenter avec la valeur de D12 de cette manière :
dans Août-16 T4=D12, dans Septembre-16 U4=D12, dans Octobre-16 V4=D12...ect toute en gardant toujours les anciennes valeurs de T4 et U4 ne pas les supprimer et sans montrer la formule que T4=D12 mais en mettant juste les valeurs.
7-incrémenter la date de J58 c'est à dire dans septembre-16 j'aurais 30-09-2016, dans Octobre j'aurais 31-10-2016...ect

Merci d'avance
 

Pièces jointes

  • Suivi mensuel.xlsm
    77 KB · Affichages: 67

job75

XLDnaute Barbatruc
Bonjour susaita,

Vous auriez pu essayer de vous en sortir tout seul, c'eût été un bon exercice.

Cette macro fait très exactement ce que vous avez demandé :
Code:
Sub NewMonth_Sheet()
Dim w As Worksheet, x$, dat As Date
For Each w In Worksheets
  x = Replace(w.Name, "-", "-20")
  If IsDate(x) Then If CDate(x) > dat Then dat = CDate(x)
Next
If dat Then
  Application.ScreenUpdating = False
  Application.Goto ActiveSheet.[A1], True 'cadrage
  Sheets(Format(dat, "mmmm-yy")).Copy After:=Sheets(Sheets.Count)
  With Sheets(Sheets.Count)
    .Name = Application.Proper(Format(DateAdd("m", 1, dat), "mmmm-yy"))
    Application.EnableEvents = False
    With .Cells(4, .Columns.Count).End(xlToLeft)
      .Offset(, 1) = .Formula
      .Value = .Value
    End With
    .[R12:R14] = .[F12:F14].Value
    On Error Resume Next 'si aucune constante
    .[F7,D12:L14,F57:F59,J59].SpecialCells(xlCellTypeConstants) = Empty
    .[J58] = DateAdd("m", 2, dat) - 1
    Application.EnableEvents = True
    .Visible = xlSheetVisible 'si la feuille est masquée
    Application.Goto .[A1], True 'cadrage
  End With
End If
End Sub
Fichier joint.

A+
 

Pièces jointes

  • Suivi mensuel(1).xlsm
    85.8 KB · Affichages: 46

job75

XLDnaute Barbatruc
Re,

Au cas où vous n'auriez pas compris à quoi sert la variable x.

Avec l'ancienne macro VBA convertissait "Août-16" en 16/08 de l'année en cours.

x = Replace(w.Name, "-", "-20") donne "Août-2016" converti en 01/08/2016.

A+
 

susaita

XLDnaute Occasionnel
Merci beaucoup Job,
c'est exactement ce que je cherchais il y'a juste un petit point que je ne sais pas si c'est possible de le résoudre :
*** en passant de Août-16 à Septembre-16 T4= la valeur de D12 de Août-16 sans écrire la formule,
par contre U4=D12 avec la formule affichée est ce que c'est possible ne montrer que la valeur ??

Merci encore une autre fois pour ce joli travail
A+
 

job75

XLDnaute Barbatruc
Re,

Pas très cohérent ce que vous venez de dire.

J'ai modifié la macro avec :
Code:
    With .Cells(4, .Columns.Count).End(xlToLeft)
      .Offset(, 1) = "=D12"
      .Formula = "='" & Format(dat, "mmmm-yy") & "'!D12"
    End With
Il y a donc toujours une formule dans T4, U4, etc...

J'ai aussi mis la plage T4:XFD4 au format personnalisé # ##0;; pour masquer les valeurs zéros.

Fichier (2).

A+
 

Pièces jointes

  • Suivi mensuel(2).xlsm
    85.9 KB · Affichages: 36
Dernière édition:

job75

XLDnaute Barbatruc

Pièces jointes

  • Suivi mensuel(3).xlsm
    86.1 KB · Affichages: 47

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…