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 :

Copier des données dans un classeur en fonction de la date en titre d'un autre classeur


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Octobre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Octobre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Copier des données dans un classeur en fonction de la date en titre d'un autre classeur
    Bonjour,

    Je suis nouveau sur le forum et après avoir chercher toute la matinée je n'ai pas trouver ma solution dans les différents sujets.

    Voici mon problème:

    Je rempli tous les jours un fichier excel identique dans sa forme tous les jours, mais dont le titre change et les valeurs changent. Il est nommé "151014" (pour aujourd'hui) dans un onglet nommé "FV TRESORERIE", "161014" pour demain.

    Tous les jours, je recopie ces chiffres dans un tableau de reporting mensuel, pour aujourd'hui par exemple je copie-colle les chiffres de mon fichier 151014 sur mon tableau d'octobre (dans un fichier "planning" onglet "10-2014") en colonne du 15/10/2014 (colonne R).

    J'ai pour l'instant une macro qui me permet de reporter automatiquement mes chiffres du fichier 151014 vers mon tableau de reporting. Cependant je dois mettre à jour ma macro tous les jours pour que les chiffres s'inscrivent dans la bonne colonne:

    Sub journeeversplanning()
    Dim Entree As Workbook, Sortie As Workbook
    Nomfichierentree = Application.GetOpenFilename("Fichier Excel (*.xls), *.xsl")
    If Nomfichierentree <> False Then
    Set Entree = Workbooks.Open(Nomfichierentree)
    NomFichierSortie = Application.GetOpenFilename("Fichier Excel (*.xls), *.xsl")
    If NomFichierSortie <> False Then
    Set Sortie = Workbooks.Open(NomFichierSortie)
    Sortie.Worksheets("10-2014").Range("P9") = Entree.Worksheets("FV TRESORERIE").Range("F10")
    Sortie.Worksheets("10-2014").Range("P10") = Entree.Worksheets("FV TRESORERIE").Range("F11")
    Sortie.Worksheets("10-2014").Range("P11") = Entree.Worksheets("FV TRESORERIE").Range("F12")
    Sortie.Worksheets("10-2014").Range("P12") = Entree.Worksheets("FV TRESORERIE").Range("F13")
    Sortie.Worksheets("10-2014").Range("P13") = Entree.Worksheets("FV TRESORERIE").Range("F14")
    Sortie.Worksheets("10-2014").Range("P15") = Entree.Worksheets("FV TRESORERIE").Range("F16")
    Sortie.Worksheets("10-2014").Range("P16") = Entree.Worksheets("FV TRESORERIE").Range("F17")
    Sortie.Worksheets("10-2014").Range("P18") = Entree.Worksheets("FV TRESORERIE").Range("F22")
    Sortie.Worksheets("10-2014").Range("P19") = Entree.Worksheets("FV TRESORERIE").Range("F23")
    Sortie.Worksheets("10-2014").Range("P22") = Entree.Worksheets("FV TRESORERIE").Range("F31")
    Sortie.Worksheets("10-2014").Range("P46") = Entree.Worksheets("FV TRESORERIE").Range("F44")
    Sortie.Worksheets("10-2014").Range("P47") = Entree.Worksheets("FV TRESORERIE").Range("F45")
    Sortie.Worksheets("10-2014").Range("P49") = Entree.Worksheets("FV TRESORERIE").Range("F46")
    Sortie.Worksheets("10-2014").Range("P50") = Entree.Worksheets("FV TRESORERIE").Range("F47")
    Sortie.Worksheets("10-2014").Range("P53") = Entree.Worksheets("FV TRESORERIE").Range("F50")
    Sortie.Worksheets("10-2014").Range("P54") = Entree.Worksheets("FV TRESORERIE").Range("F51")
    Sortie.Worksheets("10-2014").Range("P56") = Entree.Worksheets("FV TRESORERIE").Range("F58")
    Sortie.Worksheets("10-2014").Range("P58") = Entree.Worksheets("FV TRESORERIE").Range("F63")
    Sortie.Worksheets("10-2014").Range("P59") = Entree.Worksheets("FV TRESORERIE").Range("F64") + Entree.Worksheets("FV TRESORERIE").Range("F70")
    Sortie.Worksheets("10-2014").Range("P60") = Entree.Worksheets("FV TRESORERIE").Range("F67")
    Sortie.Worksheets("10-2014").Range("P63") = Entree.Worksheets("FV TRESORERIE").Range("F66")
    Sortie.Worksheets("10-2014").Range("P64") = Entree.Worksheets("FV TRESORERIE").Range("F68")
    Sortie.Worksheets("10-2014").Range("P66") = Entree.Worksheets("FV TRESORERIE").Range("F69")
    Sortie.Worksheets("10-2014").Range("P78") = Entree.Worksheets("FV TRESORERIE").Range("F86")
    Sortie.Worksheets("10-2014").Range("P80") = Entree.Worksheets("FV TRESORERIE").Range("F89")
    Sortie.Worksheets("10-2014").Range("P81") = Entree.Worksheets("FV TRESORERIE").Range("F90")
    End If
    Entree.Close
    End If
    End Sub

    Je voudrais écrire une matrice qui en fonction de la date inscrite en titre de mon fichier d'entrée (150414 par exemple) remplisse la colonne correspondant à cette date dans mon fichier de reporting. Est-ce possible? Si oui, je veux bien un peu d'aide.

    Merci beaucoup.

  2. #2
    Membre habitué
    Inscrit en
    Décembre 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 115
    Points : 180
    Points
    180
    Par défaut
    Bonjour
    D'abord, UTILISER LES BALISES, SINON

    Après simplifier (voir le code) et enfin, en rajouter : Utilisation de Intersect(Ligne,Colonne)
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Sub journeeversplanning()
    Dim maColonne As Range
    Dim WbEntree As Workbook
    Dim Entree As Worksheet, Sortie As Worksheet
        Nomfichierentree = Application.GetOpenFilename("Fichier Excel (*.xls), *.xsl")
        If Nomfichierentree <> False Then
     
            Set WbEntree = Workbooks.Open(Nomfichierentree)
            Set Entree = WbEntree.Worksheets("FV TRESORERIE")
     
            NomFichierSortie = Application.GetOpenFilename("Fichier Excel (*.xls), *.xsl")
                If NomFichierSortie <> False Then
                    Set Sortie = Workbooks.Open(NomFichierSortie).Worksheets("10-2014")
                    'le "10-2014" peut (et doit) être extrapolé du nom du fichier d'entrée
                    'Ce qui serait bien ce serait de nommer les cellules "A9","A10" etc...
                    'Et de faire une recherche pour la colonne
     
                    With Sortie
                        Set maColonne = .Range("P1").EntireColumn
                        Intersect(maColonne, .Range("A9").EntireRow) = Entree.Range("F10")
                        Intersect(maColonne, .Range("A10").EntireRow) = Entree.Range("F11")
                        '        //
                        '        //
                        '        //
                        '        //
                        Intersect(maColonne, .Range("A81").EntireRow) = Entree.Range("F90")
                    End With
     
                End If
                WbEntree.Close
                Set maColonne=Nothing
                Set Entree=Nothing
                Set WbEntree=Nothing
                Set Sortie=Nothing
     
     
        End If
    End Sub
    C'est peut-être le deuxième message, j'ai eu un bug à l'envoi du premier (Il était +Bô, tant pis)

    Cordialement

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Octobre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Octobre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup je teste ça!
    Ps: désolé pour les balises, ça ne se reproduira pas ;-)

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Octobre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Octobre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Alors ca marche super bien, merci pour ton aide!

    Mais pour aller jusqu'au bout de mon idée, dans mon classeur d'entrée, la feuille "FV TRESORERIE" comporte la date correspondant à la journée en "E1", j'aimerais que ma macro trouve cette date dans mon classeur de sortie en feuille "10-2014" (cette date se trouve sur la ligne 4 de la feuille) et remplisse la colonne correspondante. Je n'aurai alors plus à toucher ma macro, qu'en penses-tu?

  5. #5
    Membre habitué
    Inscrit en
    Décembre 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 115
    Points : 180
    Points
    180
    Par défaut
    Bonjour

    Un peu de retard, mais il faisait trop beau
    Pour déterminer la plage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
         Set Sortie = Workbooks.Open(NomFichierSortie).Worksheets("10-2014")
     
        With Sortie
            For Each myR In Sortie.Range("A1").EntireRow 'Attention, si la date n'existe pas, on va au bout de la feuille!!!
                If myR.Value = Entree.Range("E1").Value Then
                    myR.Select
                    Exit For
                End If
            Next
            Set maColonne = myR.EntireColumn
    Si c'est bon, n'oublie pas le

    Cordialement

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Octobre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Octobre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Salut piotr76,

    Long time no see, oui j'étais 3 mois vacances c'est vrai je me confesse.

    Alors j'ai testé le petit ajout, j'ai une erreur 13 d'incompatibilité sur le If
    J'ai donc essayé en définissant "myR As Range" mais toujours rien
    J'ai essayé en changeant les dates en nombre, en changeant les formats de dates, en mettant du texte.... toujours rien

    As-tu une idée d'ou pourrait venir le problème?
    Merci

Discussions similaires

  1. Problème pour trouver et copier des données dans un autre workbooks
    Par bilou_12 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/04/2012, 10h23
  2. Sélectionner et copier des données dans une colonne
    Par BeMayer dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/01/2012, 22h14
  3. Réponses: 2
    Dernier message: 17/03/2009, 11h03
  4. Réponses: 27
    Dernier message: 05/09/2008, 17h01
  5. Copier des données dans le presse papier
    Par Orakle dans le forum Access
    Réponses: 11
    Dernier message: 06/12/2005, 14h11

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