Macro XL4

Amadéus

XLDnaute Junior
Bonjour

En parcourant le Forum, je constate qu'il existe des membres pour qui les Macros Excel 4.0 n'ont plus de secret.(entre autres Céléda)

Je souhaite intégrer dans une macro Excel 4.0 les instructions pour: (Fichier joint)
A partir d'une ligne sélectionnée (inconnue au départ), insérer la Formule suivante:(en C25 pour l'exemple) à l'aide de l'instruction suivante
=SOMMEPROD((ESTTEXTE($A$3:$A24)*($A$3:$A24<>"Ecart N/N-1")*(C3:C24)))
Le champ C3:C24 est entré par l'utilisateur à l'aide de l'instruction:
=(TEXTEREF(ENTRER("Entrez la plage de cellules à sommer sous la forme $C$3:$C$20, le champ s'arrête à la ligne "&DEREF(A13)&"!";8;"Champ à Sommer")))
cette formule renvoie Feul1!L3C3:L24C3.

A partir de là, je suis incapable d'activer ma fonction SOMMEPROD, c'est à dire de traduire le champ L3C3:L24C3 renvoyé,dans la Formule. Ce champ étant variable, je suis obligé de le renseigner par la Macro.

Je souhaite donc obtenir par la macro la Fonction SOMMEPROD du départ en C25.

Un grand respect pour celle ou celui qui me donnera la bonne solution.

Bien cordialement,

Amadéus.
 

Pièces jointes

  • SousTotal.xls
    22 KB · Affichages: 79
  • SousTotal.xls
    22 KB · Affichages: 84
  • SousTotal.xls
    22 KB · Affichages: 88

JeanMarie

XLDnaute Barbatruc
Re : Macro XL4

Bonsoir Amadéus

Regarde si cette macro, peux te résoudre ton problème

Code:
Insérer_Sous_Total
=SEL.CLASSEUR("Feuil1")
=LIRE.CELLULE(1;CELLULE.ACTIVE())
=LIGNE(CELLULE.ACTIVE())
=TEXTEREF(ENTRER("Entrez la plage de cellules à sommer sous la forme $C$3:$C$20, le champ s'arrête à la ligne "&DEREF(A4)-1&"!";8;"Champ à Sommer";"$C$3:$C$24"))
=TEXTEREF(DECALER(REFTEXTE(A5);0;-2))
="=SOMMEPROD(ESTTEXTE("&A6&")*("&A6&"<>"&CAR(34)&"Ecart N/N-1"&CAR(34)&")*("&A5&"))"
=FORMULE(A7;REFTEXTE(A3;VRAI))
=RETOUR()
Bonne soirée

@+Jean-Marie
 

Amadéus

XLDnaute Junior
Re : Macro XL4

Bonjour Jean Marie

Merci pour ta réponse qui fonctionne à merveille. J'ai cherché pendant 3 jours sans y arriver et je commençais à désespérer. Cependnt, je dois incrémenter cette formule et j'aurai souhaité comme indiqué dans mon post que :
=SOMMEPROD((ESTTEXTE($A$3:$A24)*($A$3:$A24<>"Ecart N/N-1")*(C3:C24)))
le champ C3:C24 ne soit pas en références absolues $C$3:$C$34. As-tu une solution ?

Congratulations sans réserve.

Trés bonne journée.

Amadéus
 
Dernière édition:

JeanMarie

XLDnaute Barbatruc
Re : Macro XL4

Bonsoir Amadéus

Voici la macro
Code:
Insérer_Sous_Total
=SEL.CLASSEUR("Feuil1")
=LIRE.CELLULE(1;CELLULE.ACTIVE())
=LIGNE(CELLULE.ACTIVE())
=COLONNE(CELLULE.ACTIVE())
=TEXTEREF(ENTRER("Entrez la plage de cellules à sommer sous la forme $C$3:$C$20, le champ s'arrête à la ligne "&DEREF(A4)-1&"!";8;"Champ à Sommer";"$C$3:$C$24"))

Détermine le nom de la feuille
=STXT(A3;1;CHERCHE("!";A3))

N° de la ligne de départ en fonction de la référence de la cellule active
=LIGNE(REFTEXTE(A6))-A4
N° de ma dernière ligne de la plage en fonction de la référence de la cellule active
=A4-LIGNES(REFTEXTE(A6))-LIGNE(REFTEXTE(A6))-1

On recompose les plages de cellules
=A9&"L("&A12&")C:L("&A14&")C"
=A9&"L("&A12&")C1:L("&A14&")C1"

=TEXTEREF(DECALER(REFTEXTE(A7);0;-2))
="=SOMMEPROD(ESTTEXTE("&A18&")*("&A18&"<>"&CAR(34)&"Ecart N/N-1"&CAR(34)&")*("&A17&"))"
=FORMULE(A21;REFTEXTE(A3;VRAI))
=RETOUR()
Bonne soirée

@+Jean-Marie
 

Discussions similaires

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2