Macro sur plusieurs feuilles

Signaler
Messages postés
3
Date d'inscription
vendredi 12 février 2010
Statut
Membre
Dernière intervention
15 février 2010
-
Messages postés
3
Date d'inscription
vendredi 12 février 2010
Statut
Membre
Dernière intervention
15 février 2010
-
bonjour je voudrais copier des notes d'un classeur à l'autre.
Simple mais ce qu'il y a c'est que je crée plusieurs feuilles dans mon classeur 1 et je voudrais récupérer les notes en D50 de chacune de mes feuilles et les faire se cumuler sur un classeur 2, en C3
comment faire je n'arrive pas avec VBA!
merci de me filer un petit coup de main si vous savez faire

4 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,

Question :
sais-tu le faire au sein d'un même classeur, d'une feuille à l'autre ?
Si oui : la méthode est excatement la même, en faisant précéder le pointeur de feuille par celui de classeur, genre Workbooks(index_classeur).sheets(index_feuille).Range( .... etc...
Si non : ta question aurait dû être autre ("comment lire une cellule dans plusieurs feuilles" et en présenter le total dans une cellule d'une autre feuille du même classeur)
Piste : la collection Sheets est la collection des feuilles d'un classeur. Chaque feuille y est un objet Sheet vers lequel on peut pointer soit via son index (ex sheets(2)) sooit vers son nom (exemple Sheets(Feuille2")
La collection WorkBooks est celle des classeurs ouverts et répons au même principe.
Te voilà normalement équipé pour commencer à travailler facilement.
Reviens avec ton code d'essai si tu as une difficulté particulière.
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Messages postés
3
Date d'inscription
vendredi 12 février 2010
Statut
Membre
Dernière intervention
15 février 2010

non le probleme c'est que je suis novice et que je ne sais pas le faire au sein d'un meme classeur
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Oui, mais commence dans ce cas par assimiler les bases, avant de te lancer vers des opérations entre classeurs ! (on ne se lance jamais à 100 à l'heure sans avoir apris à rouler à 10 à l'heure !)
Petit exercice, donc, sur un seul classeur d'abord et dont toutes ses feuilles sont ouvertes :
 Dim F As Worksheet
  For Each F In Sheets
    MsgBox F.Name '<<<<w<==== chaque F fait don référence à une feuille
    MsgBox F.Range("D50") ' <<<<<==== voila comment on lit le contenu de D50 de chaque feuille
    F.Range("A50") = F.Range("D50") ' voilà comment on donne à A50 la valeur de D50, sur la feuille F
    ' tu remarques que pour ce faire, on a une feuille (ici F) et une cellule (ici E50) et qu'on copie sur la feuille
    'de son choix (ici, la même, donc encore F). Si tu définissais une autre feuille que F comme destinataire, tu
    ' pourrais l'écrire ainsi (exemples) :
    'sheets(2).Range("A50") F.Range("D50") ou encore sheets("Feuil2").Range("A50") F.Range("D50")
  Next

Ce n'est qu'une fois ceci bien compris que tu pourras penser à mle faire entre plusieurs classeurs.
PS : ce petit exercice est vraiment le B.A.BA de l'apprentissage

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Messages postés
3
Date d'inscription
vendredi 12 février 2010
Statut
Membre
Dernière intervention
15 février 2010

merci beaucoup je vais plancher dessus (car c'est pour le boulot)
c'est vrai tu as raison que je ne peux aller plus vite que la musique
Je ne savais pas par ou commencer