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

Macros et VBA Excel Discussion :

Copier Coller des information provenant de fichier vers un seul fichier avec plusieurs onglets


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 20
    Points : 4
    Points
    4
    Par défaut Copier Coller des information provenant de fichier vers un seul fichier avec plusieurs onglets
    Bonjour,

    Je voudrais en fait pouvoir developper une macro qui puisse faire cela:

    recuperer et ouvrir 4 fichiers excel qui se trouve sous
    C:\murex_ftp\reports\eod\accounting_report\date dujour\et ensuite le nom des 4 fichiers A ensuite B ensuite C ensuite D

    ouvrir A, B, C, D ET COPIER leur contenu dans un autre fichier se situant sous G:\front office Office\EIB\Accounting reports qui contient 4 onglets (A,B,C,D)

    Donc pour resumer ouvrir le fichier A copier son contenu, coller son contenu dans l'onglet A du fichier central

    Ouvrir le fichier B copier son contenu, coller son contenu dans l'onglet B du fichier central

    Pareil pour C et D.... Puis sauvegarder le fichier central

    Merci beaucoup de votre aide, je vous serais reconnaissante et une surprise pour celui qui m'aidera...

    Bisous

  2. #2
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour Hazard, bonjour le forum,

    Le contenu des fichiers source se trouve-t-il dans un seul onglet ? Dans plusieurs ? Peux-tu nous en dire plus sur les onglets sources (nombre, noms, etc.). Si l'onglet destination contient déjà des données, faut-il les écraser ou bien copier à la suite ?
    À plus,

    Thauthème

    Je suis Charlie

  3. #3
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    Bonjour
    Ceci fais cela
    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
    Option Compare Text
     
    Sub recuperer()
     Dim Wb_Source As Workbook, Wb_Dest As Workbook
     Dim i As Integer
     Dim  Rep As String
     Dim ArrWd
     
        Rep = "C:\murex_ftp\reports\eod\accounting_report\" & Format(Now, "dd mm yy") & "\"
        ArrWd = Split(("A;B;C;D"), ";")
     
        Set Wb_Dest = Workbooks.Open("G:\front office Office\EIB\Accounting reports.xls") 'ouvre le classeur destination
     
    For i = 0 To UBound(ArrWd)
     
        Set Wb_Source = Workbooks.Open(Rep & ArrWd(i) & ".xls", , True) 'ouverture en lecture seule du classeur source
        Wb_Source.Sheets(ArrWd(i)).Cells.Copy Wb_Dest.Sheets(ArrWd(i)).Range("a1") 'copier/coller
        Wb_Source.Close False 'ferme le classeur source
     
    Next i
    Wb_Dest.Close True 'ferme le classeur destination avec enregistrement
     
    End Sub
    Il faut adapté les noms de fichier et le format de date, peut etre l'extension des fichiers, j'ai travaillé avec du .xls
    la macro peux etre lancé de n'importe quelle classeur, meme autre que les deux avec lesquels on travaille.

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Bonjour KEYGEN et les autres,

    Je viens d'essayer et je comprends pas trop VBA me dit quil ne trouve pas un des fichiers.

    Je vais recapituler le tout car j'ai oubliee des infos.

    Les fichiers A B C D s,appellent en realite :

    efsf_books_bal_20141009

    efsf_cashflow_20141009

    EFSF_Security_Position_20141009

    efsf_situation_report_20141009

    Ils sont crees tous les matins dans C:\murex_ftp\reports\eod\accounting_report\20141009 mais la date change tous les jours en Business days ( jours ouvrable) et on traite les donnees a J-1. Exemple lundi on sera le 13 et j'aurai les 4 fichiers ci dessous: C:\murex_ftp\reports\eod\accounting_report\20141010


    efsf_books_bal_20141010

    efsf_cashflow_20141010

    EFSF_Security_Position_20141010

    efsf_situation_report_20141010


    Aisin de suite le Mardi 14 on traitera les infos du 13 avec C:\murex_ftp\reports\eod\accounting_report\20141013

    efsf_books_bal_20141013

    efsf_cashflow_20141013

    EFSF_Security_Position_20141013

    efsf_situation_report_20141013

    Donc dans chacun de ces fichiers il contient un onglet avec des infos comme je vous l'ai dit hier. Il faut donc coller les infos dans le fichier destinataire qu'on doit sauver en date J-1 en Business days (jours ouvrable).

    G:\Back Office\EIB\Accounting reports\EFSF a l'interieur de ce dossier il y a des fichiers avec pratiquement tousle meme nom mais avec une date differente.

    EFSF Accounting report_20141008

    EFSF Accounting report_20141007

    EFSF Accounting report_20141006

    Dans ce cas il faut prendtre le fichier de la veille et le renommer en date J-1. exemple aujourdhui nous sommes le 10 Octobre, donc prendre le fichier du 8 Octobre aui a ette fait hier (EFSF Accounting report_20141008) et le sauver conme ceci EFSF Accounting report_20141009 (en J-1 busines day). Lundi je prendrai le fichier fait aujourdhui ( EFSF Accounting report_20141009) et je le nommerai EFSF Accounting report_20141010. Dans ce fichier il y a 4 onglets nommes:

    EFSF Situation Report

    EFSF Cashflow

    SECURITIES Position

    CASH Position


    Une fois le fichier sauver, copier coller les fichiers se trouvant dans C:\murex_ftp\reports\eod\accounting_report\20141009 dans le fichier destinataire se trouvant G:\Back Office\EIB\Accounting reports\EFSF\ EFSF Accounting report_20141009

    copier efsf_situation_report_20141009 et coller dans l'onglet EFSF Situation Report

    copier efsf_cashflow_20141009 et coller dans l'onglet EFSF Cashflow

    copier EFSF_Security_Position_20141009 et coller dans l'onglet SECURITIES Position

    copier efsf_books_bal_20141009 et coller dans l'onglet CASH Position


    Merci beaucoup pour ton aide et c'est la premiere fois que j'utilise VBA donc je suis perdue et pas tres prete a cela...

  5. #5
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    Bonjour
    Le code livrer est fonctionnel mais a adapter

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Que veut dire cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Rep = "C:\murex_ftp\reports\eod\accounting_report\" & Format(Now, "dd mm yy") & "\"
        ArrWd = Split(("A;B;C;D"), ";")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(Now, "dd mm yy") & "\"
    dois je modifier la date et que veut dire le & "\" ?

    merci d'avance

    voici comment jai changer la macro

    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
    Sub recuperer()
     Dim Wb_Source As Workbook, Wb_Dest As Workbook
     Dim i As Integer
     Dim Rep As String
     Dim ArrWd
     
        Rep = "C:\murex_ftp\reports\eod\accounting_report\" & Format(Now, "dd mm yy") & "\"
        ArrWd = Split(("efsf_situation_report_20141009;efsf_cashflow_20141009;EFSF_Security_Position_20141009;efsf_books_bal_20141009"), ";")
     
        Set Wb_Dest = Workbooks.Open("G:\Back Office\EIB\Accounting reports\EFSF\EFSF Accounting report_20141009.xls") 'ouvre le classeur destination
     
    For i = 0 To UBound(ArrWd)
     
        Set Wb_Source = Workbooks.Open(Rep & ArrWd(i) & ".xls", , True) 'ouverture en lecture seule du classeur source
        Wb_Source.Sheets(ArrWd(i)).Cells.Copy Wb_Dest.Sheets(ArrWd(i)).Range("a1") 'copier/coller
        Wb_Source.Close False 'ferme le classeur source
     
    Next i
    Wb_Dest.Close True 'ferme le classeur destination avec enregistrement
     
    End Sub
    Jai un message d'erreur qui me dit que le fichier G:\Back Office\EIB\Accounting reports\EFSF\EFSF Accounting report_20141009.xls n.est pas trouvable ?

  7. #7
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    il faut mettre ton code entre balise pour le rendre plus lisible(entre autre)
    Tu fais modifier le message (en bas)
    tu selectionne tous le code et tu appui sur # dans la deuxieme barre d'outils au dessus du message

    Ton code ne prend pas en compte les changement de date, je suis en train de le refaire mais les phase de test me prenne un peu de temps.

  8. #8
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup,

    Je serais dans l'obligation de te payer si ca marche =)

  9. #9
    Membre éclairé Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Points : 758
    Points
    758
    Par défaut
    Bonjour,

    Question adaptation du code de Keygen, tu devrais modifier le chemin d'accès des différents fichiers, car je lis que la date est noté AA/MM/JJ et pas l'inverse.

    un petit bout de code pour rectifier le soucis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rep = "C:\murex_ftp\reports\eod\accounting_report\" & Format(Now, "yymmdd") & "\"
    Et si le message d'erreur te dis que le fichier est introuvable, peut être qu'il faut vérifier s'il il est bien la ?

    Pour prendre en compte la date (a adapter dans le code de Keygen, qui est très bien)

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Const Books_bal = "efsf_books_bal_"
    Const casfflow = "efsf_cashflow_"
    Const Security = "EFSF_Security_Position_"
    Const Situation = "efsf_situation_report_"
    const Destination = "EFSF Accounting report_"
     
    Dim Dbl_Today as string
    Dbl_Today = Cdbl(Format(Now, "yymmdd"))
     
    Select case Format(Now, "dddd")
     
         Case "Dimanche"
              Dbl_Today = Dbl_Today - 2
     
         Case "Samedi"
              Dbl_Today = Dbl_Today -1
     
    End select
     
    'Code de Keygen
    '-------------------------------------------------
    Dim Wb_Source As Workbook, Wb_Dest As Workbook
    Dim i As Integer
    Dim Rep As String
    Dim ArrWd(3)
     
    Rep = "C:\murex_ftp\reports\eod\accounting_report\" & Dbl_Today -1 & "\"
    ArrWd = Split((Chr"34" Books_bal & Dbl_Today & ";" & casfflow & Dbl_Today & ";" & Security & Dbl_Today & ";" & Situation & Dbl_Today & Chr(34)), ";")
    'Bien que je pense qu'on peux construire un tableau de façon plus simple
     
    'ArrWd(0) = Cstr(Books_bal & Dbl_Today)
    'ArrWd(1) = Cstr(casfflow & Dbl_Today)
    'ArrWd(2) = Cstr(Security & Dbl_Today)
    'ArrWd(3) = Cstr(Situation & Dbl_Today)
     
    'Je remplirais mon tableau de façon plus simple, je trouve que c'est plus clair comme ça
     
    Set Wb_Dest = Workbooks.Open("G:\Back Office\EIB\Accounting reports\EFSF\" & Destination & Dbl_Today & ".xls") 'ouvre le classeur destination
     
    For i = 0 To UBound(ArrWd)
     
    Set Wb_Source = Workbooks.Open(Rep & ArrWd(i) & ".xls", , True) 'ouverture en lecture seule du classeur source
    Wb_Source.Sheets(ArrWd(i)).Cells.Copy Wb_Dest.Sheets(ArrWd(i)).Range("a1") 'copier/coller
    Wb_Source.Close False 'ferme le classeur source
     
    Next i
    Wb_Dest.Close True 'ferme le classeur destination avec enregistrement
    Citation Envoyé par Oscar Wilde
    Je déteste les discussions: elles vous font parfois changer d'avis.

  10. #10
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Bonjour Nico,

    Jai copier coller ton code dans un workbook cepdnant lorsque je lance la macro,

    jai une erreur : compile error : syntaxe error pour la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrWd = Split((Chr"34" Books_bal & Dbl_Today & ";" & casfflow & Dbl_Today & ";" & Security & Dbl_Today & ";" & Situation & Dbl_Today & Chr(34)), ";")
    Desole pour tout ca mais je comprends pas trop et je suis juste stagaiaire qui essaye d'automatiser des choses. dailleurs je sais meme pas si jai bien colle le code au bon endroit. Pk qund jouvre un fichier excel et que je veux lancer la macro, je la trouve pas ?

    merci

  11. #11
    Membre éclairé Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Points : 758
    Points
    758
    Par défaut
    Ah oui, c'est parceque c'est Chr(34) et pas Chr"34", au temps pour moi
    L'instruction correct serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrWd = Split((Chr(34) & Books_bal & Dbl_Today & ";" & casfflow & Dbl_Today & ";" & Security & Dbl_Today & ";" & Situation & Dbl_Today & Chr(34)), ";")
    Mais s'il te plait, peux tu mettre le code entre balise # ([CODE][ /CODE]), c'est beaucoup plus lisible !

    Citation Envoyé par Hazard17
    Desole pour tout ca mais je comprends pas trop et je suis juste stagaiaire qui essaye d'automatiser des choses. dailleurs je sais meme pas si jai bien colle le code au bon endroit. Pk qund jouvre un fichier excel et que je veux lancer la macro, je la trouve pas ?
    Que veux tu dire par la ? Ou écris tu tes macro ?
    Citation Envoyé par Oscar Wilde
    Je déteste les discussions: elles vous font parfois changer d'avis.

  12. #12
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Merci Nico, J'ai change la ligne cependant,


    j'ai encore un message d'erreur lol

    'can't assign to array' et le mot ArrWd est surligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrWd = Split((Chr(34) & Books_bal & Dbl_Today & ";" & casfflow & Dbl_Today & ";" & Security & Dbl_Today & ";" & Situation & Dbl_Today & Chr(34)), ";")

    Pour ecrire mes macros, j'ouvre un fichier excel, je fais Alt + F11, je chosis module 1 et je colle le programme voila =) Mais quand j'ouvre un autre fdichier excel, je ne retrouve pas la macro lol

    je sais je suis nulle......

  13. #13
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    Voila qui est fait, fonctionnel et tester, donc bug = fautes d'orthographe
    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
    39
    40
    41
    42
    43
    Option Compare Text
     
    Sub recuperer()
     Dim Wb_Source As Workbook, Wb_Dest As Workbook
     Dim i As Integer
     Dim Rep_source As String, Rep_dest As String
     Dim ArrWd, ArrWd2
     Dim Date_Jour1 As String, Date_Jour2 As String
     Dim j1 As Byte, j2 As Byte
     
        If Weekday(Now) = 2 Then 'lundi
            j1 = 3
            j2 = 4
        End If
        If Weekday(Now) = 3 Then 'mardi
            j1 = 1
            j2 = 4
        End If
        If Weekday(Now) = 4 Or Weekday(Now) = 5 Or Weekday(Now) = 6 Then 'mercredi, jeudi, vendredi
            j1 = 1
            j2 = 2
        End If
     
        Date_Jour1 = Format(Now - j1, "yyyymmdd")
        Date_Jour2 = Format(Now - j2, "yyyymmdd")
     
        Rep_source = "C:\murex_ftp\reports\eod\accounting_reports\" & Date_Jour1 & "\"
        Rep_dest = "G:\Back Office\EIB\Accounting reports\EFSF\"
     
        ArrWd = Split(("efsf_books_bal;efsf_cashflow;EFSF_Security_Position;efsf_situation_report"), ";")
        ArrWd2 = Split(("CASH Position;efsf cashflow;SECURITIES Position;efsf situation report"), ";")
     
        Set Wb_Dest = Workbooks.Open(Rep_dest & "EFSF Accounting report_" & Date_Jour2 & ".xls") 'ouvre le classeur destination
        Wb_Dest.SaveAs Rep_dest & "EFSF Accounting report_" & Date_Jour1 & ".xls" 'renomme le classeur destination
     
    For i = 0 To UBound(ArrWd)
        Set Wb_Source = Workbooks.Open(Rep_source & ArrWd(i) & "_" & Date_Jour1 & ".xls", , True) 'ouverture en lecture seule du classeur source
        Wb_Source.Sheets(1).Cells.Copy Wb_Dest.Sheets(ArrWd2(i)).Range("a1")  'copier/coller
        Wb_Source.Close False 'ferme le classeur source
    Next i
     
    Wb_Dest.Close True 'ferme le classeur destination avec enregistrement
    End Sub

  14. #14
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Keygen merci mais pour ne pas faire nimporte quoi,


    j'aimerai que tu m'indiques comment inserer ce code dans excel ( nouveau fichier , fichier destinataire ....) ?

    merci beaucoup beaucoup

  15. #15
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    c'est prevu pour fonctionner depuis un fichier externe au Wb_source et Wb_dest
    donc fichier vierge ou pas, ouvrir vba, clic droit sur module, insere un module et coller tel quel.

    avec deux sucres, mon salaire

  16. #16
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Cela marche cependant ce ne sont pas les bonnes donnes dedans

    cela a cree un fichier parfait EFSF Accounting report_20141009 mais dedans ce sont l;es donnnes du 8 et non du 9 lol

  17. #17
    Membre éclairé Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Points : 758
    Points
    758
    Par défaut
    Citation Envoyé par Hazard17
    Pour ecrire mes macros, j'ouvre un fichier excel, je fais Alt + F11, je chosis module 1 et je colle le programme voila =) Mais quand j'ouvre un autre fdichier excel, je ne retrouve pas la macro lol

    je sais je suis nulle......
    C'est tout à fait normal, chaque fichier Excel possède ses propres modules et ses propres macro, donc si tu l'insère dans un fichier A.xlsm, tu ne retrouveras pas tes macro dans le fichier B.xlsm.
    Citation Envoyé par Oscar Wilde
    Je déteste les discussions: elles vous font parfois changer d'avis.

  18. #18
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    cela a cree un fichier parfait EFSF Accounting report_20141009 mais dedans ce sont l;es donnnes du 8 et non du 9 lol
    Nous somme le 10
    J'ouvre le fichier en G:\ du 08, je le renomme en 09
    dedans je colle les données provenant des différents fichiers situé en c:\ dater du 09
    est ce bien cela.

    Si les données ne sont pas les bonnes, c'est que quelque chose ne vas pas au niveau du copier coller

    Regarde bien les noms des fichiers qui se trouve sur arrwd et arrwd2
    arrwd sont les noms des fichiers se trouvant sur C
    arrwd2 sont les noms des feuilles du fichier se trouvant sur G

  19. #19
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    sALUT kEYGEN,


    les données provenant des différents fichiers situé en c:\ AVEC LE NOM 09 et nom dater du 09 (date modified) car ces fichiers sont crer le jour j
    exemple

    Nous somme le 10
    J'ouvre le fichier en G:\ du 08, je le renomme en 09
    dedans je colle les données provenant des différents fichiers situé en c:\ avec le NOM 09 date du 10.

  20. #20
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    Comme cela serait suffisant, il n'y aurait qu'une seule exception qui est lundi
    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
    Option Compare Text
     
    Sub recuperer()
     Dim Wb_Source As Workbook, Wb_Dest As Workbook
     Dim i As Integer
     Dim Rep_source As String, Rep_dest As String
     Dim ArrWd, ArrWd2
     Dim Date_Jour1 As String, Date_Jour2 As String
     Dim j1 As Byte, j2 As Byte
     
        If Weekday(Now) = 2 Then 'lundi
            j = 3
            Else
            j = 1
        End If
     
        Date_Jour = Format(Now - j, "yyyymmdd")
     
        Rep_source = "C:\murex_ftp\reports\eod\accounting_reports\" & Date_Jour & "\"
        Rep_dest = "G:\Back Office\EIB\Accounting reports\EFSF\"
     
        ArrWd = Split(("efsf_books_bal;efsf_cashflow;EFSF_Security_Position;efsf_situation_report"), ";")
        ArrWd2 = Split(("CASH Position;efsf cashflow;SECURITIES Position;efsf situation report"), ";")
     
        Set Wb_Dest = Workbooks.Open(Rep_dest & "EFSF Accounting report_" & Date_Jour & ".xls") 'ouvre le classeur destination
        Wb_Dest.SaveAs Rep_dest & "EFSF Accounting report_" & Date_Jour & ".xls" 'renomme le classeur destination
     
    For i = 0 To UBound(ArrWd)
        Set Wb_Source = Workbooks.Open(Rep_source & ArrWd(i) & "_" & Date_Jour & ".xls", , True) 'ouverture en lecture seule du classeur source
        Wb_Source.Sheets(1).Cells.Copy Wb_Dest.Sheets(ArrWd2(i)).Range("a1")  'copier/coller
        Wb_Source.Close False 'ferme le classeur source
    Next i
     
    Wb_Dest.Close True 'ferme le classeur destination avec enregistrement
    End Sub

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/05/2012, 13h44
  2. Copier/coller des informations à partir d'une boucle
    Par BOU59000 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/07/2009, 09h21
  3. Réponses: 1
    Dernier message: 29/12/2008, 10h12
  4. Réponses: 3
    Dernier message: 10/01/2008, 10h12
  5. Réponses: 1
    Dernier message: 10/04/2007, 23h53

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