Congés; VBA
Résolu
julia Namor
Messages postés
532
Statut
Membre
-
julia Namor Messages postés 532 Statut Membre -
julia Namor Messages postés 532 Statut Membre -
Bonsoir chers tous
je reviens vers vous à nouveau pour solliciter votre aide
je voudrais attribuer des congés annuels ( "Ca") aux agents sur le planning de travail.
Pour ne pas me perdre en explications je vous joins le fichier pour un meilleur éclairage.
http://www.cjoint.com/c/FBew4Pan8oA
Merci de votre aide
je reviens vers vous à nouveau pour solliciter votre aide
je voudrais attribuer des congés annuels ( "Ca") aux agents sur le planning de travail.
Pour ne pas me perdre en explications je vous joins le fichier pour un meilleur éclairage.
http://www.cjoint.com/c/FBew4Pan8oA
Merci de votre aide
A voir également:
- Congés; VBA
- Planning congés - Guide
- Excel compter cellule couleur sans vba - Guide
- Find vba - Astuces et Solutions
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
22 réponses
Bonsoir
Voilà qui devrait aller
Cdlt
Voilà qui devrait aller
Sub AdressesCA()
Application.ScreenUpdating = False
Dim com As Range
Dim arr As Range
Dim TotalCa
DerLig = [E10000].End(xlUp).Row
Sheets("feuil1").Range("$I$4:$FD$4", "$I$6:$FD$6").ClearContents
For LigAct = 10 To DerLig
Cells(LigAct, 5).Select
Agent = Cells(LigAct, 5)
PremCol = Cells(LigAct, 8).End(xlToRight).Column
DerCol = Cells(LigAct, 2000).End(xlToLeft).Column
TotalCa = 0
If DerCol < 8 Then GoTo Suivant
ReDim deb(DerCol) As String
ReDim fin(DerCol) As String
For i = PremCol To DerCol
If Cells(LigAct, i - 1) <> "Ca" And Cells(LigAct, i) = "Ca" Then
deb(i) = Cells(LigAct, i).Address(RowAbsolute:=False, ColumnAbsolute:=False)
Cpt = 1
Do While Cells(LigAct, Cpt + i) = "Ca"
Cpt = Cpt + 1
Loop
fin(i) = Cells(LigAct, Cpt + i).Address(RowAbsolute:=False, ColumnAbsolute:=False)
Set celluletrouvee_DEB = Cells(LigAct, i).Offset(-(Cells(ActiveCell.Row, 5).Offset(0, -1) + 1), 0)
Set celluletrouvee_FIN = Cells(LigAct, Cpt + i).Offset(-(Cells(ActiveCell.Row, 5).Offset(0, -1) + 1), 0).Offset(0, -1)
fériés_1 = Application.WorksheetFunction.CountIf(ActiveSheet.Range(celluletrouvee_DEB.Address, celluletrouvee_FIN.Address), Sheets("Donnees").Range("M2").Value)
fériés_2 = Application.WorksheetFunction.CountIf(ActiveSheet.Range(celluletrouvee_DEB.Address, celluletrouvee_FIN.Address), Sheets("Donnees").Range("M3").Value)
fériés_3 = Application.WorksheetFunction.CountIf(ActiveSheet.Range(celluletrouvee_DEB.Address, celluletrouvee_FIN.Address), Sheets("Donnees").Range("M4").Value)
fériés_4 = Application.WorksheetFunction.CountIf(ActiveSheet.Range(celluletrouvee_DEB.Address, celluletrouvee_FIN.Address), Sheets("Donnees").Range("M5").Value)
fériés_5 = Application.WorksheetFunction.CountIf(ActiveSheet.Range(celluletrouvee_DEB.Address, celluletrouvee_FIN.Address), Sheets("Donnees").Range("M6").Value)
fériés_6 = Application.WorksheetFunction.CountIf(ActiveSheet.Range(celluletrouvee_DEB.Address, celluletrouvee_FIN.Address), Sheets("Donnees").Range("M7").Value)
fériés_7 = Application.WorksheetFunction.CountIf(ActiveSheet.Range(celluletrouvee_DEB.Address, celluletrouvee_FIN.Address), Sheets("Donnees").Range("M8").Value)
fériés_8 = Application.WorksheetFunction.CountIf(ActiveSheet.Range(celluletrouvee_DEB.Address, celluletrouvee_FIN.Address), Sheets("Donnees").Range("M9").Value)
fériés_9 = Application.WorksheetFunction.CountIf(ActiveSheet.Range(celluletrouvee_DEB.Address, celluletrouvee_FIN.Address), Sheets("Donnees").Range("M10").Value)
fériés_10 = Application.WorksheetFunction.CountIf(ActiveSheet.Range(celluletrouvee_DEB.Address, celluletrouvee_FIN.Address), Sheets("Donnees").Range("M11").Value)
fériés_11 = Application.WorksheetFunction.CountIf(ActiveSheet.Range(celluletrouvee_DEB.Address, celluletrouvee_FIN.Address), Sheets("Donnees").Range("M12").Value)
fériés_12 = Application.WorksheetFunction.CountIf(ActiveSheet.Range(celluletrouvee_DEB.Address, celluletrouvee_FIN.Address), Sheets("Donnees").Range("M13").Value)
Total_féries = fériés_1 + fériés_2 + fériés_3 + fériés_4 + fériés_5 + fériés_6 + fériés_7 + fériés_8 + fériés_9 + fériés_10 + fériés_11 + fériés_12
TotalCa = TotalCa + Cells(LigAct, Cpt + i).Offset(-(Cells(ActiveCell.Row, 5).Offset(0, -1) + 1), 0) - Cells(LigAct, i).Offset(-(Cells(ActiveCell.Row, 5).Offset(0, -1) + 1), 0) - Left((Cells(LigAct, Cpt + i).Offset(-(Cells(ActiveCell.Row, 5).Offset(0, -1) + 1), 0) - Cells(LigAct, i).Offset(-(Cells(ActiveCell.Row, 5).Offset(0, -1) + 1), 0)) / 7, 1) - Total_féries
Sheets("feuil1").Range("F5").Value = WorksheetFunction.Sum(por)
End If
Next i
Cells(LigAct, "FF").FormulaR1C1 = TotalCa
Suivant:
Next LigAct
End Sub
Cdlt