> Tous les forums > Forum Bureautique
 Sous total sous excell 2007Sujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
dilvish
  Posté le 28/08/2009 @ 15:09 
Aller en bas de la page 
Petit astucien

Bonjour,

J'aimerai créer une macro sous excell 2007 me permettant de faire des sous totaux dans un devis (sous totaux dont excell ne tient pas compte dans le total général).

Le sous total est à faire (par exemple) dans la colonne D. Dans la colonne E à la ligne au dessus se trouve le nombre de cellules qui seront "sous totalisées"

J'arrive sans mal à le faire avec l'assistant fonction mais j'ai du mal a faire la même chose en VBA.

En gros si je fait :

Dim NbCell As Double
ActiveCell.Select
Selection.ClearContents
NbCell = ActiveCell.Offset(-1, 1).Range("A1").Value
NbCell = NbCell * -1
ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[-3]C:R[-1]C)"

comment je peux mettre la valeur NbCell à la place des coordonnées en dur ?

Merci

Publicité
ferrand
 Posté le 28/08/2009 à 19:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonsoir,

Si j'ai bien compris je te proposerais ceci :

Dim NbCell%
NbCell = ActiveCell.Offset(-1, 1).Value
ActiveCell.FormulaR1C1Local = "=SOUS.TOTAL(9,L(" & -NbCell & ")C:L(-1)C)"

J'ai pris la liberté d'élaguer un peu le code.

D'autre part j'aurais bien conservé ta formule en anglais mais ça ne fonctionne pas chez moi (jamais pu y arriver). Peut-être que quelque chose m'échappe dans la syntaxe des formules en anglais ?

En tout cas bonne soirée.

dilvish
 Posté le 01/09/2009 à 16:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci de votre aide,

Voici ce que cela donne :

Dim NbCell%
NbCell = ActiveCell.Offset(-1, 1).Value
ActiveCell.FormulaR1C1Local = "=SOUS.TOTAL(9,L(" & -NbCell & ")C:L(-1)C)"

NbCell va bien chercher la valeur qui va bien mais Active cell ne récupère que ""

?

ferrand
 Posté le 01/09/2009 à 16:50 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

La même formulation fonctionne parfaitement chez moi ! ?? Quels sont tes paramètres régionaux ?

D'autre part, pourquoi ne calcules-tu pas tout simplement le sous-total dans ta procédure pour l'insérer à l'emplacement voulu ? Tiens-tu absolument à affecter une formule ?

dilvish
 Posté le 02/09/2009 à 09:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci pour votre aide.

La réponse tient en une phrase :

- JE SUIS UNE BILLE EN VBA

Un jour, quand j'aurai le temps, je m'offrirai une VRAI formation VBA pour jouer avec Excell et Access mais en attendant...

Merci pour le support,

ferrand
 Posté le 02/09/2009 à 10:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Pas de découragement ! Il suffit de faire le premier pas, les autres suivent.

Bonne journée.

dilvish
 Posté le 02/09/2009 à 10:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

C'est déséspérant !!

Voilà mon dernier essai :

On Error Resume Next


Dim NbCell%, Bas%, Haut%
Dim Sbas As String
Dim Shaut As String
NbCell = ActiveCell.Offset(-1, 1).Value
cellule = Right$(ActiveCell.Address, Len(ActiveCell.Address) - 3)
Bas = cellule - 1
Haut = cellule - NbCell
Sbas = LTrim("G" + Right$(Str$(Bas), 2))
Shaut = LTrim("G" + Right$(Str$(Haut), 2))
Selection.ClearContents
ActiveCell.FormulaR1C1Local = "= SOUS.TOTAL(9;" & Sbas & ":" & Shaut & ")"

Stop

La valeur retournée est bonne. Ca donne "= SOUS.TOTAL(9;G36:G32)"

Par contre dans la cellule c'est = SOUS.TOTAL(9;'G36':'G32')

J'vais m'flinguer!!


