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 :

lister des cellules d'une fichier à un autre [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    1 247
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 247
    Par défaut lister des cellules d'une fichier à un autre
    Bonjour,

    J'ai crée un petit code vba qui me permet de selectionner une valeur de cellule dans plusieurs fichiers d'une même repertoir et de coller ces valeur dans un autre fichier excel ( copie en colonne B).
    La valeur à copier se trouve toujours dans la cellule E12 des fichiers (onglet "Livraison Conforme).

    On me demande maintenant de selectionner également la date de ces même fichiers et de les coller dans le fichier excel (colonne A ).
    La date à copier se trouve toujours dans la cellule E9 des fichiers du même repertoire.

    Or je ne sais pas comment selectionner en même temps deux cellules d'une même fichier et de coller ces cellules dans le fichier excel en sachant que la cellule date doit etre en B1 et la valeur en A1..

    Voici le code vba que j'ai crée pour selectionner uniquement la valeur contenue dans la cellule E12

    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
    Sub Transferer()
     
    Dim jour As Date
    Dim dossier As Object, Fichier As Object, Chemin As String, Lg As Integer
    Application.ScreenUpdating = False
    Application.DisplayAlerts = True
     
    DerLg = Range("B65536").End(xlUp).Row + 1
     
    Range("B2:B" & DerLg).Delete
     
     
    Chemin = "P:adresse du repertoire"
    FName = Dir(Chemin & "\" & "*.xls")
    Set dossier = CreateObject("Scripting.FileSystemObject").GetFolder(Chemin)
    Lg = 2
     
     
     
    For Each Fichier In dossier.Files
    NomFichier = Fichier.Name
    If Not Fichier.Name = "fichier excel.xls" Then
    Workbooks.Open Filename:=Chemin & "/" & NomFichier
     
    On Error Resume Next
     
    With Workbooks(NomFichier)
    .Sheets("Livraison Conforme").Range("E11").Copy
    .Close False
     
     
    Workbooks("fichier excel.xls").Worksheets("feuil1").Activate
    Range("B" & Lg).PasteSpecial
     
    Lg = Lg + 1
     
     
    End With
     
    Lg = Lg + 1
     
     
    End If
     
    Next
     
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    En supposant que la macro est dans le fichier "fichier excel.xls", plutôt que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    With Workbooks(NomFichier)
    .Sheets("Livraison Conforme").Range("E11").Copy
    .Close False
     
    Workbooks("fichier excel.xls").Worksheets("feuil1").Activate
    Range("B" & Lg).PasteSpecial
     
    Lg = Lg + 1
     
    End With
    Peut-être essayer comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Workbooks("fichier excel.xls").Worksheets("feuil1").Range("A" & Lg) = ActiveWorkbook.Sheets("Livraison Conforme").Range("E12")
    Workbooks("fichier excel.xls").Worksheets("feuil1").Range("B" & Lg) = ActiveWorkbook.Sheets("Livraison Conforme").Range("E9")
    Lg = Lg + 1
    ActiveWorkbook.Close False

  3. #3
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    1 247
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 247
    Par défaut
    Bonjour Parmi

    ma macro se trouve dans le PERSO.xls

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Tu peux aussi y aller avec les noms des workbooks plutôt que ActiveWorkbook ou ThisWorkbook.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Workbooks("fichier excel.xls").Worksheets("feuil1").Range("A" & Lg) = Workbooks(NomFichier).Sheets("Livraison Conforme").Range("E12")
    Workbooks("fichier excel.xls").Worksheets("feuil1").Range("B" & Lg) = Workbooks(NomFichier).Sheets("Livraison Conforme").Range("E9")
    Lg = Lg + 1
    Workbooks(NomFichier).Close False

  5. #5
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    1 247
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 247
    Par défaut
    Parmi,

    On a eu la même approche ...voila ceque j'ai fait ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    With Workbooks(NomFichier)
    .Sheets("Livraison Conforme").Range("E11").Copy Workbooks("fichier excel.xls").Worksheets("feuil1").Range("B" & Lg)
    .Sheets("Livraison Conforme").Range("E9").Copy Workbooks("fichier excel.xls").Worksheets("feuil1").Range("A" & Lg)
    .Close False
     
    Lg = Lg + 1
     
    End With
     
    End If
     
    Next
    Et merci encore de ton soutien Parmi

  6. #6
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    1 247
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 247
    Par défaut
    Bonjour parmi,

    je reviens vers toi pour une aide à cette macro qui liste les cellules d'une feuille excel vers une autre feuilles Excel.

    je resume ce que j'ai fait:
    J'ai crée une macro qui me permet de selectionner les valeurs des cellule E9 (cellule date) et E12 (cellule valeurs) dans plusieurs fichiers d'un même repertoire et de les coller dans un autre fichier excel.
    Ces fichiers Excel sont classés dans le repertoir de cette manière :
    "bordereau du yymmjj".
    Il faut savoir que ce repertoire contient les fichiers Excel depuis 2010; ce qui sous entend que le repertoir contient les "bordereau du 100102" au "bordereau du 140213".

    Le service production souhaite recevoir chaque debut de mois , la liste des cellules E9 et E12 pour le mois écoulé.

    Comment inserer dans ma macro un bout de code où je demanderais de copier les cellules E9 et E12 des bordereaux commençant par 1401 ou 1402 etc...

    Est ce possible ?...

    Voici ma 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Sub Transferer()
     
    Dim jour As Date
    Dim dossier As Object, Fichier As Object, Chemin As String, Lg As Integer
    Application.ScreenUpdating = False
    Application.DisplayAlerts = True
     
    DerLg = Range("B65536").End(xlUp).Row + 1
     
    Range("B2:B" & DerLg).Delete
     
     
    Chemin = "P:adresse du repertoire"
    FName = Dir(Chemin & "\" & "*.xls")
    Set dossier = CreateObject("Scripting.FileSystemObject").GetFolder(Chemin)
    Lg = 2
     
     
     
    For Each Fichier In dossier.Files
    NomFichier = Fichier.Name
    If Not Fichier.Name = "fichier excel.xls" Then
    Workbooks.Open Filename:=Chemin & "/" & NomFichier
     
    On Error Resume Next
     
    With Workbooks(NomFichier)
    .Sheets("Livraison Conforme").Range("E11").Copy Workbooks("fichier excel.xls").Worksheets("feuil1").Range("B" & Lg)
    .Sheets("Livraison Conforme").Range("E9").Copy Workbooks("fichier excel.xls").Worksheets("feuil1").Range("A" & Lg)
    .Close False
     
    Lg = Lg + 1
     
    End With
     
    End If
     
    End Sub .

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/02/2015, 13h34
  2. copier des cellule d'une feuille vers une autre feuille
    Par DIDIDIDA dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/04/2008, 12h13
  3. Macro copier des cellules d'un fichier à l'autre
    Par Tof XXX dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 12/01/2008, 13h45
  4. copier des cellules d'une feuille dans une autres sous condition
    Par olivertwist dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/05/2007, 10h42
  5. [VBA-E]Trouver et recopier des cellules d'une feuille à une autre
    Par sk8bcn dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/08/2006, 16h01

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