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 dans une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 5
    Par défaut Copier/coller dans une macro
    Bonjour, voici le code que j'ai trouvé sur le site et adapté à ma situation. Le but est de filtrer sur chaque commerciaux et extraire vers un autre fichier les données filtrées, puis enregistrer le classeur. Sauf que là, les données sont copiés dans un nouveau classeur. Or j'aimerais moi que mes données filtrés soient collés dans un de mes classeurs existant,et non pas dans un nouveau classeur. L'idéal serait que pour chaque commercial, les données filtrés soient copiés dans un classeur existant ( qui est sur mon bureau), puis enregistrer sous dans un répertoire. (avec le nom du commercial)


    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
    Option Explicit
     
    Sub Traitement()
     
    Dim CollMag As New Collection
    Dim Plage As Range
    Dim L As Long, L2 As Long, Lmax As Long
    Application.ScreenUpdating = False
    With Sheets("clients")
        Lmax = .Cells(Application.Rows.Count, 1).End(xlUp).Row
     
        On Error Resume Next
        For L = 2 To Lmax
            CollMag.Add .Cells(L, 2).Text, .Cells(L, 2).Text
        Next L
        On Error GoTo 0
        'Création des classeurs
        For L = 3 To CollMag.Count
            'Copie de l'onglet
            .Copy
     
            With ActiveSheet
                Set Plage = .Rows(Application.Rows.Count)
                For L2 = 4 To Lmax
                    If .Cells(L2, 2).Text <> CollMag(L) Then
                        Set Plage = Union(Plage, .Rows(L2))
                    End If
                Next L2
                Plage.Delete
            End With
            'Sauvegarde classeur "magasin X"
            With ActiveWorkbook
                .SaveAs ThisWorkbook.Path & "\Mag " & CollMag(L) & ".xls"
                 .Close
            End With
        Next L
    End With
    End Sub
    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 422
    Par défaut
    Bonjour,

    Une façon de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ...
    'Sauvegarde classeur "magasin X"
    CopySheet ActiveSheet, ThisWorkbook.Path & "\Mag " & CollMag(L) & ".xlsx"
    ...
     
    Sub CopySheet(wshA As Worksheet, sWBPath As String)
       Dim wbB As Workbook
       Application.ScreenUpdating = False
       Set wbB = Workbooks.Open(sWBPath)  '--- et erreur si fichier n'existe pas
       wshA.Copy Before:=wbB.Sheets(1)
       wbB.Close SaveChanges:=True
       Application.ScreenUpdating = True
    End Sub
    A noter qu'il faut que l'extension du fichier de destination soit du même genre que le fichier de départ (.xlm >> .xlm, .xls ; .xlsm >> .xlsm, .xlsx).


    Bonne continuation.

Discussions similaires

  1. [XL-2013] Copier Coller dans une macro.
    Par namora dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 17/04/2015, 11h27
  2. Macro copier coller dans une autre feuille
    Par olivverte dans le forum Excel
    Réponses: 23
    Dernier message: 17/12/2013, 14h35
  3. recherche dans une base de donnees; copier coller via une macro
    Par yannlvr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/04/2010, 17h58
  4. JTree : copier, coller dans une feuille.
    Par sricard dans le forum Composants
    Réponses: 2
    Dernier message: 28/09/2006, 07h35
  5. gerer le copier/coller dans une richEdit
    Par SBP dans le forum MFC
    Réponses: 4
    Dernier message: 10/02/2005, 21h00

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