OVH Cloud OVH Cloud

Copie de toutes mes colonnes

12 réponses
Avatar
Comres.metz
Bonjour à toutes et à tous,

J'utilise cette macro pour additioner des colonnes dont je ne connais pas le
point final.
Derlig = ActiveSheet.Range("b65536").End(xlUp).Row
ActiveSheet.Range("G65536").End(xlUp) (2).Formula = "=SUM(G4:G "&derlig&")"
ActiveSheet.Range("L65536").End(xlUp) (2).Formula = "=SUM(L4:L "&derlig&")"
ainsi de suite.
Cela fonctionne correctement.

Mais est-il possible d'adapter cette formule pour faire la somme de toutes
les colonnes de G à BB.
Car pour l'instant je suis en train de recopier ligne par ligne ma macro et
cela va me faire au moins une cinquantaine de ligne.

Merci d'avance.

10 réponses

1 2
Avatar
SL
Bonjour lolo du soir et Comres.metz du jour
que ce passe t-il si la dernière ligne de B:B c'est 100 et la dernière de
L:L c'est 50 ?
une erreur car
ActiveSheet.Range("L65536").End(xlUp) (2).Formula = "=SUM(L4:L
"&derlig&")"
donnera L51=SOMME(L4:L100)


sinon du coté de FormulaR1C1
... .FormulaR1C1 = "=SUM(R[-"&derlig&"]C:R[-1]C)"

tes colonnes se terminent elle toute sur la même ligne ?

Stéphane
"Comres.metz" a écrit dans le message de news:
433a97b8$0$1015$
Bonjour à toutes et à tous,

J'utilise cette macro pour additioner des colonnes dont je ne connais pas
le
point final.
Derlig = ActiveSheet.Range("b65536").End(xlUp).Row
ActiveSheet.Range("G65536").End(xlUp) (2).Formula = "=SUM(G4:G
"&derlig&")"
ActiveSheet.Range("L65536").End(xlUp) (2).Formula = "=SUM(L4:L
"&derlig&")"
ainsi de suite.
Cela fonctionne correctement.

Mais est-il possible d'adapter cette formule pour faire la somme de toutes
les colonnes de G à BB.
Car pour l'instant je suis en train de recopier ligne par ligne ma macro
et
cela va me faire au moins une cinquantaine de ligne.

Merci d'avance.




Avatar
anonymousA
bonjour,

For I = 7 To 54
With ActiveSheet
Derlig = .Cells(65536, I).End(xlUp).Row
With Cells(1, I)
colonne = IIf(IsNumeric(Right(Left(.Address(False, False), 2),
1)), Left(.Address(False, False), 1), Left(.Address(False, False), 2))
End With
.Cells(65536, I).End(xlUp)(2).Formula = "=SUM(" & colonne & "4:" &
colonne & Derlig & ")"
End With
Next

A+
Avatar
Comres.metz
Bonjour,

En fait ma macro fonctionne correctement, elle additionne bien la somme de
la colonne G ou L ou autre car toutes mes colonnes finissent à la même
ligne.
Mon probléme est que l'on vient de me demander d'additionner même les
colonnes cachées. Ce qui fait que je suis obligé de recopier ma formule pour
l'adapter à chaque colonne. Et je dois additionner des colonnes allant de G
à BD. C'est pour cela que je recherche une macro qui me disent à la derniere
ligne additionner toute la colonne puis passer à la colonne suivante jusqu'à
la derniere colonne.

Mais hélas pour moi, Excel est trop puissant pour moi.

"SL" a écrit dans le message de
news:
Bonjour lolo du soir et Comres.metz du jour
que ce passe t-il si la dernière ligne de B:B c'est 100 et la dernière de
L:L c'est 50 ?
une erreur car
ActiveSheet.Range("L65536").End(xlUp) (2).Formula = "=SUM(L4:L
"&derlig&")"
donnera L51=SOMME(L4:L100)


sinon du coté de FormulaR1C1
... .FormulaR1C1 = "=SUM(R[-"&derlig&"]C:R[-1]C)"

tes colonnes se terminent elle toute sur la même ligne ?

Stéphane
"Comres.metz" a écrit dans le message de
news:

433a97b8$0$1015$
Bonjour à toutes et à tous,

J'utilise cette macro pour additioner des colonnes dont je ne connais
pas


le
point final.
Derlig = ActiveSheet.Range("b65536").End(xlUp).Row
ActiveSheet.Range("G65536").End(xlUp) (2).Formula = "=SUM(G4:G
"&derlig&")"
ActiveSheet.Range("L65536").End(xlUp) (2).Formula = "=SUM(L4:L
"&derlig&")"
ainsi de suite.
Cela fonctionne correctement.

Mais est-il possible d'adapter cette formule pour faire la somme de
toutes


les colonnes de G à BB.
Car pour l'instant je suis en train de recopier ligne par ligne ma macro
et
cela va me faire au moins une cinquantaine de ligne.

Merci d'avance.








Avatar
Jacques93
Bonjour Comres.metz,

