[Excel] Somme spéciale

Résolu/Fermé
adrienDN11 Messages postés 467 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 5 janvier 2015 - 19 févr. 2011 à 22:04
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 20 févr. 2011 à 19:49
Bonjour,

Je travaille actuellement sur un classeur excel.

Une de mes macros consiste à ajouter des colonnes avant une somme

Cette somme, je désire la reporter dans une autre feuille.

Mais comme je ne peux pas faire l'égalité de l'autre feuille puisque ce n'est pas tout le temps "A" comme nom de cellule.


Je connais en VBA la formule "Selection.End(xlToLeft).Select" ce qui me permettrait de faire la somme.

Comment pourrais-je utiliser ça dans une formule ?


Merci




A voir également:

7 réponses

eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
Modifié par eriiic le 19/02/2011 à 22:25
Bonsoir,

en supposant que ta somme soit la dernière valeur de Feuil1 ligne 1 :
=DECALER(Feuil1!A1;0;NBVAL(Feuil1!1:1)-1)

eric
0
adrienDN11 Messages postés 467 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 5 janvier 2015 137
19 févr. 2011 à 23:11
Bonsoir,

La formule me renvoie à la première valeur. Est-ce normal ?

Adrien

0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
Modifié par eriiic le 20/02/2011 à 00:09
non, mais elle suppose tes données en ligne, sans cellules vides.
voir exemple
Sinon déposer un fichier exemple sur cijoint.fr et coller ici le lien fourni pour voir ce qui est faisable.
Et j'ai peut-etre mal compris ta question...
eric
0
adrienDN11 Messages postés 467 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 5 janvier 2015 137
20 févr. 2011 à 11:51
Bonjour,

Ce serait possible qu'une formule prenne la première valeur en partant de la droite ? Comme ça, ce serait bien la dernière valeur.


J'ai déjà fait ça en VBA avec la formule 'Selection.End(xltoleft).Select'

Ce serait possible la même chose ? Car c'est vrai que certaines colonnes pourraient être vides.

Merci,

Adrien

0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
20 févr. 2011 à 13:30
Bonjour,
Tant qu'à faire une fonction pour trouver la dernière colonne, autant direct faire la fonction qui fait les deux.. Chercher la dernière colonne et la somme.
Dans un module général (Module1) par exemple) coller le code ..
Function Somme_Per(R As Range) As Integer
Dim DerColonne As Integer
    With Sheets(R.Parent.Name)
    DerColonne = .Cells(R.Row, 256).End(xlToLeft).Column
    Somme_Per = Application.WorksheetFunction.Sum(.Range(.Cells(R.Row, 1), .Cells(R.Row, DerColonne)))
   End With
End Function

Dans la feuille (feuil2 par exemple) où il faut la somme mettre...
    =Somme_Per(Feuil1!A12)

A12 représente une cellule qui est sur la ligne à calculer.
A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
adrienDN11 Messages postés 467 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 5 janvier 2015 137
20 févr. 2011 à 15:22
Re,

Oui, mais si je veux utiliser un code vba, il interfère avec celui qui se lance à l'ouverture de la feuille d'origine, donc je ne peux pas copier la valeur...

Non, il me faudrait une formule qui prend la première valeur en partant de la fin du classeur.

Adrien

0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
20 févr. 2011 à 16:52
Re,

Tu peux très bien mixer plusieurs macros, le tout est de faire les bons tests pour qu'elles soient actives quand il faut.
Sinon :
=DECALER(Feuil1!A1;;MAX(SI(Feuil1!1:1="";0;COLONNE(Feuil1!1:1)))-1)
formule matricielle à valider avec shift+ctrl+entrée

eric
0
adrienDN11 Messages postés 467 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 5 janvier 2015 137
20 févr. 2011 à 17:46
Re,


J'ai essayé d'adapter la formule, mais je me demande si je ne l'ai pas mal fait.

=DECALER('Ortho.Conju - 1'!A8;;MAX(SI('Ortho.Conju - 1'!1:1="";0;COLONNE('Ortho.Conju - 1'!8:8)))-1)

J'ai peut-être mal adapté pour mes cellules et mes feuilles, il me retourne "0"

Adrien

0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
20 févr. 2011 à 18:46
=DECALER('Ortho.Conju - 1'!A8;;MAX(SI('Ortho.Conju - 1'!8:8="";0;COLONNE('Ortho.Conju - 1'!8:8)))-1)
et si tu l'as bien validée avec shift+ctrl+entrée elle s'entoure de { }
eric
0
adrienDN11 Messages postés 467 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 5 janvier 2015 137
20 févr. 2011 à 19:04
ça m'indique que la formule que j'ai tapée a une erreur ... Pourtant, j'ai exactement la même que toi.

Que ce passe-t-il ?

Adrien
0
adrienDN11 Messages postés 467 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 5 janvier 2015 137
20 févr. 2011 à 19:47
C'est bon, j'ai trouvé, merci à tous,

Adrien
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
20 févr. 2011 à 19:49
ok :-)
n'oublie pas de mettre en 'résolu' en haut alors...
0