[excel vb] somme somme de plusieurs feuilles

Fermé
helene - 27 janv. 2006 à 00:23
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 - 27 janv. 2006 à 18:41
Bonjour à tous ceux qui liront ce message
Après m'être cassé le dos et usé les yeux à lire des centaines de pages je viens soumettre le problème qui m'occupe :
j'ai un fichier excel avec une page "noms" une page "recap" une page "modele".
J'ai fait une une macro (tant bien que mal) afin que lorsque on ait rempli la feuille "noms", des copies de "modèle" soient crées automatiquement avec comme nom d'onglet ,chaque nom de la feuille "noms".
A présent, je voudrais dans ma feuille "récap" inscrire les sommes récapitulatives de toutes ces feuilles créees.
ex : dans ma feuille "récap" j'ai une colonne nbre d'heures, je dispose à présent des onglets créés toto,...;sam et coco avec cette même colonne.
j'ai tenté d'enregistrer une macro espérant bidouiller par la suite, cependant, je n'y arrive pas...

voici la macro en question :
Range("c4").Select
ActiveCell.FormulaR1C1 = "=SUM(toto:coco!R[1]C[-1])"
Range("C4").Select
Selection.AutoFill Destination:=Range("C4:C49"), Type:=xlFillDefault
celle ci marche bien sur mais moi je voudrais non pas faire référence aux onglets crées puisque à ce stade je ne les connais pas et que je ne veux pas changer le code à chaque fois, mais donc faire référence aux feuilles créées c'est à dire de la feuille4 nommée "toto" jusqu'à la feuille x nommée "coco"
merci d'avance à ceux qui voudront bien m'aider et sinon je n'ai plus qu'à envoyer mon fichier à la poubelle, je ne vois pas d'autre solution à bientôt peut-être pour la poursuite du fil
A voir également:

1 réponse

JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
27 janv. 2006 à 01:53
bonsoir,

tu peux mettre
nbnoms = 4     'nombre de noms
onglet_nom1 = 4        'indice de l'onglet du 1er nom
Range("b1").FormulaR1C1 = "=SUM(" & Sheets(onglet_nom1).Name & ":" & Sheets(nbnoms + onglet_nom1 - 1).Name & "!R[1]C[-1])"

j'ai mis des variables pour que tu puisses l'adapter à ta situation.

il faut cependant que tu saches calculer le nombre des noms de l'onglet noms

cordialement
1
Youhou merci merci ça semble marcher nickel c'est trop cool!!
c'est magique.. voici ce que j'ai écris :

'nombre de noms
Dim nbnoms As Integer
'déclare la variable nbnoms f33 étant le nbre de noms (nbval sous xcel)
nbnoms = Worksheets("noms").Range("f33").Value
'indice de l'onglet du 1er nom
onglet_nom1 = 4
Worksheets("recap_").Select
Range("c4").FormulaR1C1 = "=SUM(" & Sheets(onglet_nom1).Name & ":" & Sheets(nbnoms + onglet_nom1 - 1).Name & "!R[1]C[-1])"
Range("C4").Select
Selection.AutoFill Destination:=Range("C4:C49"), Type:=xlFillDefault
puisque je suis là je vais encore abuser de votre temps si jamais vous en avez je pense que ces petits soucis sont faciles à résoudre mais je me creuse la cervelle san solution :

j'ai une macro qui enregsitre directement le nom du dossier suivi de la date du jour : genre : test26jan06.xls toutefois, au second enregistrement il met la date suivante à la suite du nom existant au lieu de la remplacer ce qui donne test26janv0627janv06.xls je suppose qu'il y a moyen de remédier à ça en lui disant de supprimer au préalable les 8 derniers caractères...
par aileurs, je voudrais mettre une image sur ma feuille noms (un logo) qui lorsque l'on double-clique dessus ouvre la fenêtre insérer une image sous (comme dans publisher) puis une référence à cette image serait copiée sur les autres pages afin de l'avoir en haut de chaque page... j'abuse peut être, on me résous un problème et j'en pose un autre mais promis, mon fichier est ensuite totalement fini a priori. merci encore pour cette histoire de totaux je suis trop contente.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
27 janv. 2006 à 17:59
bonjour,

pour le nom de fichier, je te conseille de mettre les dates "à l'envers" pour bénéficier de la concordance des tri alpha et chronologiques.
Ensuite il suffit que tu génères le nom de ton fichier sous la forme
vnom="test" & Year(Now) & Application.WorksheetFunction.Text(Month(Now), "00") & Application.WorksheetFunction.Text(Day(Now), "00")
et tu utilise vnom dans ton saveas.

A+
0
Salut,
je souhaiterais que ma macro s'execute automatiquement après mise à jour de la cellule a1 de sheet1.
exemple
sheets(feuil2).range(a1)=sheets(feuil2).range(a1)+sheets(feuil1).range(a1)
et comment faire si c'est pour la colonne a1:a20.
Merci
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
27 janv. 2006 à 18:15
pour le logo :
Sub Image1_QuandClic()
onglet_nom1 = 2    'à modifier
nbnoms = 10        'à modifier
ActiveSheet.Shapes("Picture 1").Copy
For i = onglet_nom1 To nbnoms + onglet_nom1 - 1
    Sheets(i).Activate
    Range("A1").Select
    ActiveSheet.PasteSpecial Format:="Image (PNG)", _
           Link:=False,  DisplayAsIcon:=False
Next
End Sub
sachant que image1 est le logo mis en A1 dans la feuille noms et qu'il suffit d'affecter cette macro à ce logo par un clic droit.

cordialement
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
27 janv. 2006 à 18:23
plus simple pour le nom du fichier :
"test" & Application.WorksheetFunction.Text(Now, "yyyymmdd")
0