Si le souci esrt de faire varier Range de "G65536" à "BB65536", tu peux
utiliser :

Dim i As Integer, j As Integer
Dim c As String

For i = 71 To 118
j = (i - 65) 26
c = IIf(j > 0, Chr$(j + 64), "")
c = c & Chr$(i - j * 26)
ActiveSheet.Range(c & "65536").End(xlUp) (2).Formula ...
Next i

Bonjour à toutes et à tous,

J'utilise cette macro pour additioner des colonnes dont je ne connais pas le
point final.
Derlig = ActiveSheet.Range("b65536").End(xlUp).Row
ActiveSheet.Range("G65536").End(xlUp) (2).Formula = "=SUM(G4:G "&derlig&")"
ActiveSheet.Range("L65536").End(xlUp) (2).Formula = "=SUM(L4:L "&derlig&")"
ainsi de suite.
Cela fonctionne correctement.

Mais est-il possible d'adapter cette formule pour faire la somme de toutes
les colonnes de G à BB.
Car pour l'instant je suis en train de recopier ligne par ligne ma macro et
cela va me faire au moins une cinquantaine de ligne.

Merci d'avance.





--
Cordialement,

Jacques.

Avatar
anonymousA
et avec le. (point) devant Cells(1, I), c'est encore mieux


With .Cells(1, I)
colonne = IIf(IsNumeric(Right(Left(.Address(False, False), 2),
1)), Left(.Address(False, False), 1), Left(.Address(False, False), 2))
End With
Avatar
michdenis
Bonjour Comres.metz,

Tu peux utliser ce type de macro pour évaluer ton résultat et le copier dans la cellule de ton choix.

Adapte le nom de la feulle dans la procédure :

'-------------------------------
Sub Total()

Dim C As Range, A As Double
On Error Resume Next
With Worksheets("Feuil2")
For Each C In .Range("G:BB").Columns
derlig = C.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
If Err <> 0 Then
Err = 0
Else
A = A + Evaluate("=SUM(" & Range(Cells(4, C.Column), _
Cells(derlig, C.Column)).Address & ")")
End If
Next
'Résultat dans la cellule de ton choix
'.Range("A1") = A
MsgBox "somme totale : " & A

End With

End Sub
'-------------------------------


Salutations!



"Comres.metz" a écrit dans le message de news: 433a97b8$0$1015$
Bonjour à toutes et à tous,

J'utilise cette macro pour additioner des colonnes dont je ne connais pas le
point final.
Derlig = ActiveSheet.Range("b65536").End(xlUp).Row
ActiveSheet.Range("G65536").End(xlUp) (2).Formula = "=SUM(G4:G "&derlig&")"
ActiveSheet.Range("L65536").End(xlUp) (2).Formula = "=SUM(L4:L "&derlig&")"
ainsi de suite.
Cela fonctionne correctement.

Mais est-il possible d'adapter cette formule pour faire la somme de toutes
les colonnes de G à BB.
Car pour l'instant je suis en train de recopier ligne par ligne ma macro et
cela va me faire au moins une cinquantaine de ligne.

Merci d'avance.
Avatar
lolo
bonjour à tous,

Désolé de ne pouvoir vous répondre aujourd'hui le serveur vient de
tomber et ne sera sur route que dans la nuit. Pas eu le temps de faire
mes sauvegardes sur ma clé.
Je teste tout demain et vous tiens au courant.

Bonjour à toutes et à tous,

J'utilise cette macro pour additioner des colonnes dont je ne connais pas le
point final.
Derlig = ActiveSheet.Range("b65536").End(xlUp).Row
ActiveSheet.Range("G65536").End(xlUp) (2).Formula = "=SUM(G4:G "&derlig&")"
ActiveSheet.Range("L65536").End(xlUp) (2).Formula = "=SUM(L4:L "&derlig&")"
ainsi de suite.
Cela fonctionne correctement.

Mais est-il possible d'adapter cette formule pour faire la somme de toutes
les colonnes de G à BB.
Car pour l'instant je suis en train de recopier ligne par ligne ma macro et
cela va me faire au moins une cinquantaine de ligne.

Merci d'avance.




Avatar
lolo
bonjour Jacques93,

J'ai eu le temps de tester votre macro, mais elle m'a recopié
littéralement la formule que j'ai en colonne G, sur toutes mes colonnes.
Ce qui fait que toutes mes colonnes ont le même résultat qui est : la
somme de G4 à "G derniere ligne" sur toutes mes colonnes.
Savez vous pourquoi ?

Bonjour Comres.metz,

Si le souci esrt de faire varier Range de "G65536" à "BB65536", tu peux
utiliser :

Dim i As Integer, j As Integer
Dim c As String

For i = 71 To 118
j = (i - 65) 26
c = IIf(j > 0, Chr$(j + 64), "")
c = c & Chr$(i - j * 26)
ActiveSheet.Range(c & "65536").End(xlUp) (2).Formula ...
Next i


Bonjour à toutes et à tous,

