Perfectionnement d'un planning

jpg21

XLDnaute Nouveau
Bonjour,

Je voudrais perfectionner un planning qu une personne de ce forum m'avait aidé a élaborer.
Lorsque je renseigne l'onglet "Donnée" et en fonction du type d'absence , cela renseigne automatiquement le bon tableau dans l'onglet qui correspond a la personne absente.

Je joint un tableau excel en exemple a ma demande

Merci de votre aide

JP
 

Pièces jointes

  • Essai planning 16_09.xls
    111.5 KB · Affichages: 67

JBARBE

XLDnaute Barbatruc
Re : Perfectionnement d'un planning

Bonjour à tous,

J'ai changé la disposition des absences afin que la saisie ne soit pas bloquée par quelques lignes !

Clique sur le bouton sélection !

Nota : Ne pas supprimer la couleur dans les noms lors de la selection afin que cette saisie ne soit pas des doublons !

bonne journée
 

Pièces jointes

  • Essai planning.xls
    175.5 KB · Affichages: 68
  • Essai planning.xls
    175.5 KB · Affichages: 74
  • Essai planning.xls
    175.5 KB · Affichages: 74
Dernière édition:

jpg21

XLDnaute Nouveau
Re : Perfectionnement d'un planning

Bonjour,

Merci beaucoup pour Mr JBARBE pour l'aide que vous m'avez apporté.
lorsque j'ai envoyer le dossier , j'ai pris exemple sur 3 noms.
Es ce que je peux copier les onglets pour rajoouter des noms car j'ai plus de 45 personnes a rajouter.
Si oui je supose que je dois faire une modif dans la colonne B de l'onglet donnée.Pouvez vous me donner quelques explications.

Merci encore pour votre collaboration

JPG21
 

JBARBE

XLDnaute Barbatruc
Re : Perfectionnement d'un planning

module 3
Sub Feuilles()
Dim i As Integer
For i = 4 To 42 ' s'il faut rajouter des feuilles commencez avant toutes choses à utiliser cette macro et à changer 42 pour le nombre de feuilles à ajouter
Sheets(i).Select
Sheets(i).Copy After:=Sheets(i)
Next i
End Sub

module 2 (automatisation de la colonne B) & voir l'exemple de l'onglet A

PS: la macro risque de planter si les modifications noms et onglets ne sont pas faite !

Option Explicit

