MAJ répartition charge linéaire_VBA xls

Bonjour !

je fais appel à vous parce que je ne suis pas très douée en VBA et j'avoue que je commence à sécher :/

Je vous envoie une partie du code (selon mes recherches sur les discussions des forums), qui ne bug pas ( aucun message d'erreur) mais ne change pas mes valeurs, en gros ça fait rien...

il s'agit en fait d'une répartition de la charge de projet sur les différents mois, ce que je voudrais faire à travers VBA c'est de permettre une MAJ automatique de cette répartition et ce à partir du mois en cours.

alors, brièvement, l'objectif est de : récupérer le mois saisi et rechercher la colonne qui lui correspond puis recalculer la répartition de la charge 2017 --> en divisant la valeur de la charge globale sur le nombre de colonnes entre la colonne du mois en cours et la fin de 2017.

Je me dis que c'est peut etre une question d'ordre ..

Dim i As Integer

Dim z As Integer

Dim nb As Integer

Dim LL As Integer

Dim Ncol As Integer

Dim cell As Range

Dim rcell As Range

Dim Myrange As Range

LL = Sheets("INPUTS").Range("A1").End(xlDown).Row

* Code pour la recherche de la colonne du mois pour actualiser l'affectation --> fonctionne sans pb

With Sheets("INPUTS")

Set rcell = Cells.Find(What:=CDate(strdate), After:=Range("A1"), LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)

On Error GoTo 0

If Not rcell Is Nothing Then

Application.Goto rcell, True

rcell.Activate

Else

MsgBox "Nothing found"

End If

End With

* Code pour actualiser la répartition de la valeur de la charge qui se trouve dans les textbox selon l'option choisie (j'ai mis un cas de figure, ce n'est pas important de savoir les autres)

If OptionButton2.Value = True And CheckBox5.Value = True Then

For i = 2 To LL

For j = Ncol To 21

If TextBox4.Text = Range("H" & i) And TextBox5.Text = Range("I" & i) Then

* Code pour calculer le nombre de colonnes entre le mois en cours et la fin de 2017

Ncol = rcell.Column

Set Myrange = Range(Cells(i, Ncol), Cells(i, 21))

nb = Myrange.Columns.Count

For Each cell In Myrange

cell(i, j) = TextBox4.Value / nb

Next cell

End If

Next j

Next i

End If

Merci de m'aider! j'espère que j'ai été assez claire..je ne pourrais envoyer le fichier de base (confidentiel :s)

Bonne fin de journée à tous!

Jina a écrit :

Merci de m'aider! j'espère que j'ai été assez claire..je ne pourrais envoyer le fichier de base (confidentiel :s)

Confidentiel.... et avec une copie anonymisée , il ne le serait plus

P.

Voilà j'ai adapté le code au fichier en anonymus

Je vous en serai extrêmement reconnaissante si vous saurez me répondre!

Je reste dispo pour toute autre question! ^^

23sample-v1.xlsm (208.43 Ko)

Bonjour,

Je ne vais pas avoir le temps mais AMHA, il faudrait pour plus de facilité, mettre tes dates dans une colonne et pas en ligne...

On a plus facile ensuite pour total, moyenne, TCD etc etc...

Une colonne par type données, une ligne par "évènement" ...

Il ne sera peut être pas nécessaire à ce moment d'utiliser le vba.

P.

Bonjour Patrick,

Merci pour ta réponse

Par contre, je ne sais pas si on s'est mal compris, mais je ne cherche pas à avoir le total, moyenne ou autres...et tu as raison, à ce moment-là j'aurai pas besoin de VBA.

Dans mon cas (malheureusement :/) , je voudrais que ma macro (au moment ou je cliquerai sur le bouton "actualiser répartition charge" dans l'onglet ACCUEIL) puisse changer la répartition déjà faite en mettant à jour les valeurs des cellules comprises entre le mois en cours et la fin de l'année 2017 par exemple. les nouvelles valeurs correspondront alors à la valeur totale de la charge (dans la textbox) divisée par le nombre de mois restants (dans notre cas --> nb=4, càd de septembre à décembre 17).

Did you get what I mean ? ^^

et je pense qu'il faut voir juste la partie du code qui correspond au command button click, là où j'ai marqué en commentaire "actualiser la répartition..." (pour rapidement vous situer)

Merci encore pour votre appui!

Bonjour,

une proposition de correction

    'Actualiser la répartition de la charge selon l'option choisie

    If OptionButton2.Value = True And CheckBox5.Value = True Then

        For i = 2 To LL

            'For j = Ncol To 21

            If TextBox4.Text = Range("H" & i) & "" And TextBox5.Text = Range("I" & i) & "" Then

                'calculer le nombre de colonnes entre le mois en cours et la fin de 2017
                Ncol = rcell.Column
                Set Myrange = Range(Cells(i, Ncol), Cells(i, 21))
                nb = Myrange.Columns.Count

                For Each cell In Myrange
                    cell = TextBox4.Value / nb
                Next cell

            End If

            'Next j

        Next i

    End If

Bonjouuuur!

Super! merci vous êtes TOP sur ce forum! réactifs et efficaces

ça fonctionne bien cette fois-ci, je finirai le code des autres options et reviendrai vers vous pour clore le sujet

Bonne journée!!

Rechercher des sujets similaires à "maj repartition charge lineaire vba xls"