utilisation de la fonction union

  • Initiateur de la discussion franck
  • Date de début
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.


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
 

Zon

XLDnaute Impliqué
Salut,

Pour te mettre sur la voie pour insérer une formule dans une cellule:


dim I&

Cells(i + 1, 34).Formula='=COUNTA(' & 'B' & I & ':AB' & I & ')*M' & I & ''

un petit conseil: déclares ta variable i en majuscule parce que avec tous ces guillemets on s'y perd ,écris par contre en miniscule dans le code en passant à la ligne tu verras bien si elle passe en majuscule toute seule, auquel cas c'est bien reconnu.

A+++
 

Zon

XLDnaute Impliqué
Salut,

Je voulais juste te montrer comment on pouvait écrire une formule en VBA avec une variable( ici en l'occurence i) puisque tu demandais ' j'insere des lignes tout le temps donc les valeurs se deplacent et pour les
additionner ce ne sais pas comment faire.' Moi je comprends que tu veux rajouter une formule mais ce que te donne l'enregistruer de macro ne te convient pas .on est obligé à 1 ere vue de variabiliser tout cela.
Comme tu n'as pas mis de fichier exemple je cabote avec ton code...


A+++
 
F

franck

Guest
voici mon fichier excel
[file name=planning_20050826082323.zip size=45612]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/planning_20050826082323.zip[/file]
 

Pièces jointes

  • planning_20050826082323.zip
    44.5 KB · Affichages: 20

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 908
Membres
103 982
dernier inscrit
krakencolas