IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

[VBA Excel] Retranscription de données de plusieurs feuilles sur une feuille de synthèse


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur projet
    Inscrit en
    Juin 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 21
    Points : 14
    Points
    14
    Par défaut [VBA Excel] Retranscription de données de plusieurs feuilles sur une feuille de synthèse
    Bonjour à vous,

    Je souhaite transmettre des données de cellules de feuilles générées au grè de différents chantiers dans une feuille de synthèse.

    Ces données sont le nombre matériel nécessaire utilisé par mois au fil de plusieurs années (janv 2015 à nov 2021 pour être précis).

    Je souhaiterais récupérer la somme du matériel nécessaire "a", du matériel nécessaire "b",... des chantier du batiment A (les différentes feuilles générés de nom-type BATA-chan1, BATA-chan2,...) au cours des différents mois pour les insérer dans une synthèse des différents bâtiments.

    Ce que j'ai réussi à faire déjà c'est de prendre toutes les feuilles du bâtiment A, de prendre la somme du 1er matériel situé en G2 (janv 2015) et de l'insérer dans ma feuille de synthèse en H3 (janv 2015)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sheets("synthese").Range("H3").ClearContents
    For Each sh In ThisWorkbook.Sheets
        If Left(sh.Name, 4) = "BATA" Then
            Valeurno = Valeurno + sh.Range("G2")
        Else
            Sheets("synthese").Range("H3").Value = 0
        End If
    Next
    Sheets("synthese").Range("H3").Value = Valeurno
    Mon problème, c'est que je ne vois pas comment faire pour faire une boucle pour insérer la suite du matériel a (H2 pour février 2015) et de l'insérer dans ma feuille synthèse (K3 pour février 2015 j'ai un step de 3 à faire) et ceci jusqu'a mon novembre 2021.
    et ceci pour chaque matériel nécessaire.

    J'avais pensais une chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For Each sh In ThisWorkbook.Sheets
        If Left(sh.Name, 4) = "BATA" Then
            For i = 0 To 5
                lignebaby = Range("H2").Row
                Colonnebaby = Range("H2").Column + 1
                Valeurbaby = Valeurbaby + sh.Range(lignebaby, Colonnebaby)
                MsgBox Valeubaby
            Next
        End If
    Next
    Mais je m'y perds

    Merci pour votre aide!

    Markhann

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur projet
    Inscrit en
    Juin 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Je n'ai peut être pas été assez clair?

    Markhann

  3. #3
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 125
    Points : 9 953
    Points
    9 953
    Billets dans le blog
    5
    Par défaut
    Bonjour,
    chaque feuille BATA possède à la même position les mêmes données?
    c'est à dire, par exemple, en G2 de chaque BATA c'est le matériel "A" de janvier 2015 ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur projet
    Inscrit en
    Juin 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Oui quand je génère une nouvelle feuille, la disposition est identique aux autres.

    Cordialement.

  5. #5
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 125
    Points : 9 953
    Points
    9 953
    Billets dans le blog
    5
    Par défaut
    Il est possible de se passer de VBA dans ce cas :

    - tu positionne tes feuilles BATA les unes à la suite des autres
    - admettons que la première c'est BATA1 et la dernière c'est BATA10


    la formule qui additionnera toutes les cellules A1 des feuilles située entre BATA1 et BATA10 (ces deux feuilles incluses)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(BATA1:BATA10!A1)

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ingénieur projet
    Inscrit en
    Juin 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Déjà merci pour l'intérêt que tu portes à mon problème!

    En fait je ne peux pas faire la somme directement sans vba, car j'ai au total 9 bâtiment, 11 appareils pour chaque bâtiment et ça sur 87mois, je te laisse imaginer le bon bazard.

    De plus quand je créer mes feuilles, elles ne se font pas dans un ordre précis (bata, batc, bata, bath, ...) c'est pour ça que je fait une lecture du début du nom de la feuille afin de récupérer toutes les feuilles, du bat A par exemple.
    Après je voudrais prendre le mois de janvier 2015, regarder le premier appareil et en faire la somme de tout mes chantiers du batA et l'insérer dans ma feuille de synthèse, ensuite faire de même pour le mois de février et ainsi de suite.
    Une fois le premier appareil fait, je prends le deuxième et je fais de même.

    J'ai commencé par faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sheets("synthese").Range("H3").ClearContents
    For Each sh In ThisWorkbook.Sheets
        If Left(sh.Name, 4) = "BATA" Then
            Valeurapp1 = Valeurapp1 + sh.Range("G2")
        Else
           Sheets("synthese").Range("H3").Value = 0
        End If
    Next
    Sheets("synthese").Range("H3").Value = Valeurapp1
    Ce qui me fait bien le listing des feuilles que je souhaite récupérer, ça me fait bien la somme du premier appareil mais juste pour le mois de janvier 2015. Mon problème viens que je ne vois pas comment faire pour prendre la somme du premier appareil du mois de janvier 2015 des mes feuilles de chantiers, et de l'insérer dans le mois de janvier du bâtiment concerné dans ma feuille de synthèse, et de le faire pour les mois suivant.
    J'ai tenté avec une boucle mais ça ne passe pas.

    A+

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ingénieur projet
    Inscrit en
    Juin 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Re-bonjour,

    J'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sheets("synthese").Range("H3").ClearContents
    For Each sh In ThisWorkbook.Sheets
        If Left(sh.Name, 4) = "BATA" Then
            ligne = 2
            Colonne = 7
            For i = 0 To 10
                Valeur = sh.Cells(ligne, Colonne + 1)
                MsgBox Valeur
            Next
        End If
    Next
    Sheets("synthese").Range("H3").Value = Valeur
    Dans une feuille BATA-chantier1, j'ai pour l'appareil 1 : 7,7,7,7,7,7,7,7,7,7
    Dans une feuille BATA-chantier2, j'ai pour l'appareil 2 : 3,3,3,3,3,3,3,3,3,3

    Mon MsgBox me retranscrit : 7,7,7,7,7,7,7,7,7,7,3,3,3,3,3,3,3,3,3,3

    j'ai fait dans mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Valeur = Valeur + sh.Cells(ligne, Colonne + 1)
    J'obtient : 7,14,21,28,35,42,49,56,63,70,77,80,83,86,89,92,95,98,101,104,107,110
    Et je souhaiterai avoir : 10,10,10,10,10,10,10,10,10,10

    Vous avez une suggestion? merci

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ingénieur projet
    Inscrit en
    Juin 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    VOus n'avez pas une petite idée du coup? c'est cause perdu?

    Bon lundi!

  9. #9
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 922
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je ne sais pas si j'ai bien compris ta demande mais s'il s'agit de regrouper sur une feuille de synthèse plusieurs feuilles ayant le même nombre de colonnes et la même orthographe pour chaque étiquette de colonne (ligne des titres) alors il est possible que cette contribution pourra t'aider Regrouper plusieurs feuilles sur une autre. (2003-2010)

  10. #10
    Membre à l'essai
    Homme Profil pro
    Ingénieur projet
    Inscrit en
    Juin 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Oui ça reviens à regrouper plusieurs feuilles sur une avec une petit différence.

    Un peu d'image pour illustrer :

    Par exemple j'ai deux chantier sur le même batiment, avec un matériel 1 nécessaire pour chaque mois,

    Nom : BatA-4.jpg
Affichages : 601
Taille : 196,4 Ko

    Nom : BatA-5.jpg
Affichages : 621
Taille : 189,6 Ko

    Et je souhaite sommer chaque mois, lorsque c'est les BatA le besoin total du matériel 1 :

    Nom : synthese.jpg
Affichages : 1004
Taille : 267,0 Ko

    Voilà j'espère que ce sera plus clair avec les images.

    Désolé de ne pas pouvoir mettre en copie mon projet, mais celui-ci est confidentiel au sein de mon entreprise.

    Cordialement et merci de vos contributions à mon problème.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Ingénieur projet
    Inscrit en
    Juin 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    J'ai trouvé solution à mon problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Dim valeur(250) As Variant
     
    For Each sh In ThisWorkbook.Sheets
        If Left(sh.Name, 4) = "BATA" Then
            ligne = 2
            Colonne = 6
            For i = 1 To 250
               valeur(i) = valeur(i) + sh.Cells(ligne, Colonne + i)
            Next
        End If
    Next
    Sheets("synthese").Activate
    For i = 1 To 83
        Cells(3, 8 + (i - 1) * 3).Value = valeur(i)
    Next
    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Export de données de plusieurs tables dans une feuille excel
    Par arkhang dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/03/2014, 16h29
  2. [XL-2010] Importer des données de plusieurs fichiers dans une feuille excel en VBA
    Par Alibel dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/10/2013, 15h16
  3. [XL-2003] Copier plusieurs tableau d'une feuille sur une auter feuille
    Par Alex5974 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/03/2012, 15h41
  4. [XL-2007] Copier des données de plusieurs classeurs sur une feuille récap
    Par chipster008 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2011, 11h12
  5. Réponses: 9
    Dernier message: 04/04/2007, 11h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo