F
franck
Guest
voici mon code
ce code me permet de creer un plannig general pour X agents selon les besoins.
j'aimerais connaitre pour chaque agent le total effectue dans le mois et pour l'inserer.
Mon probleme est que j'insere des lignes tout le temps donc les valeurs se deplacent et pour les additionner ce ne sais pas comment faire.
ce code me permet de creer un plannig general pour X agents selon les besoins.
j'aimerais connaitre pour chaque agent le total effectue dans le mois et pour l'inserer.
Mon probleme est que j'insere des lignes tout le temps donc les valeurs se deplacent et pour les additionner ce ne sais pas comment faire.
Code:
Sub Macro1()
Application.ScreenUpdating = False
Dim vCell As Variant
Dim nom, prenom, status, cel As Range, total
Dim Message, Title, Default, MyValue
Dim message2, message3, message4, sht As Worksheet, vcel As Object
Dim i As Integer
Dim j As Integer
Dim calcul As Integer
Dim telephone
' Définit le message.
Message = 'veuillez entrer le NOM'
Title = 'Nouvel Agent' ' Définit le titre.
entrernom: 'si nom existe déjà la commande revient ici
nom = InputBox(Message, Title)
If nom = '' Then
MsgBox 'le nom est obligatoire', vbOKOnly, 'Erreur'
Exit Sub
End If
For Each vcel In [b3:b40]
If UCase(vcel.Value) = UCase(nom) Then
MsgBox 'ce nom existe déjà', vbOKOnly, 'erreur'
GoTo entrernom
Exit Sub
End If
Next vcel
message2 = 'veuillez entrer le PRENOM'
message3 = 'veuillez entrer le STATUS de l'agent'
message4 = 'veuillez entrer le NUMERO de telephone'
prenom = InputBox(message2, Title)
status = InputBox(message3, Title)
telephone = InputBox(message4, Title)
'ajouter agent dans la base
Range('b40').Select
Selection.End(xlUp).Offset(1, 0).Select
ActiveCell.Value = UCase(nom)
ActiveCell.Borders.LineStyle = xlContinuous
With ActiveCell
.Offset(0, 1).Value = UCase(prenom)
.Offset(0, 1).Borders.LineStyle = xlContinuous
.Offset(0, 2).Value = UCase(status)
.Offset(0, 2).Borders.LineStyle = xlContinuous
.Offset(0, 3).Value = telephone
.Offset(0, 3).Borders.LineStyle = xlContinuous
End With
' creation du plannig individuel
Sheets('1').Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = nom
Sheets(nom).Visible = -1
Sheets('juin').Select
j = 33
' ajouter l'agent dans le plannig general
For i = Range('c1000').End(xlUp).Row To 1 Step -1
Worksheets('juin').Select
If Cells(i, 3) <> '' Then
If Weekday(Cells(i, 3)) = vbSunday Then
Cells(i + 1, 4).EntireRow.Insert
Cells(i + 1, 4).Value = nom
Cells(i + 1, 33).Value = nom
Range(Cells(i + 1, 4), Cells(i + 1, 35)).Borders.LineStyle = xlContinuous
Cells(i + 1, 45).Value = '00:45'
Cells(i + 1, 34).FormulaR1C1 = '=COUNTA(RC[-28]:RC[-2])*rc[11]'
Range(Cells(i + 1, 5), Cells(i + 1, 34)).Copy Sheets(nom).Range('c' & j)
j = j - 1
Else
Cells(i + 1, 4).EntireRow.Insert
Cells(i + 1, 4).Value = nom
Cells(i + 1, 33).Value = nom
Range(Cells(i + 1, 4), Cells(i + 1, 35)).Borders.LineStyle = xlContinuous
Cells(i + 1, 44).Value = '00:30'
Cells(i + 1, 34).FormulaR1C1 = '=COUNTA(RC[-28]:RC[-2])*rc[10]'
Range(Cells(i + 1, 5), Cells(i + 1, 32)).Copy Sheets(nom).Range('c' & j)
j = j - 1
End If
End If
Next
Range('a2').Select
ActiveCell.Value = UCase(nom)
ActiveCell.Borders.LineStyle = xlContinuous
Range('b2').Select
ActiveCell.Borders.LineStyle = xlContinuous
Selection.NumberFormat = '[h]:mm'
End Sub
merci de votre aide