VB Excel 2007

Résolu/Fermé
ced - 12 mai 2010 à 16:45
 ced - 12 mai 2010 à 17:58
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 + 1    
FinBonus = 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 !!!!!!
A voir également:

1 réponse

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 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+
0
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 !!!
0