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 :

[VBA][Excel]Copier coller de feuilles d'un classeur à un autre classeur


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Avril 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Avril 2013
    Messages : 20
    Points : 7
    Points
    7
    Par défaut [VBA][Excel]Copier coller de feuilles d'un classeur à un autre classeur
    Salut j'ai regardé un peu dans le forum mais les solutions que j'ai trouvé ne fonctionne pas . Voici ma problématique :
    • -Je veux copier la Feuil1 du Classeur PMI.xlsm dans la Feuil2 du Classeur RETARDPMI.xlsm
      -Puis je veux copier la Feuil1 du Classeur INTERVENTIONREALISEE.xlsm dans la Feuil3 du Classeur RETARDPMI.xlsm


    J'ai essayé ce code mais il recréé à chaque fois un nouveau classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sheets(Feuil1").cells.copy Sheets("Feuil2").Range("A1")
    Sheets("Feuil2").copy
    Chemin = C:\BILAN TRIMESTRIEL\
    ClasseurCible = "RETARDPMI.xls" 'Là je ne peux pas mettre .xlsm je peux que créer un fichier ne prenant pas en charge les macros alors que j'ai besoin d'un fichier prenant en charge les macros 
    ActiveWorkbook.SaveAs chemin & ClasseurCible
    Puis ce code que j'ai trouvé sur le forum mais ça me dit que l'indice n'appartient pas à la sélection erreur 9
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("PMI.xlsm").Sheets(Feuil1).Cells.Copy Workbooks("RETARDPMI.xlsm").Sheets(Feuil2).Range("A1")

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonjour,

    tu n'as pas précisé ou tu écrivais ton code ? dans quel classeur ?

    et quel était l'état de tes classeurs au moment de l'exécution du codes , sont-t'ils tous ouvert dans la même application excel ?

  3. #3
    Futur Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Avril 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Avril 2013
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    Bonjour bbil,

    Pour copier la Feuil1 du Classeur PMI.xlsm dans la Feuil2 du Classeur RETARDPMI.xlsm :

    J'écris le code dans le Classeur PMI.xlsm et le Classeur RETARDPMI.xlsm est fermé


    Pour copier la Feuil1 du Classeur INTERVENTIONREALISEE.xlsm dans la Feuil3 du Classeur RETARDPMI.xlsm :

    J'écris le code dans le Classeur INTERVENTIONREALISEE.xlsm et le Classeur RETARDPMI.xlsm est fermé

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    et bien avant de copier des données dans un classeur commence par l'ouvrir...


    Comment ouvrir un classeur ?



    ou mieux :

    Comment travailler sur deux classeurs ?

  5. #5
    Futur Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Avril 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Avril 2013
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    J'ouvre le classeur qui est fermé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Workbooks.Open "C:\BILAN TRIMESTRIEL\RETARDPMI.xlsm"
    Et ensuite j'ai essayé ça bien sur ça ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("PMI.xlsm").Sheets(Feuil1).Cells.Copy Workbooks("RETARDPMI.xlsm").Sheets(Feuil2).Range("A1")
    Après avoir effectué cette action j'aurais souhaité enregistrer et fermer le classeur que j'ai ouvert ceci va fonctionner ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Application.Workbooks.Save "C:\BILAN TRIMESTRIEL\RETARDPMI.xlsm"
    Application.Workbooks.Close "C:\BILAN TRIMESTRIEL\RETARDPMI.xlsm"

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    il manque des guillemets dans ton code de copie...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim wkDest as workbook ' Classeur destinataire
     
    set wkDest = Application.Workbooks.Open ("C:\BILAN TRIMESTRIEL\RETARDPMI.xlsm") 
     
    ' le classeur PMI.xlsm contient ce code et est donc accessible par ThisWorkBook
    ThisWorkBook.Sheets("Feuil1").Cells.Copy wkDest.Sheets("Feuil2").Range("A1")
     
    wkDest.Close true 'Ferme en sauvant.

  7. #7
    Futur Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Avril 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Avril 2013
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    Salut Bbil ,
    quand j'exécute la macro sa plante Excel voilà ce que je lance ton code est à partir de la ligne 69

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    Sub PMI()
    '##############Définition des colonnes en format dates#####################
    Dim i As Long
    Dim stock As Date
    fin = Range("A3").End(xlDown).Row
     
    '##############Définition des colonnes en format dates#####################
    Columns("D:E").Select
    Selection.NumberFormat = "dd/MM/yyyy"
    Columns("F").Select
    Selection.NumberFormat = "General"
     
    '###############Transformation de la périodicité en jours##################
    For i = 3 To fin
        Cells(i, 6).Select
        If Cells(i, 6).Value = "4 Ans" Then
        Cells(i, 6).Value = "1460"
        End If
        If Cells(i, 6).Value = "3 Ans" Then
        Cells(i, 6).Value = "1095"
        End If
        If Cells(i, 6).Value = "2 Ans" Then
        Cells(i, 6).Value = "730"
        End If
        If Cells(i, 6).Value = "1 Ans" Then
        Cells(i, 6).Value = "365"
        End If
        If Cells(i, 6).Value = "18 Mois" Then
        Cells(i, 6).Value = "548"
        End If
        If Cells(i, 6).Value = "6 Mois" Then
        Cells(i, 6).Value = "183"
        End If
        If Cells(i, 6).Value = "4 Mois" Then
        Cells(i, 6).Value = "122"
        End If
    Next i
     
    '############### Réécriture de la date prochaine ##################
    For i = 3 To fin
            Cells(i, 5).Select
            Cells(i, 4).Select
            Cells(i, 6).Select
            If Cells(i, 5).Value = "-" Then
            Cells(i, 5).Value = Application.Sum(Cells(i, 4).Value, Cells(i, 6).Value)
            End If
    Next i
     
    '############### Définition de l'intervalle de travail ##################
    Const PR = vbLf & vbLf & "Entrer la date de ", TI = "   INTERVALLE"
        Dim DateDebut As Date, DateFin As Date, Dstock As Date
     
        D = InputBox(PR & "début  :", TI, "01/01/" & Year(Now))
        If IsDate(D) Then DateDebut = D Else Exit Sub
        D = InputBox(PR & "fin  :", TI, D):  If IsDate(D) Then DateFin = D
        If DateFin < DateDebut Then Beep: Exit Sub
        Application.ScreenUpdating = False
     
        For R = Cells(Rows.Count, 5).End(xlUp).Row To 2 Step -1
            If IsDate(Cells(R, 5)) Then
                Dstock = Cells(R, 5)
                If Dstock < DateDebut Or Dstock > DateFin Then Rows(R).Delete
            End If
        Next
     
        Application.ScreenUpdating = True
     
     
    '############### Copier les données dans d'autres classeurs ##################
    Dim wkDest As Workbook ' Classeur destinataire
     
    Set wkDest = Application.Workbooks.Open("H:\BILAN TRIMESTRIEL\RETARDPMI.xlsm")
     
    ' le classeur PMI.xlsm contient ce code et est donc accessible par ThisWorkBook
    ThisWorkbook.Sheets("Feuil1").Cells.Copy wkDest.Sheets(Feuil2).Range("A1")
     
    wkDest.Close True 'Ferme en sauvant
     
    End Sub

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    je ne comprends toujours pas "ça plante Excel" ... ? essai de nous dire ce qui se passe ...

    Attention j'ai corrigé mon code il manquait les guillemets autour de "Feuil2"

  9. #9
    Futur Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Avril 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Avril 2013
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    A peine lancé le code ça fait ça ( voir pièce jointe) je ferme je réouvre et le seul fait que ça soit écris fait beuguer la macro .

    J'ai essayé sans le code que Bbil m'a proposé et le programme fonctionne .
    Images attachées Images attachées  

  10. #10
    Futur Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Avril 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Avril 2013
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    ça y est j'ai enfin trouvé le hic il y avait trop de lignes dans la macro j'ai du créer une nouvelle macro merci bbil

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

Discussions similaires

  1. [VBA][Excel]Copier une feuille dans un nouveau classeur
    Par illight dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/10/2020, 12h51
  2. [XL-2003] copier coller une feuille excel
    Par safouunette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/01/2011, 09h25
  3. vba excel:copier le contenu d'une feuil dans une autre feuil
    Par yucf_miagiste dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/09/2007, 19h53
  4. Réponses: 1
    Dernier message: 19/12/2006, 16h12
  5. [VBA-Excel] copier plusieurs fois une colonne dans une feuille Excel
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 09/08/2006, 18h43

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