Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 . alors est ce que quelqu'un peut m'aider svp ?

merci
 

pierrejean

XLDnaute Barbatruc
Re : fonction SUM avec une variable

bonjour chelsea

Salut G.David

avec .formula cela ira mieux mais..

Range("D" & ligne).formula = "=SUM(RC[2]:RC[" & col & "])"

sera peut-etre (non testé) plus efficace​
 

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

nan c'est pas ça av ce que tu me dit sa me fais erreur d'éxecution '424' objet requis
et comme je t'ais dit ça me fais erreur d'éxecution '1004' erreur définie par l'application ou pas l'objet
 

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 & "])"

 

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
191
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…