Récupérer données de nouvelle feuille

Résolu
doms1 Messages postés 13 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 20 septembre 2005 - 15 mars 2005 à 22:21
doms1 Messages postés 13 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 20 septembre 2005 - 16 mars 2005 à 03:12
Salut à tous,
J'ai besoin d'un sérieux coup de main car je n'arrive pas à trouver la soluce.
Lorsque j'ajoute une nouvelle feuille dans mon classeur, j'aimerais récupérer la valeur d'une cellule et l'ajouter dans une feuille existante.
Vous me direz, rien de plus facile!
Là ou ça se complique, pour ma part, c'est que cette nouvelle feuille est une copie d'une feuille existante, je m'explique:
J'ai une feuille "frais janvier" d'ou je récupère la valeur de la cellule (F35) dans la feuille "dépenses2005" à la cellule (G6).
Si je copie la feuille "frais janvier", j'obtient une feuille nommé "frais janvier (2)".
Mon problème:
Comment faire pour que la cellule (G6) de la feuille récupére la valeur de la cellule (F35) de "frais janvier " et si une nouvelle feuille est ajoutée "frais janvier (2)" , récupérer la même cellule et l'aditionner à la valeur de (G6) dans "dépenses2005".
J'ai déjà pioché dans l'aide et le forum, mais en vain.
Si quelqu'un a un début ou la soluce ?
Merci d'avance.

Doms

3 réponses

valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
16 mars 2005 à 00:31
Salut,
J'ai un petit doute quand au code de corsica en effet il va additionner toutes les valeurs se trouvant en G6 de toutes les feuilles qui ne se noment pas dépenses2005 dangereux je pense
si tu copie ta feuille par code tu peux rajouter ce code

Dim xlSheet As Object
Dim xlSheetExist As Boolean
' On cherche si la feuille existe
For Each xlSheet In SheetsIf xlSheet.Name "frais janvier (2)" Then xlSheetExist True
Next


If xlSheetExist Then
Sheets("dépenses2005").Range("G6").FormulaR1C1 = "='frais janvier'!R[29]C[-1]+'frais janvier (2)'!R[29]C[-1]"
Else
Sheets("dépenses2005").Range("G6").FormulaR1C1 = "='frais janvier'!R[29]C[-1]"
End If

Si tu fait une copie manuelle c'est une autre histoire !!!!!
pas d'évènement qui intercepte la copie donc tu dois coller le code dans
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
par exemple mais à chaque fois que tu change de feuille tu déclanche le code ....

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
3
cs_corsica Messages postés 147 Date d'inscription lundi 13 mai 2002 Statut Membre Dernière intervention 15 février 2010
15 mars 2005 à 22:32
Sub Cumul()
Somme = 0
For Each Sht In ActiveWorkbook.Sheets
if Sht.Name <> "dépenses2005" then
Somme = Somme + Sht.Cells(35, 6) ' Lit F35
end if
Next
Sheets("dépenses2005").Cells(6, 7) = Somme ' Ecrit dans G6 de dépenses2005
End Sub

--------------------------------------------------------------------------------------------
NotSoBad en : VB / ASP / SQL / VBS / VBA / JSP / javaScript / Java
Débutant : XML / Delphi
0
doms1 Messages postés 13 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 20 septembre 2005
16 mars 2005 à 03:12
Merci Corsica mais effectivement il y a un hic ton code.

Et merci à Valtrase pour ton aide, ça marche.
Je vais profiter encore de ton savoir pour aller plus loin.
Est-il possible d'effectuer cette action non pas depuis la feuille "Frais Janvier (2)",
mais depuis la feuille "dépenses 2005", dans ce sens où:
La feuille "dépenses 2005" comporte en (A1) Janvier, en (A2) Février, en (A3) Mars, etc...
Quand j'active la feuille "dépenses 2005", rechercher toutes les feuilles qui portent le nom Frais + comparer ledeuxième nom avec les cellule (A1 a A12) qui est Janvier, Février, Mars, Avril, etc..,et additionner les valeurs des cellules (L35) de ces feuilles en (B1) de la feuille "dépenses 2005" si c'est Janvrier, (B2) si c'est Février, (B3) Mars, etc...
Ce qui donne: "Frais Janvier (L35)" + si "Frais Janvier (2) éxiste (L35)" + si "Frais Janvier (3) éxiste (L35)" = valeur en (B1) dans la feuille "dépenses 2005".
Et "Frais Février (L35)" + si "Frais Février (2) éxiste (L35)" + si "Frais Février (3) éxiste (L35)" = valeur en (B2) dans la feuille "dépenses 2005". Etc.. jusqu'en Décembre.

Je t'avoue que cela me parait complexe et j'espère que mes explications sont assez claires.
Mais si tu as une idée ou toute autre proposition, je suis preneur.
Merci de m'accorder un peu de temps.

Cordialement, Doms.
0
Rejoignez-nous