J'utilise cette macro pour additioner des colonnes dont je ne connais
pas le
point final.
Derlig = ActiveSheet.Range("b65536").End(xlUp).Row
ActiveSheet.Range("G65536").End(xlUp) (2).Formula = "=SUM(G4:G
"&derlig&")"
ActiveSheet.Range("L65536").End(xlUp) (2).Formula = "=SUM(L4:L
"&derlig&")"
ainsi de suite.
Cela fonctionne correctement.

Mais est-il possible d'adapter cette formule pour faire la somme de
toutes
les colonnes de G à BB.
Car pour l'instant je suis en train de recopier ligne par ligne ma
macro et
cela va me faire au moins une cinquantaine de ligne.

Merci d'avance.








Avatar
Jacques93
Bonjour lolo,

Je n'ai pas indiqué le reste de la ligne :-(

ActiveSheet.Range(c & "65536").End(xlUp) (2).Formula ...

Mais il faut adapter également la formule à la colonne concernée :

ActiveSheet.Range(c & "65536").End(xlUp)(2).Formula = _
"=SUM(" & c & "4:" & c & derlig & ")"

Sinon, effectivement, c'est toujours la même formule qui sera recopié.

bonjour Jacques93,

J'ai eu le temps de tester votre macro, mais elle m'a recopié
littéralement la formule que j'ai en colonne G, sur toutes mes colonnes.
Ce qui fait que toutes mes colonnes ont le même résultat qui est : la
somme de G4 à "G derniere ligne" sur toutes mes colonnes.
Savez vous pourquoi ?


Bonjour Comres.metz,

Si le souci esrt de faire varier Range de "G65536" à "BB65536", tu
peux utiliser :

Dim i As Integer, j As Integer
Dim c As String

For i = 71 To 118
j = (i - 65) 26
c = IIf(j > 0, Chr$(j + 64), "")
c = c & Chr$(i - j * 26)
ActiveSheet.Range(c & "65536").End(xlUp) (2).Formula ...
Next i


Bonjour à toutes et à tous,

J'utilise cette macro pour additioner des colonnes dont je ne connais
pas le
point final.
Derlig = ActiveSheet.Range("b65536").End(xlUp).Row
ActiveSheet.Range("G65536").End(xlUp) (2).Formula = "=SUM(G4:G
"&derlig&")"
ActiveSheet.Range("L65536").End(xlUp) (2).Formula = "=SUM(L4:L
"&derlig&")"
ainsi de suite.
Cela fonctionne correctement.

Mais est-il possible d'adapter cette formule pour faire la somme de
toutes
les colonnes de G à BB.
Car pour l'instant je suis en train de recopier ligne par ligne ma
macro et
cela va me faire au moins une cinquantaine de ligne.

Merci d'avance.









--
Cordialement,

Jacques.



Avatar
lolo
A la lecture cela me parait maintenant logique :-)
Mais juste à la lecture.

Demain matin je reteste le tout, si le serveur refonctionne et j'essaie
de comprendre votre formule, surtout au niveau du double IF.

Merci pour tout en attendant.

Bonjour lolo,

Je n'ai pas indiqué le reste de la ligne :-(

ActiveSheet.Range(c & "65536").End(xlUp) (2).Formula ...

Mais il faut adapter également la formule à la colonne concernée :

ActiveSheet.Range(c & "65536").End(xlUp)(2).Formula = _
"=SUM(" & c & "4:" & c & derlig & ")"

Sinon, effectivement, c'est toujours la même formule qui sera recopié.


bonjour Jacques93,

J'ai eu le temps de tester votre macro, mais elle m'a recopié
littéralement la formule que j'ai en colonne G, sur toutes mes colonnes.
Ce qui fait que toutes mes colonnes ont le même résultat qui est : la
somme de G4 à "G derniere ligne" sur toutes mes colonnes.
Savez vous pourquoi ?


Bonjour Comres.metz,

Si le souci esrt de faire varier Range de "G65536" à "BB65536", tu
peux utiliser :

Dim i As Integer, j As Integer
Dim c As String

For i = 71 To 118
j = (i - 65) 26
c = IIf(j > 0, Chr$(j + 64), "")
c = c & Chr$(i - j * 26)
ActiveSheet.Range(c & "65536").End(xlUp) (2).Formula ...
Next i


Bonjour à toutes et à tous,

J'utilise cette macro pour additioner des colonnes dont je ne
connais pas le
point final.
Derlig = ActiveSheet.Range("b65536").End(xlUp).Row
ActiveSheet.Range("G65536").End(xlUp) (2).Formula = "=SUM(G4:G
"&derlig&")"
ActiveSheet.Range("L65536").End(xlUp) (2).Formula = "=SUM(L4:L
"&derlig&")"
ainsi de suite.
Cela fonctionne correctement.

Mais est-il possible d'adapter cette formule pour faire la somme de
toutes
les colonnes de G à BB.
Car pour l'instant je suis en train de recopier ligne par ligne ma
macro et
cela va me faire au moins une cinquantaine de ligne.

Merci d'avance.














1 2