Sub noms()
Dim i As Long
Sheets(1).Activate
For i = 2 To 65536
If Cells(i, 3) = "Catherine" Then
Cells(i, 2) = 1
ElseIf Cells(i, 3) = "Yannick" Then
Cells(i, 2) = 2
ElseIf Cells(i, 3) = "JP" Then
Cells(i, 2) = 3
ElseIf Cells(i, 3) = "A" Then ' changer la lettre A et le nom de chaque onglet dans l'ordre ici onglet 4 aprés données
Cells(i, 2) = 4
ElseIf Cells(i, 3) = "B" Then
Cells(i, 2) = 5
ElseIf Cells(i, 3) = "C" Then
Cells(i, 2) = 6
ElseIf Cells(i, 3) = "D" Then
Cells(i, 2) = 7
ElseIf Cells(i, 3) = "E" Then
Cells(i, 2) = 8
ElseIf Cells(i, 3) = "F" Then
Cells(i, 2) = 9
ElseIf Cells(i, 3) = "G" Then
Cells(i, 2) = 10
ElseIf Cells(i, 3) = "H" Then
Cells(i, 2) = 11
ElseIf Cells(i, 3) = "I" Then
Cells(i, 2) = 12
ElseIf Cells(i, 3) = "J" Then
Cells(i, 2) = 13
ElseIf Cells(i, 3) = "K" Then
Cells(i, 2) = 14
ElseIf Cells(i, 3) = "L" Then
Cells(i, 2) = 15
ElseIf Cells(i, 3) = "M" Then
Cells(i, 2) = 16
ElseIf Cells(i, 3) = "N" Then
Cells(i, 2) = 17
ElseIf Cells(i, 3) = "O" Then
Cells(i, 2) = 18
ElseIf Cells(i, 3) = "P" Then
Cells(i, 2) = 19
ElseIf Cells(i, 3) = "Q" Then
Cells(i, 2) = 20
ElseIf Cells(i, 3) = "R" Then
Cells(i, 2) = 21
ElseIf Cells(i, 3) = "S" Then
Cells(i, 2) = 22
ElseIf Cells(i, 3) = "T" Then
Cells(i, 2) = 23
ElseIf Cells(i, 3) = "U" Then
Cells(i, 2) = 24
ElseIf Cells(i, 3) = "V" Then
Cells(i, 2) = 25
ElseIf Cells(i, 3) = "W" Then
Cells(i, 2) = 26
ElseIf Cells(i, 3) = "X" Then
Cells(i, 2) = 27
ElseIf Cells(i, 3) = "Y" Then
Cells(i, 2) = 28
ElseIf Cells(i, 3) = "Z" Then
Cells(i, 2) = 29
ElseIf Cells(i, 3) = "AA" Then
Cells(i, 2) = 30
ElseIf Cells(i, 3) = "AB" Then
Cells(i, 2) = 31
ElseIf Cells(i, 3) = "AC" Then
Cells(i, 2) = 32
ElseIf Cells(i, 3) = "AD" Then
Cells(i, 2) = 33
ElseIf Cells(i, 3) = "AE" Then
Cells(i, 2) = 34
ElseIf Cells(i, 3) = "AF" Then
Cells(i, 2) = 35
ElseIf Cells(i, 3) = "AG" Then
Cells(i, 2) = 36
ElseIf Cells(i, 3) = "AH" Then
Cells(i, 2) = 37
ElseIf Cells(i, 3) = "AI" Then
Cells(i, 2) = 38
ElseIf Cells(i, 3) = "AJ" Then
Cells(i, 2) = 39
ElseIf Cells(i, 3) = "AK" Then
Cells(i, 2) = 40
ElseIf Cells(i, 3) = "AL" Then
Cells(i, 2) = 41
ElseIf Cells(i, 3) = "AM" Then
Cells(i, 2) = 42
ElseIf Cells(i, 3) = "AN" Then
Cells(i, 2) = 43
ElseIf Cells(i, 3) = "AO" Then
Cells(i, 2) = 44
ElseIf Cells(i, 3) = "AP" Then ' si nombre de personnes supérieur à 45 continuer le elseif avec la référence suivante (46)
Cells(i, 2) = 45
Else
Exit For
End If
Next i
End Sub
 

Pièces jointes

  • Essai planning.xls
    619 KB · Affichages: 41
  • Essai planning.xls
    619 KB · Affichages: 42
  • Essai planning.xls
    619 KB · Affichages: 38
Dernière édition:

JBARBE

XLDnaute Barbatruc
Re : Perfectionnement d'un planning

Saisir dans l'onglet " données " les noms dans la colonne S & changer le nombre 48 dans la macro " Feuilles " et l'activer en premier puis faire de même pour "onglets" !


Sub Feuilles()
Dim i As Integer
Application.ScreenUpdating = False
For i = 4 To 48 ' changer le nombre d'onglets (48)s'il y a lieu suivant le nombre de personnes onglet "données" colonne S
Sheets(i).Select
Sheets(i).Copy After:=Sheets(i)
Next i
Application.ScreenUpdating = True
End Sub

Sub onglets()
Dim i As Integer
Dim j As Long
Application.ScreenUpdating = False
On Error GoTo erreur
For j = 2 To 65536
Sheets(1).Activate
For i = 5 To 49 ' changer le nombre d'onglets (49)s'il y a lieu suivant le nombre de personnes onglet "données" colonne S
If Sheets(1).Cells(j, 19) = "" Then Exit Sub
If Sheets(i).Name = "" Then Exit Sub
If Sheets(i).Name = Sheets(1).Cells(j, 19).Text Then
Sheets(i).Select
Else
Sheets(i).Name = Sheets(1).Cells(j + i - 5, 19)
Sheets(i).Range("A2") = Sheets(1).Cells(j + i - 5, 19)
Cells(j, 19).Select
End If
Next i
Next j
erreur: Exit Sub
Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • Essai planning.xls
    190.5 KB · Affichages: 54
  • Essai planning.xls
    190.5 KB · Affichages: 63
  • Essai planning.xls
    190.5 KB · Affichages: 62
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 396
Messages
2 088 053
Membres
103 708
dernier inscrit
Sisy