fonction SUM avec une variable

chelsea

XLDnaute Nouveau
bonjour aux "forumeurs"

mon problème est le suivant:
j'ai mis dans une variable "col" la colonne d'une cellule

et ma fonction SUM doit additionner tout une ligne, jusqu'à cette colonne

moi je pensait que c'était ça... :
Code:
Range("D" & ligne).Value = "=SUM(RC[2]:RC[col])"

...mais nan:p . alors est ce que quelqu'un peut m'aider svp ?

merci
 

wilfried_42

XLDnaute Barbatruc
Re : fonction SUM avec une variable

re:

d'apres ce que je comprends, tu commences à la colonne 2 et tu vas jusqu'à le colonne col
Range("D"....... tu vas englober la colonne D, si tu mets une formule comme cel, tu vas voir une reference circulaire

alors soit :
range("D" & ligne).formulaR1C1 = "=Sum(RC[2]:RC[" & col & "])"
sinon
Range("D" & ligne).value = worksheetfunction.sum(range("B" & ligne & ":" & cells(ligne,col).address))

Edit : oups pas vu, bonjour David, Pierrejean
 

chelsea

XLDnaute Nouveau
Re : fonction SUM avec une variable

grace à vous ça fonctionne, le bon code est

Code:
Range("D" & ligne).FormulaR1C1 = "=Sum(RC[2]:RC[" & col - 4 & "])"

il y a -4 car en fait( imaginons que col=14) la fonction SUM va additionner tous les chiffres qui sont 14 cases aprés la case qui va recevoir le résultat, mais cela dépasse de 4 case la colonne voulu.

merci à tous ;)
 

chelsea

XLDnaute Nouveau
Re : fonction SUM avec une variable

re: bonjour à tous

j'ai fais une autre ligne avec la fonction sum et elle ne fonctionne pas :

Code:
ActiveCell.FormulaR1C1 = "=SUM(RC[" & colused - 2 & "]:RC[" & colfin & "])"

alors que celle-ci fonctionne parfaitement
Code:
Range("D" & ligne).FormulaR1C1 = "=Sum(RC[2]:RC[" & colused - 4 & "])"

:confused:
 

chelsea

XLDnaute Nouveau
Re : fonction SUM avec une variable

Code:
Private Sub CommandButton2_Click()
Dim nbpers, i, ligne, j, colused, colfin As Integer
Dim cel As Range, flag As Boolean
Dim dateJour As Date


'colused = variable utilisé pour la colonne used
'colfin = variable qui récupère la colonne de la derniere cellule de la ligne concerné

    Sheets("Estimation détaillée").Select

        Range("B1").Value = "nous sommes le : "
        Range("B2").Select
        ActiveCell.FormulaR1C1 = "=TODAY()"
        Columns("A:B").EntireColumn.AutoFit
        
        nbpers = InputBox("combien de personne y a t-il sur le projet ")
    
        ligne = 8

    For i = 1 To nbpers

        'colonne used
            flag = False
            dateJour = Range("B2").Value
            
            'recherche sur la ligne des jours de la date d'aujourd'hui
            For Each cel In Range("F2:IV2")
                 If cel.Value = dateJour Then
                 flag = True
                 cel.Select
                 Exit For
                 End If
            Next
            
            If flag = True Then ' La date a été trouvée
            colused = ActiveCell.Column
            Range("D" & ligne).FormulaR1C1 = "=Sum(RC[2]:RC[" & colused - 4 & "])"
            'même formule pour les 13 autres tâches
            Range("D" & ligne).Select
            Selection.AutoFill Destination:=Range("D" & ligne, "D" & ligne + 13), Type:=xlFillDefault
            End If
        '
        
        'colonne raf
            
            'selection de la dernière case de la ligne pour récupérer la colonne
            Range("IV1").Select
            colfin = ActiveCell.Column
            MsgBox colfin
            MsgBox colused
            
            'For j = colused - 4 To colfin
            'Range("C" & ligne).Value = Range("C" & ligne).Value + Cells(ligne, j).Value
                    
            'Next
            
            Range("C" & ligne).Select
            ActiveCell.FormulaR1C1 = "=SUM(RC[" & colused - 2 & "]:RC[" & colfin & "])"
        '
        
        ligne = ligne + 18

Next
End Sub
 

pierrejean

XLDnaute Barbatruc
Re : fonction SUM avec une variable

re

le coupable est colused (vide)

ceci parceque la date n'a pas été trouvée

vois avec la retouche suivante

Code:
Sub CommandButton2_Click()
Dim nbpers, i, ligne, j, colused, colfin As Integer
Dim cel As Range, flag As Boolean
Dim dateJour As Date

'colused = variable utilisé pour la colonne used
'colfin = variable qui récupère la colonne de la derniere cellule de la ligne concerné
    Sheets("Feuil1").Select
        Range("B1").Value = "nous sommes le : "
        Range("B2").Select
        ActiveCell.FormulaR1C1 = "=TODAY()"
        Columns("A:B").EntireColumn.AutoFit
        
        nbpers = InputBox("combien de personne y a t-il sur le projet ")
    
        ligne = 8
    For i = 1 To nbpers
        'colonne used
            flag = False
            dateJour = Range("B2").Value
            
            'recherche sur la ligne des jours de la date d'aujourd'hui
            For Each cel In Range("F2:IV2")
                 If cel.Value = dateJour Then
                 flag = True
                 cel.Select
                 Exit For
                 End If
            Next
            
            If flag = True Then ' La date a été trouvée
            colused = ActiveCell.Column
            Range("D" & ligne).FormulaR1C1 = "=Sum(RC[2]:RC[" & colused - 4 & "])"
            'même formule pour les 13 autres tâches
            Range("D" & ligne).Select
            Selection.AutoFill Destination:=Range("D" & ligne, "D" & ligne + 13), Type:=xlFillDefault
            [COLOR=red]Else
            MsgBox ("La date n'a pas été trouvée")
            Exit Sub
[/COLOR]            End If
        '
        
        'colonne raf
            
            'selection de la dernière case de la ligne pour récupérer la colonne
            Range("IV1").Select
            colfin = ActiveCell.Column
            MsgBox colfin
            MsgBox colused
            
            'For j = colused - 4 To colfin
            'Range("C" & ligne).Value = Range("C" & ligne).Value + Cells(ligne, j).Value
                    
            'Next
            
            Range("C" & ligne).Select
            ActiveCell.FormulaR1C1 = "=SUM(RC[" & colused - 2 & "]:RC[" & colfin & "])"
        '
        
        ligne = ligne + 18
Next
End Sub

lorsque ce probleme sera reglé ces lignes seront fonctionnelles

Code:
Range("C" & ligne).Select
            ActiveCell.FormulaR1C1 = "=SUM(RC[" & colused - 2 & "]:RC[" & colfin & "])"
 

Discussions similaires

Réponses
2
Affichages
176

Statistiques des forums

Discussions
312 492
Messages
2 088 926
Membres
103 984
dernier inscrit
maliko67