planning

robich

XLDnaute Occasionnel
bonsoir le forum,

je viens vers vous afin de vous demander de l'aide, j'ai améliorer ce planning à l'aide de ce forum et je souhaite apporter plus d'amélioration :

voilà quand j'ouvre le formulaire je choisi les dates ainsi que la personne, il m'ouvre le 2 formulaire je choisi M(mission) il m'ouvre un InputBox je choisi le texte que je veux et puis s'affichera sur le planning, je souhaite que la dernière action action soit généraliser pour tous les absences (l'affichage de Inputbox et puis choix de texte et affichage sur planning) quelqu'un peux m'aidez s'il vous plait.

merci pour votre aide
 

Pièces jointes

  • Planning absences new.zip
    108.7 KB · Affichages: 43

CHALET53

XLDnaute Barbatruc
Re : planning

bonjour,

Pas sûr de bien comprendre
Si tu veux l'imputbox pour chaque type d'absence, dans le module ClasseBoutons tu :

mets une aspostrophe (') devant : If choixb = "M" Then (pour le désactiver)

met une apostrophe (') devant un des End if situé après

a+
 

robich

XLDnaute Occasionnel
Re : planning

bonsoir CHALET53,

il me mis erreur de compilations (Bloc If sans End if),

Code:
 'If choixb = "M" Then
    Dim S
 
    S = Selection '(1).Address
    'Range(S).Select
    Dim Mission As String
    Mission = InputBox("Mentionnez le type de mission : ")
    
    Selection = Mission
    
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .MergeCells = True
    End With
    
    
    
    'Range(S).AddComment
    'Range(S).Comment.Visible = False
    'Range(S).Comment.Text Text:="Misiion : " & Chr(10) & Mission
    'End If
    'End If
    'End If
  
End Sub

cordialement
 

robich

XLDnaute Occasionnel
Re : planning

Merci CHALET53 pour l'aide,

deux dernières questions si sa te dérange pas, je souhaite ajouter quelques lignes au dessus la ligne du jour et quelque colonnes est ce que je peux le faire sans percussion sur les macros?!
quand j'efface les absences je souhaite remettre les cellules comme elle étaient à l'origine c'est fusable?

merci encore pour ton aide et désolé pour le dérangement
cordialement
 

CHALET53

XLDnaute Barbatruc
Re : planning

si tu insères des lignes (entre la 4 et la 5 si j'ai bien compris) il faut en tenir compte dans cette procédure et faire les modifications nécessaires (n° de ligne : remplacer le +7 par 7+ le nb de lignes rajoutées et sans doute d'autres éléments)
Procéder par test

Private Sub CommandButton1_Click()
' ACCEDER A LA DATE
Dim Colonne, diff
Dim Colonne1
If Not IsDate(Me.TextBox1) Or Not IsDate(Me.TextBox3) Then
MsgBox "dates non conformes"
ElseIf CDate(Me.TextBox1) < Range("E5") Then
MsgBox "Date de départ hors limite"
ElseIf CDate(Me.TextBox3) > Cells(5, Columns.Count).End(xlToLeft) Then
MsgBox "Date de fin hors limite"
ElseIf CDate(Me.TextBox1) > CDate(Me.TextBox3) Then
MsgBox "La date de départ doit être inférieure ou égale à la date de fin"
ElseIf Me.ComboBox1.ListIndex = -1 Then
MsgBox "Veuillez choisir un nom"
Else
L = Me.ComboBox1.ListIndex + 7
diff = CDate(Me.TextBox1) - CDate(Range("E5"))
Colonne = 5 + diff * 2
If Me.OptionButton2 = True Then Colonne = Colonne + 1
diff = CDate(Me.TextBox3) - CDate(Range("E5"))
Colonne1 = 5 + diff * 2
If Me.OptionButton1 = True Then ' Matinée
Colonne1 = Application.Max(Colonne, Colonne1 - 1)
Else
Colonne1 = Colonne1 + 1
End If

Range(Cells(L, Colonne), Cells(L, Colonne1)).Select

UserForm1.TextBox1 = Me.ComboBox1 'Cells(L, 1).Value 'Correspond la cellule active de la colonne A
UserForm1.Label2 = L
UserForm1.Label3 = J
Unload Me

UserForm1.Show vbModeless
End If
End Sub



a+
 

CHALET53

XLDnaute Barbatruc
Re : planning

bonjour,

J'ai rajouté 2 lignes entre la 4 et la 5 et j'ai modifié les deux procédures suivantes :

Private Sub CommandButton1_Click()
' ACCEDER A LA DATE
Dim Colonne, diff
Dim Colonne1
'Stop
If Not IsDate(Me.TextBox1) Or Not IsDate(Me.TextBox3) Then
MsgBox "dates non conformes"
ElseIf CDate(Me.TextBox1) < Range("E7") Then
MsgBox "Date de départ hors limite"
ElseIf CDate(Me.TextBox3) > Cells(7, Columns.Count).End(xlToLeft) Then
MsgBox "Date de fin hors limite"
ElseIf CDate(Me.TextBox1) > CDate(Me.TextBox3) Then
MsgBox "La date de départ doit être inférieure ou égale à la date de fin"
ElseIf Me.ComboBox1.ListIndex = -1 Then
MsgBox "Veuillez choisir un nom"
Else
L = Me.ComboBox1.ListIndex + 9
diff = CDate(Me.TextBox1) - CDate(Range("E7"))
Colonne = 5 + diff * 2
If Me.OptionButton2 = True Then Colonne = Colonne + 1
diff = CDate(Me.TextBox3) - CDate(Range("E7"))
Colonne1 = 5 + diff * 2
If Me.OptionButton1 = True Then ' Matinée
Colonne1 = Application.Max(Colonne, Colonne1 - 1)
Else
Colonne1 = Colonne1 + 1
End If

Range(Cells(L, Colonne), Cells(L, Colonne1)).Select

UserForm1.TextBox1 = Me.ComboBox1 'Cells(L, 1).Value 'Correspond la cellule active de la colonne A
UserForm1.Label2 = L
UserForm1.Label3 = J
Unload Me

UserForm1.Show vbModeless
End If
End Sub

et la procédure suivante :

Private Sub UserForm_Initialize()
With ActiveSheet
ComboBox1.List = .Range("A9:A" & .Range("A65536").End(xlUp).Row).Value
End With
'Me.TextBox1 = "04/01/2016"
'Me.TextBox3 = "15/01/2016"
ComboBox1 = ActiveCell
L = ActiveCell.Row
'ActiveCell.Offset(1, 0).Activate
TextBox2.Visible = False
Me.OptionButton3 = True
End Sub
 

Discussions similaires

Réponses
0
Affichages
405

Statistiques des forums

Discussions
312 687
Messages
2 090 950
Membres
104 705
dernier inscrit
Mike72