Calcul effectif

Bonjour à tous

Je me tourne vers vous car le VBA dépasse mes compétence. J'ai cherché toute la journée au travail sans connexion internet sans succès... je ne sais même pas si cela est possible.

Mon patron ma demandé de calculé l'effectif entrepôt sur un mois donné.

J'ai donc 3 classeur

  • 1 pour les CDI
  • 1 pour les CDD
  • 1 pour les intérimaire

et un autre classeur qui me sert de modèle.

Je rentre mes CDD tout les mois dans l'onglet CDD ceux qui me permet de savoir si ils sont présent un mois donné.

Le but du jeux est de générer un classeur pour un mois donner et de remplir les case correspondante pour un type de contrat un type de service et de remplir les case adéquate.

Il faudrait donc que je réussi a écrire un bout de code qui me permette de trier les donner qui m’intéresse et de les coller dans des cellule bien distincte.

Je suis conscient que tout cela n'est pas très compréhensible je vous joint donc mon fichier et reste a votre entière disposition pour des complement d'information.

cordialement un VBANOOB

53test.zip (55.05 Ko)

Voici mon code

Private Sub CommandButton1_Click()
'je declare la variable txt
Dim txt As String

For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
'j'affecte a txt la valeur de ma listbox choisie
txt = ListBox1.List(i)
End If
Next i

'SUPPRESSION DES CLASSEURS
'Je Supprime les onglets Obsolete après l'onglet model
Application.DisplayAlerts = False
Do While Sheets.Count > Sheets("model").Index
    Sheets(Sheets("model").Index + 1).Delete
    Loop
Application.DisplayAlerts = True

' Je creer un nouvelle onglet apres model
'CREATION DU CLASSEUR GENERER
Worksheets("MODEL").Copy after:=Worksheets("model")
'je lui affecte la valeur txt
ActiveSheet.Name = txt
UserForm.Hide
'je change le mois dans le titre du classeur
Sheets(txt).Range("A2").Value = txt

'je declare la valeur mois Mes contrat commence toujours en début de mois
Dim mois As String
If txt = "DECEMBRE 2017" Then
mois = "01/12/2017"
End If
If txt = "NOVEMBRE 2017" Then
mois = "01/11/2017"
End If
If txt = "OCTOBRE 2017" Then
mois = "01/10/2017"
End If
If txt = "SEPTEMBRE 2017" Then
mois = "01/09/2017"
End If
If txt = "AOUT 2017" Then
mois = "01/08/2017"
End If
If txt = "JUILLET 2017" Then
mois = "01/07/2017"
End If
If txt = "JUIN 2017" Then
mois = "01/06/2017"
End If
If txt = "MAI 2017" Then
mois = "01/05/2017"
End If
If txt = "AVRIL 2017" Then
mois = "01/04/2017"
End If
If txt = "MARS 2017" Then
mois = "01/03/2017"
End If
If txt = "FEVRIER 2017" Then
mois = "01/02/2017"
End If
If txt = "JANVIER 2017" Then
mois = "01/01/2017"
End If
If txt = "DECEMBRE 2016" Then
mois = "01/12/2016"
End If
If txt = "NOVEMBRE 2016" Then
mois = "01/11/2016"
End If
If txt = "OCTOBRE 2016" Then
mois = "01/10/2016"
End If
If txt = "SEPTEMBRE 2016" Then
mois = "01/09/2016"
End If
If txt = "AOUT 2016" Then
mois = "01/08/2016"
End If
If txt = "JUILLET 2016" Then
mois = "01/07/2016"
End If

'Voila ou je suis rendu maintenant je veut récupérer par exemple la valeur d'une ligne contenant 01/07/2016.
'dans celle ci effectué un deuxieme tri et ne gardé que les CDD et les copié dans mon classeur generer dans une plage de cellule bien précise.

End Sub

Je pense que c'est un peu plus explicit

Rechercher des sujets similaires à "calcul effectif"