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 une feuille excel [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 12
    Points : 11
    Points
    11
    Par défaut copier coller une feuille excel
    Bonjour,
    je veux créer une macro qui me copie une feuille d'un fichier du jour dont la case A1 de la premiere feuille contient la valeur de la forme (jj/mm/aaaa).
    La macro cherchant un fichier .xls ayant le nom "aaaa" qui est l'année dans un dossier s'il le trouve on rentre à la boucle et s'il n'existe pas on le crée. une fois dans le fichier on cherche dans les onglets excel qui sont dedans et chercher: s'il ya un onglet ayant un nom du mois - termine par "mm"- on rentre dans la boucle sinon on crée un.
    j'ai commencé à coder mais je me trouve dans des boucles!! et je ne vois pas la structure du truc!
    Merci de me donner des avis s'il y en a.
    Saf

  2. #2
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Salut,
    Je ne comprends pas du tout ce que tu veux faire...
    Je pense que tu vas devoir traiter le problème en plusieurs étapes sans vouloir tout faire d'un coup.
    Par exemple, tu peux commencer à élaborer une macro qui copiera ton onglet suivant les conditions que tu souhaites.
    Ensuite tu fais une autre macro qui ira rechercher le fichier aaaa etc...

    Mais pour le moment il faut que tu explique plus clairement ton souhait.
    Je te propose de commencer par expliquer Comment copier et Ou copier et en fonction de quoi?

    Cordialement.

  3. #3
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Un exemple complet pour ouvrir (ou créer) un fichier année et copier des données vers la feuille mois de ce fichier (la créer si elle n'existe pas)
    La macro est à mettre dans le fichier journalier
    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
    Sub Archivage()
    Dim wbk As Workbook
    Dim aSh As Worksheet, Sh As Worksheet
    Dim Dossier As String, Fichier As String, Feuille As String
     
    Dossier = "C:\Documents and Settings\Administrateur\Bureau\DossierTest\"    'Dossier de recherche
    Application.ScreenUpdating = False
    Set aSh = ThisWorkbook.Worksheets(1)                                            'aSh feuille 1 du classeur actuel
    If IsDate(aSh.Range("A1").Value) Then
        Fichier = Dossier & Year(aSh.Range("A1").Value) & ".xls"                    'Nom du fichier à ouvrir ou créer
        'Feuille = CStr(Month(aSh.Range("A1").Value))                                'Nom de la feuille correspondant au mois 1,2...
        'ou bien
        'Feuille ="Texte"& format(Month(aSh.Range("A1").Value),"mm")                ''Nom de la feuille correspondant au mois Texte01, Texte02...
        'ou bien
        Feuille = MonthName(Month(aSh.Range("A1").Value))                            'Nom de la feuille correspondant au mois janvier, fevrier...
        On Error Resume Next
        Set wbk = Workbooks.Open(Fichier)                                           'On ouvre le fichier (s'il n'existe pas wbk reste vide
        On Error GoTo 0
        If wbk Is Nothing Then                                                      'Si wbk est vide càd fichier inexistant
            Set wbk = Workbooks.Add(1)                                              'On crée un nouveau fichier avec une seule feuille
            Set Sh = wbk.Worksheets(1)                                              'Sh feuille unique de ce nouveau classeur
            Sh.Name = Feuille                                                       'on nomme cette feuille
        Else                                                                        'Si wbk est non vide, le fichier à ouvrir est ouvert
            On Error Resume Next
            Set Sh = Worksheets(Feuille)                                            'on cherche la feuille du mois (si elle n'existe pas Sh reste vide)
            On Error GoTo 0
            If Sh Is Nothing Then                                                   'si Sh est vide càd feuille n'existe pas
                Set Sh = wbk.Worksheets.Add(after:=wbk.Sheets(wbk.Sheets.Count))    'on ajoute une feuille à la fin du fichier ouvert wbk
                Sh.Name = Feuille                                                   'on la nomme
            End If
        End If
        '----------------------------------------------------A ce stade on a le fichier ouvert avec le feuille du mois
        aSh.Range("A1:D20").Copy Sh.Range("A1")                                     'par exemple on copie A1:D20 du fichier du jour vers la feuille
        'ICI ON MET NOTRE CODE avec les variables feuilles aSh (feuille de départ) et Sh (feuille du mois dans le classeur de l'année
        '----------------------------------------------------
        ChDir Dossier                                                               'on change le repertoire
        Application.DisplayAlerts = False
        wbk.SaveAs Year(aSh.Range("A1").Value) & ".xls"                             'on sauveagrade le fichier
        Application.DisplayAlerts = True
        wbk.Close                                                                   'on le ferme
        Set wbk = Nothing
        Set Sh = Nothing
    End If
    Set aSh = Nothing
    End Sub

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    bonjour à tous,
    mercatog c'est exactement ce que je cherchais!
    Merci mille fois
    cordialement

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/05/2015, 16h25
  2. [XL-2007] Copier coller une ligne excel sur autre feuille avec conditions
    Par amstelveen dans le forum Excel
    Réponses: 5
    Dernier message: 11/05/2009, 18h54
  3. Réponses: 3
    Dernier message: 15/12/2008, 15h46
  4. Réponses: 2
    Dernier message: 10/09/2007, 16h40
  5. Réponses: 1
    Dernier message: 19/12/2006, 16h12

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