cs_Raistlin69
Messages postés3Date d'inscriptionvendredi 22 mai 2009StatutMembreDernière intervention25 mai 2009
-
23 mai 2009 à 02:00
cs_Raistlin69
Messages postés3Date d'inscriptionvendredi 22 mai 2009StatutMembreDernière intervention25 mai 2009
-
25 mai 2009 à 02:51
Bonjour,
J’ai besoin d’aide car je suis un débutant et je ne sais vraiment pas comment procéder.
J'ai fait un classeur Excel (2003) qui contient 2 feuilles.
La première, appelée Grand Sommaire, est un sommaire des résultats de la deuxième.
La deuxième, appelée Titre (1), va contenir les données.
J’ai fait une macro qui copie la 2e feuille, efface les données non nécessaires (elle ne garde que le « template », excusez l’anglicisme) et ajoute une ligne dans la 1ère feuille (Grand Sommaire) qui copie les données de la ligne du dessus.
Mon problème est que comme Grand Sommaire fait référence à la 2e feuille (Titre (1)), lorsque je copie cette ligne avec la macro dans le but d'aller chercher les informations de Titre (2), je garde la même référence, autrement dit, je reporte toujours les résultats de Titre (1).
J’essaie donc de faire une macro en VB qui, après avoir copié la 2e feuille (et effacer les données), prendrait les données spécifiques de cette nouvelle feuille, Titre (2), et les reporteraient sur Grand Sommaire.
J’ai, par exemple en A10 de Grand Sommaire ='Titre (1)'!$F$56 et je voudrais avoir en A11 ='Titre (2)'!$F$56 et en A12 ='Titre (3)'!$F$56, et ainsi de suite tant et aussi longtemps que je copierai la feuille Titre.
En espérant que mes explications soient claires, est-ce possible ?
Merci à l'avance.
Voici ce que j’ai fait jusqu’à présent :
Sub AjouterAutreTitre()
Dim indexFeuille As Integer
Dim TitreAnalyse As Variant
Dim DernierTitre As Variant
'Sert à enregistrer le numéro de titre apparaissant sur l'avant-dernière feuille (cellule H2)
Dim aAjouter As Variant
Dim LigneDepart As Integer
Dim ZoneMontant As Range
Dim ZoneSommaire As Range
Set TitreAnalyse = Range("TitreAnalyse")
Set ZoneSommaire = Range("ZoneSommaire")
With Sheets(indexFeuille)
.Range("ZoneGauche").ClearContents
.Range("Effacer1").ClearContents
.Range("Effacer2").ClearContents
.Range("Effacer3").ClearContents
.Range("Effacer").ClearContents
.Range("TitreAnalyse") = DernierTitre + 1
.Range("A10").Select
End With
cs_Raistlin69
Messages postés3Date d'inscriptionvendredi 22 mai 2009StatutMembreDernière intervention25 mai 2009 24 mai 2009 à 21:17
Bonjour,
Premièrement, merci pour ta réponse.
Deuxièmement, je ne la comprends pas.
Je suis très débutant en VB alors je ne sais pas trop comment intégrer cette « Public Fonction » dans mon module (où précisément devrais-je la mettre?)
De plus, ce que je désire, c’est ajouter une ligne pour chaque nouvel onglet que je créé qui dira dans mon premier onglet (Grand Sommaire):
Nouvel onglet créé Titre (2) et dans GrandSommaire à A11'Titre (2)'!$F$56
Nouvel onglet créé Titre (3) et dans GrandSommaire à A12'Titre (3)'!$F$56
Nouvel onglet créé Titre (4) et dans GrandSommaire à A13'Titre (4)'!$F$56
Il faut donc que la routine aille chercher l’information d’une cellule sur le nouvel onglet ainsi créé.
Comme je ne comprends pas ta routine, je ne sais pas comment l’imbriquer dans la mienne.
cs_Raistlin69
Messages postés3Date d'inscriptionvendredi 22 mai 2009StatutMembreDernière intervention25 mai 2009 25 mai 2009 à 02:51
En gros, je copie la feuille Titre (1) et j'efface certaines données sur la nouvelle feuille Titre (2).
Mon fichier Excel contient 2 feuilles au départ: GrandSommaire et Titre (1). Dans GrandSommaire se reportent les données de Titre (1).
Ma macro copie Titre (1) et créé ainsi Titre (2).
Elle ajoute une ligne à GrandSommaire et je veux que cette ligne contienne les mêmes données que Titre (1) mais pour Titre (2) et ainsi de suite pour Titre (3), (4), etc.
Je ne suis pas capable d'aller chercher les données de la nouvelle feuille, Titre (2), et les reporter dans Grand Sommaire.
J'espère que cette explication est plus claire.
Merci pour ton aide.