XL 2013 CALENDRIER ET BASE DE NOMS

MobilSteph972

XLDnaute Nouveau
Bonjour à tous

Je permets de vous demander de l'aide pour un calendrier de je désire mettre en œuvre.
Je souhaiterai insérer les noms de mes personnels dans le feuille "Calendrier" et ne les voir apparaitre que pour l'année demandée. Je sais que je dois établir un VBA mais je n'ai aucune connaissance dans ce domaine, voilà pourquoi je me permets de demander votre aide.
Je joins le fichier correspondant à ma demande.
Je vous remercie d'avance
Steph
 

Pièces jointes

  • CALENDRIER DES NUITS TESTS.xlsx
    28.1 KB · Affichages: 20

MobilSteph972

XLDnaute Nouveau
Bonjour Daniel,

Je souhaiterai entrer des NOMS dans les colonnes "personnel" aux jours des mois que je désire, de la feuille "CALENDRIER".
Mais, il faudrait que ces données restent en mémoire au jours, au mois et à l'année qui est affichée en C4.
Elles devraient s'effacer aux changement d'année et réapparaitre à l'année qui sera affichée.
Je dois garder ces données quelques années.

J'espère que ces explications seront plus claires pour vous.

Merci
Cordialement
Steph
 

danielco

XLDnaute Accro
Je souhaiterai entrer des NOMS dans les colonnes "personnel" aux jours des mois que je désire, de la feuille "CALENDRIER".

Comment se fait la répartition ? Est-ce que je mets un nom au hasard ? Pour ce qui est de la conservation des données de 2019, enregistre la feuille sous un nom comportant l'année, par exemple : "CALENDRIER DES NUITS TESTS 2019.xlsx".

Daniel
 

danielco

XLDnaute Accro
Regarde le classeur joint. J'ai ajouté une feuille BDD qui peut être masquée et protégée (avec une modif de ma macro).

Voici le code.
Dans ThisWorkbook :

VB:
Private Sub Workbook_Open()
  Dim Plage As Range
  AnRes = [CALENDRIER!C4]
End Sub

Dans un module :

Code:
Public AnRes As Long
Sub Calc()
  Dim I As Long, Col As Long, J As Long, Plage As Range
'  Application.EnableEvents = False
  With Sheets("BDD")
    'enregistrement des données
    Col = Application.Match(AnRes, .[1:1], 0)
    With Sheets("CALENDRIER")
      Set Plage = .Range("B10", .Cells(.Rows.Count, 2).End(xlUp))
    End With
    J = 0
    For I = 1 To 342 Step 31
      J = J + 2
      .Cells(1, Col).Offset(I).Resize(31).Value = Plage.Offset(, J).Value
    Next I
    'Import de l'année choisie
    Col = Application.Match([CALENDRIER!C4], .[1:1], 0)
    J = 0
    For I = 1 To 342 Step 31
      J = J + 2
      Plage.Offset(, J).Value = .Cells(1, Col).Offset(I).Resize(31).Value
    Next I
  End With
  AnRes = [CALENDRIER!C4]
'  Application.EnableEvents = True
End Sub

Daniel
 

Pièces jointes

  • MobilSteph972 CALENDRIER DES NUITS TESTS.xlsm
    133.9 KB · Affichages: 18

Discussions similaires

Statistiques des forums

Discussions
312 095
Messages
2 085 250
Membres
102 836
dernier inscrit
Ali Belaachet