Bonjour,
Je me suis fait un programme pour faire des plannings de congés.
J'ai quelques notions de VBA, mais cetaines choses me semblent bien loin.
Voici mon code VBA :
'PROCEDURE DE CONTROLE DE DATE :
If Jour_depart > jour_fin Then
MsgBox ("Attention erreur date")
' PROECEDURE D'ECRITURE EXCEL DES DATES DE CONGES :
'**** SCOLAIRES ****
ElseIf employe = Range("AC21") Then
If Range("AD21") = "" Or Range("AE21") = "" Then
'Petite magouille pour ne pas afficher les données au format texte
Range("AD21") = Jour_depart * 1
Range("AE21") = jour_fin * 1
Range("B2").Select
Else
Rep = MsgBox("Congés déjà présent, voulez vous remplacer ? ", vbYesNo, "Modification ?")
If Rep = vbNo Then
vacances.Hide
Menu.Show
Else
Range("AD21") = Jour_depart * 1
Range("AE21") = jour_fin * 1
Range("B2").Select
End If
End If
ElseIf employe = Range("AC22") Then
If Range("AD22") = "" Or Range("AE22") = "" Then
'Petite magouille pour ne pas afficher les données au format texte
Range("AD22") = Jour_depart * 1
Range("AE22") = jour_fin * 1
Range("B2").Select
Else
Rep = MsgBox("Congés déjà présent, voulez vous remplacer ? ", vbYesNo, "Modification ?")
If Rep = vbNo Then
vacances.Hide
Menu.Show
Else
Range("AD22") = Jour_depart * 1
Range("AE22") = jour_fin * 1
Range("B2").Select
End If
End If
ElseIf employe = Range("AC23") Then
If Range("AD23") = "" Or Range("AE23") = "" Then
'Petite magouille pour ne pas afficher les données au format texte
Range("AD23") = Jour_depart * 1
Range("AE23") = jour_fin * 1
Range("B2").Select
Else
Rep = MsgBox("Congés déjà présent, voulez vous remplacer ? ", vbYesNo, "Modification ?")
If Rep = vbNo Then
vacances.Hide
Menu.Show
Else
Range("AD23") = Jour_depart * 1
Range("AE23") = jour_fin * 1
Range("B2").Select
End If
End IfEvidemment, cela continu longtemps, puisque j'ai 150 personnes donc, 150 lignes ...
Comment faire un code plus simple que de recopier le code de base :
ElseIf employe = Range("AC23") Then
If Range("AD23") = "" Or Range("AE23") = "" Then
'Petite magouille pour ne pas afficher les données au format texte
Range("AD23") = Jour_depart * 1
Range("AE23") = jour_fin * 1
Range("B2").Select
Else
Rep = MsgBox("Congés déjà présent, voulez vous remplacer ? ", vbYesNo, "Modification ?")
If Rep = vbNo Then
vacances.Hide
Menu.Show
Else
Range("AD23") = Jour_depart * 1
Range("AE23") = jour_fin * 1
Range("B2").Select
End If
End If
Je sais qu'il y a moyen de faire une boucle, et qui permettrais d'avoir quelechose de beaucoup plus simple, mais je ne me souviens plus du tout comment faire ... Pire je me noie complétement dans les recherches que j'ai faites sur le sujet.
Merci d'avance, de vos réponses
Je me suis fait un programme pour faire des plannings de congés.
J'ai quelques notions de VBA, mais cetaines choses me semblent bien loin.
Voici mon code VBA :
'PROCEDURE DE CONTROLE DE DATE :
If Jour_depart > jour_fin Then
MsgBox ("Attention erreur date")
' PROECEDURE D'ECRITURE EXCEL DES DATES DE CONGES :
'**** SCOLAIRES ****
ElseIf employe = Range("AC21") Then
If Range("AD21") = "" Or Range("AE21") = "" Then
'Petite magouille pour ne pas afficher les données au format texte
Range("AD21") = Jour_depart * 1
Range("AE21") = jour_fin * 1
Range("B2").Select
Else
Rep = MsgBox("Congés déjà présent, voulez vous remplacer ? ", vbYesNo, "Modification ?")
If Rep = vbNo Then
vacances.Hide
Menu.Show
Else
Range("AD21") = Jour_depart * 1
Range("AE21") = jour_fin * 1
Range("B2").Select
End If
End If
ElseIf employe = Range("AC22") Then
If Range("AD22") = "" Or Range("AE22") = "" Then
'Petite magouille pour ne pas afficher les données au format texte
Range("AD22") = Jour_depart * 1
Range("AE22") = jour_fin * 1
Range("B2").Select
Else
Rep = MsgBox("Congés déjà présent, voulez vous remplacer ? ", vbYesNo, "Modification ?")
If Rep = vbNo Then
vacances.Hide
Menu.Show
Else
Range("AD22") = Jour_depart * 1
Range("AE22") = jour_fin * 1
Range("B2").Select
End If
End If
ElseIf employe = Range("AC23") Then
If Range("AD23") = "" Or Range("AE23") = "" Then
'Petite magouille pour ne pas afficher les données au format texte
Range("AD23") = Jour_depart * 1
Range("AE23") = jour_fin * 1
Range("B2").Select
Else
Rep = MsgBox("Congés déjà présent, voulez vous remplacer ? ", vbYesNo, "Modification ?")
If Rep = vbNo Then
vacances.Hide
Menu.Show
Else
Range("AD23") = Jour_depart * 1
Range("AE23") = jour_fin * 1
Range("B2").Select
End If
End IfEvidemment, cela continu longtemps, puisque j'ai 150 personnes donc, 150 lignes ...
Comment faire un code plus simple que de recopier le code de base :
ElseIf employe = Range("AC23") Then
If Range("AD23") = "" Or Range("AE23") = "" Then
'Petite magouille pour ne pas afficher les données au format texte
Range("AD23") = Jour_depart * 1
Range("AE23") = jour_fin * 1
Range("B2").Select
Else
Rep = MsgBox("Congés déjà présent, voulez vous remplacer ? ", vbYesNo, "Modification ?")
If Rep = vbNo Then
vacances.Hide
Menu.Show
Else
Range("AD23") = Jour_depart * 1
Range("AE23") = jour_fin * 1
Range("B2").Select
End If
End If
Je sais qu'il y a moyen de faire une boucle, et qui permettrais d'avoir quelechose de beaucoup plus simple, mais je ne me souviens plus du tout comment faire ... Pire je me noie complétement dans les recherches que j'ai faites sur le sujet.
Merci d'avance, de vos réponses