en macro, générer somme colonne dans première cellule libre

pierolefou

XLDnaute Nouveau
Bonjour le forum, ici piérolefou qui devient vraiment DINGUE !!

Je parcours ce site génialissime depuis des heures sans trouver réponse à ce problème :

Dans le fichier original, j'ai une feuille Devis provisoire qui fait 600 lignes.
Les titres de catégories de produit et les produits sont intégrés dans des zones dédiées de cette feuille par userform (combobox imbriqués)
Résultat : des tas de lignes inutiles.

J'ai essayé, par macro, de masquer les lignes avant impression, mais cela ne donne rien de bon si je dépasse un certain nombre de ligne.. je ne m'étendrai pas là dessus.

DONC : j'ai choisi de copier les lignes utiles uniquement dans une autre feuille appelée DEVIS FINAL (image jointe).
Selon la longueur du devis, j'obtiens plus ou moins de lignes..

Vous suivez encore ? lol

JE VOUDRAIS (désespérément) et par macro, insérer une formule qui fasse la somme des cellules allant de "G7" à la dernière ligne ...

Comment mémoriser l'adresse de cette cellule et surtout comment construire la formule et la placer 2 lignes plus bas ??

J'embrasse les pieds de mon sauveur...

Cordialement.

Encore bravo à tous les participants.

Pierre
 

Pièces jointes

  • imagefchier-(2).jpg
    imagefchier-(2).jpg
    64.4 KB · Affichages: 167

juju_69

XLDnaute Occasionnel
Re : en macro, générer somme colonne dans première cellule libre

Hello,

çà fait longtemps que j'ai pas apporté ma petite contribution sur cet excellent site (mes anciennes contributions sont tellement anciennes qu'elles ne sont plus comptabilisées ^^) mais j'avoue que ton message m'a bien fait marrer, alors je prend un peu de temps pour toi cher ami :)

Donc pour connaitre la denière ligne :

Range("G65536").End(xlUp).row

Voici le code à appliquer:

Sub som()
Dim p, r As String
r = Range("G65536").End(xlUp).Row
Cells(r + 2, 7).Select
p = r - 5
ActiveCell.FormulaR1C1 = "=SUM(R[-" & p & "]C:R[-2]C)"
End Sub

@ +

Juju
 

Staple1600

XLDnaute Barbatruc
Re : en macro, générer somme colonne dans première cellule libre

Bonsoir

EDITION: pour mettre en forme
Code:
Sub som_bis_II()
[COLOR=SeaGreen]'Déclarations[/COLOR]
Dim r As Long
[COLOR=SeaGreen]'numéro de la dernière ligne non vide (colonne G)[/COLOR]
r = Range("G65536").End(xlUp).Row - 5
[COLOR=SeaGreen]'décalage de 2 cellules vers le bas 
'à partir de la dernière cellule non vide de la colonne G[/COLOR]
With Range("G65536").End(xlUp).Offset(2, 0)
    .FormulaR1C1 = _
    "=SUM(R[-" & CStr(r) & "]C:R[-2]C)"
[COLOR=SeaGreen] 'mets en gras[/COLOR]
    .Font.Bold = True
[COLOR=SeaGreen] 'taille 14[/COLOR]
    .Font.Size = 14
[COLOR=SeaGreen]'couleur de fond[/COLOR]
    .Interior.ColorIndex = 33
[COLOR=SeaGreen]'insertion bordures [/COLOR]
    .BorderAround xlDouble, xlMedium, 19
End With
End Sub
En reprenant la proposition de juju_69

Pour éviter le Select

Code:
Sub som_bis()
Dim r As String
r = Range("G65536").End(xlUp).Row
Range("G65536").End(xlUp).Offset(2, 0).FormulaR1C1 = _
"=SUM(R[-" & r - 5 & "]C:R[-2]C)"
End Sub
 
Dernière édition:

pierolefou

XLDnaute Nouveau
Re : en macro, générer somme colonne dans première cellule libre

Merci mille fois les gars !
Je vérifie que cela fonctionne après ma douche (je suis en vacances depuis lundi alors je prends doucement le rythme adapté) et je vous tiens au courant..

... Euh... lavez-vous les panards en attendant, svp :D

Pierre


... GENIAL !
J'ai encore du taf pour adapter à mon fichier, mais c'est nickel.
Avant cette solution j'avais adopté une parade en copiant mes formules ligne 400 et en supprimant les lignes inutiles : la macro mettait presque une minute à boucler !

MERCI donc et à charge de revanche. (quelle expression bizarre !)

Pierre
 
Dernière édition:

Discussions similaires