Bonjour tout le monde,
j'ai une question a laquelle je n'arrive pas à répondre.
Mon travail est de faire un tableau qui se remplit grace a une macro.
Tout le code de ce tableau est le même que celui d'un autre que j'ai deja (mis a part quelques petit changement de variables evidement)
et justement dans ma "copie" il y a un passage que je n'arrive pas a refaire car les variable change :
ma question est :
-comment la macro arrive a savoir ce qu'est "Titres Bonnus" et TotauxBonus" (souligné dans le code ci-dessoud) ?
je reformule ma question :
-comment la macro sait que "titresBonus" et "TotauxBonus" est un tableau et ou il se trouve ?
voila le code :
Sub CalculerConclusion()
Dim DebutBonus As Integer
Dim FinBonus As Integer
Dim ligne As Integer
Sheets("Conclusion").Activate
Sheets("Conclusion").Unprotect
'affichage de saisie des périodes
FeuillePeriodes.Show
If rc = vbOK Then
Set Ref1 = Range("TableStats")
Set Ref2 = Range("TableVariations")
'Statistiques sur la première période
Range("DébutPériode").Value = Range("B4", "B4").Value
Range("FinPériode").Value = Range("C4", "C4").Value
Call ReCalculer
Sheets("Conclusion").Activate
Range("A7", "A7").Value = Ref2.Cells(3, 1).Value
Range("A11", "A11").Value = Ref2.Cells(2, 1).Value
Range("A15", "A15").Value = Ref1.Cells(1, 2).Value
'Statistiques sur la deuxième période
Range("DébutPériode").Value = Range("B18", "B18").Value
Range("FinPériode").Value = Range("C18", "C18").Value
Call ReCalculer
Sheets("Conclusion").Activate
Range("A21", "A21").Value = Ref2.Cells(3, 1).Value
Range("A25", "A25").Value = Ref2.Cells(2, 1).Value
Range("A29", "A29").Value = Ref1.Cells(1, 2).Value
Range("A33", "A33").Value = Ref2.Cells(4, 1).Value
'RAZ des lignes bonus
DebutBonus = Range("TitresBonus").Row + 1FinBonus = Range("TotauxBonus").Row - 2
If FinBonus >= DebutBonus Then
Range(Cells(DebutBonus, 1), Cells(FinBonus, 1)).EntireRow.Delete (xlShiftUp)
End If
'Recherche des lignes bonus
nDate = Range("B36", "B36").Value
Range("DébutPériode").Value = nDate
DébutPériode = nDate
nDate = Range("C36", "C36").Value
Range("FinPériode").Value = nDate
FinPériode = nDate
ligne = 1
DebutBonus = Range("TitresBonus").Row + 1
FinBonus = Range("TotauxBonus").Row - 2
Do While ligne < RefTable.Rows.Count
If RefTable.Cells(ligne, COLLABORATEUR).Value = "" Then
Exit Do ' fin table
End If
If RefTable.Cells(ligne, PRIME).Value <> "" Then
D = RefTable.Cells(ligne, DATE_EVENEMENT)
If EstDansPériode(D) = DEDANS Then
'Insertion d'une ligne de bonus
Rows(FinBonus + 1).EntireRow.Copy
Rows(FinBonus + 1).EntireRow.Insert shift:=xlDown
FinBonus = FinBonus + 1
'remplissage des valeurs
Cells(FinBonus, 1) = RefTable.Cells(ligne, COLLABORATEUR).Value
Cells(FinBonus, 2) = RefTable.Cells(ligne, PRIME).Value
Cells(FinBonus, 4) = RefTable.Cells(ligne, DATE_EVENEMENT).Value
Cells(FinBonus, 5) = RefTable.Cells(ligne, COMMENT_EVENEMENT).Value
End If
End If
ligne = ligne + 1
Loop
'Reinitialise la période 2
Range("DébutPériode").Value = Range("B18", "B18").Value
Range("FinPériode").Value = Range("C18", "C18").Value
ActiveCell.Select
J'espere mettre exprimé clairement, et surtout que vous pourez répondre a ma question;
merci d'avance !!!!!!
lermite222
Messages postés8724Date d'inscriptiondimanche 8 avril 2007StatutContributeurDernière intervention22 janvier 20201 190 12 mai 2010 à 16:56
Bonjour,
Je n'ai pas lu tout ton code mais au premier abord, "titresBonus" et "TotauxBonus" sont de plage nommée.
Dans la feuille sélectionner les plages des tableaux et les nommer respectivement "titresBonus" et "TotauxBonus"
A+
Au top !! c'était sa, tout simplement.
Vraiment merci car grace a toi tu as résolu un problème ou moi (en tant que novice) j'avais deja passé plus de 2h30 dessud alors que toi en 2 min c'est fait!
Encore un grand MERCI !!!
12 mai 2010 à 17:58
Vraiment merci car grace a toi tu as résolu un problème ou moi (en tant que novice) j'avais deja passé plus de 2h30 dessud alors que toi en 2 min c'est fait!
Encore un grand MERCI !!!