Cette fonction de sous total est importante pour moi car je fais des devis à rallonge (les sous totaux ne s'additionnent pas dans le total général)

ferrand
 Posté le 02/09/2009 à 12:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Essaie donc :

On Error Resume Next

Dim NbCell%, Bas%, Haut%
Dim Sbas As String
Dim Shaut As String
NbCell = ActiveCell.Offset(-1, 1).Value
cellule = Right$(ActiveCell.Address, Len(ActiveCell.Address) - 3)
Bas = cellule - 1
Haut = cellule - NbCell
Sbas = "G" & Bas
Shaut = "G" & Haut


ActiveCell.FormulaLocal = "=SOUS.TOTAL(9;" & Shaut & ":" & Sbas & ")"

dilvish
 Posté le 02/09/2009 à 14:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Ca marche !!

Merci!!

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
139,78 €Kit de 32 Go (2 x 16 Go) de mémoire DDR4 Crucial Ballistix 3000 MHz à 139,78 € livré
Valable jusqu'au 03 Août

Amazon Allemagne fait une promotion sur le kit de 32 Go (2x16 Go) de mémoire DDR4 Crucial Ballistix 3000 MHz CL15 qui passe à 135,12 € (avec la TVA ajustée). Comptez 4,66 € pour la livraison en France soit un total de 139,78 € livré alors qu'on le trouve ailleurs à plus de 160 €.

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douane. Si vous êtes perdu en allemand, vous pouvez traduire le site en anglais.


> Voir l'offre
114,94 €Carte mère MSI B550 Gaming Plus à 114,94 € livrée
Valable jusqu'au 03 Août

Amazon Allemagne fait une promotion sur la carte mère MSI B550 Gaming Plus à 107,62 €. Comptez 7,32 € pour la livraison en France soit un total de 114,94 € livrée. On la trouve ailleurs à partir de 130 €. Embarquant le chipset AMD B550, la carte mère MSI MPG B550 GAMING PLUS avec son socket AM4 est conçue pour accueillir les processeurs AMD Ryzen de 3ème génération. Elle permettra de composer une configuration Gaming disposant des dernières avancées technologiques : PCI-Express 4.0 pour les cartes graphiques et les SSD M.2, gestion de 128 Go de RAM DDR4. Tout est là pour une expérience gaming enivrante, à vous de jouer !


> Voir l'offre
28,90 €Microsoft Office 2019 Professional Plus à 28,90 €
Valable jusqu'au 03 Août

Le vendeur sérieux License Online propose sur Amazon la clé d'activation légale pour Microsoft Office Professionnel 2019 Plus en français à 28,90 €. Cette clé livrée par email vous permettra d'activer Microsoft Office Professionnel 2019 Plus légalement et vous permettra ainsi d'utiliser autant de temps que vous voulez (il s'agit de la version complète et pas d'un abonnement) Word,Excel, PowerPoint, OneNote, Outlook, Publisher et Access 2019 sur un PC. La clé sera à activer sur Office.com où vous pourrez ensuite télécharger toute la suite bureautique. Pour mémoire, Microsoft Office Professionnel 2019 nécessite Windows 10. Pour plus d'info sur la procédure, n'hésitez pas à jeter un oeil à notre dossier pratique Acheter une clé OEM d'Office 2019 et l'installer.


> Voir l'offre

Sujets relatifs
Execution Sous excell 2007 macro pas a pas
Calculer % de sous-total dans TCD 2007
Copie sous Excell 2007 d'une ligne plusieurs fois
connaitre et apprendre les macos sous excell 2007
Tableau croisé dynamique sous excell 2007
copie total de celulles sous excell 2003
impossible d' ouvrir fichier odt. sous word 2007
comment inverser un tableau sous exel 2007
Excel 2007 plante sous Win 8
Créer un message d'erreur sous excel 2007
Plus de sujets relatifs à Sous total sous excell 2007
 > Tous les forums > Forum Bureautique