max.lander
XLDnaute Occasionnel
Bonjour à tous,
Je souhaite remplir une dizaine de Textbox en VBA avec les données d'une feuille.
Tantôt en comptant le nombre d’occurrences tantôt en effectuant une somme.
Ceci en fonction de l'opérateur sélectionné dans le combox
Le résultat est affiché en heure
Pour celà je repete les potions de code ci-dessous, 'j'aimerai simplifier tout ça et éviter la multiplication du code bêtement.
S'il y a des idées de simplification je suis preneur.
Vous trouverez en PJ un fichier exemple.
Somme des heures :
Nombre occurrences "journée"
Je souhaite remplir une dizaine de Textbox en VBA avec les données d'une feuille.
Tantôt en comptant le nombre d’occurrences tantôt en effectuant une somme.
Ceci en fonction de l'opérateur sélectionné dans le combox
Le résultat est affiché en heure
Pour celà je repete les potions de code ci-dessous, 'j'aimerai simplifier tout ça et éviter la multiplication du code bêtement.
S'il y a des idées de simplification je suis preneur.
Vous trouverez en PJ un fichier exemple.
Somme des heures :
VB:
Sub Heures_Travaillés()
Planner.TextBox_H_réalisées.Value = "00:00"
Dim derligne As Integer
Dim Opérateur As String
derligne = Sheets("Base WPL").Range("A" & Rows.Count).End(xlUp).Row
Opérateur = Planner.ComboBox_SelectPersonnel.Value
Sommes_Heures = Application.WorksheetFunction _
.SumIf(Sheets("Base WPL").Range("B1:B" & derligne), Opérateur, Sheets("Base WPL").Range("G1:G" & derligne))
y = Int(Sommes_Heures) * 24
z = Format(Sommes_Heures - Int(Sommes_Heures), "hh:mm")
total_heures = y + Split(z, ":")(0) & ":" & Split(z, ":")(1)
Planner.TextBox_H_réalisées.Value = total_heures
Planner.TextBox_H_réalisées.Locked = True
End Sub
Nombre occurrences "journée"
VB:
Sub Nombre_Journée()
Dim derligne As Integer
Dim Opérateur As String
Dim Compteur_J As Integer
Compteur_J = 0
derligne = Sheets("Base WPL").Range("A" & Rows.Count).End(xlUp).Row
Opérateur = Planner.ComboBox_SelectPersonnel.Value
For i = 2 To derligne
If Sheets("Base WPL").Cells(i, 2).Value = Opérateur And Sheets("Base WPL").Cells(i, 5).Value = "Journée" Then
Compteur_J = Compteur_J + 1
Else
End If
Next
Planner.TextBox_Nb_Journée.Value = Format(Compteur_J, "###0.00")
Planner.TextBox_Nb_Journée.Locked = True
End Sub