Remplir un tableau à partir d'un autre avec Macro

Résolu
Sophie -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour,

Je possède une base de données avec différents sites (avec N° propre à chacun).

J'ai un onglet avec un premier tableau dans lequel sont répertoriées des consommations mensuelles par site, et donc ce tableau évolue au moins tous les mois.

A droite de ce tableau, j'ai établie une moyenne pour chaque mois (qui, comme vous l'aurez compris, évolue à chaque nouvelle entrée de données).

Dans un autre onglet se trouve un second tableau avec l'ensemble des sites. Ce tableau doit me servir à cataloguer les moyennes suscitées (et pouvoir le faire régulièrement, et d'écraser les anciennes données).

Mon but, serait d'avoir un bouton macro, qui me permettrait de copier les différentes moyennes dans le second tableau, à la bonne ligne,c'est-à-dire en utilisant comme référence le N° des différents sites.

Je me triture le cerveau mais les macros et moi on a jamais été très copains. Pensez-vous que c'est possible, et si oui, avez-vous une solution ?

Merci par avance

Mon fichier Excel :
www.transfernow.net/81h18214t25y

16 réponses

  1. Sophie
     
    Merci, voilà le fichier :
    http://www.cjoint.com/c/GFonihd0LJL
    0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Tu devrait pouvoir te passer de macro
    En D5 (ligne Bibliothèque)
    =INDEX('Outil seuils'!$G$7:$G$18;EQUIV(Seuil!D$1;'Outil seuils'!$B$7:$B$18;0))
    à tirer vers la droite

    Dans la feuille Outil seuils, il devrait y avoir un tableau pour chaque site, à moins que tu aies une feuille par site... La formule ci-dessus restera alors à adapter pour les autres sites

    Si tu veux une macro, il faut envoyer un fichier avec la vraie structure complète

    Cdlmnt
    0
  3. Sophie
     
    J'ai omis un détail important : le tableau de 2 lignes et 3 colonnes en haut de mon premier onglet est en réalité constitué de listes déroulantes me permettant de choisir un site et une énergie, ce qui remplit ensuite le tableau en-dessous (je ne peux vous transmettre mon "vrai" fichier pour des raisons de confidentialité).

    Ainsi, mon but est, pour chaque site et énergie, de pouvoir coller la colonne des moyennes dans le second tableau, afin de pouvoir répéter l'opération pour chacun des autres sites.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. ccm81 Messages postés 11033 Statut Membre 2 434
     
    OK, on va faire avec, mais il te faudra certainement mettre la main dans le cambouis pour la macro

    Cdlmnt
    0
  6. Sophie
     
    Si je peux avoir une base saine, pas de problème pour me creuser le cerveau avec mes données :)
    0
  7. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Une question ... pour le moment

    Le numero en colonne A (feuille seuil) est il unique (1 site+1energie = 1 numero) ? Si oui, ça simplifie la recherche de la ligne qui se ferait selon ce (seul) numéro
    0
  8. Sophie
     
    Oui tout à fait, il est unique (en fonction du site et de l'énergie choisie). C'est d'ailleurs ce numéro qui me permet de faire appel à mes consommations.
    0
  9. ccm81 Messages postés 11033 Statut Membre 2 434
     
    OK, c'est parti
    0
  10. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Un début .. à tester
    http://www.cjoint.com/c/GFooWMvO2s8

    Cdlmnt
    0
  11. Sophie
     
    Merci !!
    Par contre, je pense que c'est à cause de ma version de Office (Office 365) mais aucune macro ne s'affiche dans le menu (alors qu'elle fonctionne parfaitement...)
    0
  12. ccm81 Messages postés 11033 Statut Membre 2 434
     
    1. mais aucune macro ne s'affiche
    dans ton fichier ?
    et que veux tu dire par "ne s'affiche dans le menu"
    2. alors qu'elle fonctionne parfaitement...
    même question

    Avec mon vieil excel 2003, je n'ai pas tous ces problèmes

    N'oublies d'enregistrer ton fichier (avec la macro) avec le type .xlsm (et non .xlsx)

    Si c'est fini, peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)

    Bonne fin de journée
    0
  13. Sophie
     
    Merci pour tes précisions.

    J'avais bien déjà fait toutes tes suggestions, et quand je vais dans "Affichage" puis "Macros"/"Afficher les macros" je n'ai rien du tout, zéro.
    Et pourtant quand je clique sur le bouton que tu as créé, la macro fonctionne parfaitement.
    Je penche pour une incompatibilité de version Office.

    Te serait-il possible de coller les lignes de la Macro sur ce forum ?

    Merci par avance !
    0
  14. ccm81 Messages postés 11033 Statut Membre 2 434
     
    1. La macro attachée au bouton que j'ai nommé btMAJ (dans le module de la feuille Outil seuils)
    Private Sub btMAJ_Click()
    Dim numero As Long
    With ActiveSheet
      numero = .Range(ceNuFO).Value
      Call Transfert(numero)
    End With
    End Sub

    2. La macro transfert (dans le module général Module 1)
    ' constantes décrivant la configuration des données
    
    ' Feuille Outil seuils
    Public Const FO As String = "Outil seuils"
    Public Const ceNuFO As String = "D3"
    Public Const liDeFO As Byte = 7
    Public Const coSeFO As String = "G"
    ' Feuille seuil
    Public Const FS As String = "Seuil"
    Public Const coNuFS As String = "A"
    Public Const codeFS As Byte = 4
    
    Public Sub Transfert(numero As Long)
    Dim mois As Byte, li As Long
    Dim obj As Object
    With Sheets(FS)
      Set obj = .Columns(coNuFS).Find(numero, , , xlWhole)
      If obj Is Nothing Then MsgBox "Numero " & numero & " non trouvé ": Exit Sub
      li = obj.Row
      For mois = 1 To 12
        .Cells(li, codeFS + mois - 1).Value = Sheets(FO).Range(coSeFO & liDeFO + mois - 1).Value
      Next mois
    End With
    End Sub

    Cdlmnt
    0
  15. Sophie
     
    Après quelques modifications, ça fonctionne.

    Merci beaucoup !
    0
  16. ccm81 Messages postés 11033 Statut Membre 2 434
     
    De rien

    Si c'est fini, peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)

    Bonne journée
    0