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 :

Extraire ligne classeur contenant texte avec liste chemin&fichier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1
    Par défaut Extraire ligne classeur contenant texte avec liste chemin&fichier
    Bonjour à tous,

    J'ai énormément de mal à mettre au point un code d'extraction de données.

    Je dispose d'un dossier avec plusieurs sous dossiers dans lesquels se trouvent des classeurs excel en nombre aléatoire.
    Tous ces classeurs sont tramés de la même façon.

    Un code qui me permet de lister sur la colonne "D" de la feuil1 du classeur le Chemin&fichier de tous les éléments dans lesquels je veux extraire des données

    Dans le feuil2 j'essaie de mettre au point un code qui à partir de la liste des Chemins&fichiers pourrait m'extraire de chaque élément les lignes de l'onglet "MAQUETTE" dans lesquelles il y a inscrit "Sous total*".

    Cependant, le nombre de lignes contenant "Sous-total" est différent dans chaque fichier, le code doit donc insérer un nombre de lignes en fonction.

    Pour ce faire, je repars de ce code :

    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
     
     
    Sub recup()
     
    Set f = ThisWorkbook.Sheets("Feuil1")
    'parcourir la colonne 4 (à partir de la ligne 7, jusqu'à la dernière cellule non-vide de cette même colonne)
    For lig = 7 To f.Cells(Rows.Count, 4).End(xlUp).Row
    'ouvrir chaque fichier dont le chemin d'accès et le nom sont renseignés en colonne D
       Workbooks.Open Filename:=f.Cells(lig, 4)
    'recopier en colonne F et G de ton fichier (celui contenant la macro), le contenu des cellules A16 et A19, d'une feuille nommée "MAQUETTE DEVIS" dans le ficher qui vient d'être ouvert
       ThisWorkbook.Sheets(2).Cells(lig, 3) = ActiveWorkbook.Sheets("MAQUETTE DEVIS").[A18]
        ThisWorkbook.Sheets(2).Cells(lig, 4) = ActiveWorkbook.Sheets("MAQUETTE DEVIS").[A19]
     
        'ThisWorkbook.Sheets(2).Cells(lig, 3) = WorksheetFunction.VLookup(("Sous total").Value, ActiveWorkbook.Sheets("Détail*").Range("A1:J65000"), 2, False)
     
    'refermer le fichier (celui dont le nom figure en colonne D)
       ActiveWorkbook.Close savechanges:=False
    Next lig
    End Sub
    je pense qu'avec le code vlookup cela pourrait etre possible mais je n'arrive pas a le finaliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ThisWorkbook.Sheets(2).Cells(lig, 3) = ActiveWorkbook.Sheets("détail (A) (2)").Application.WorksheetFunction.VLookup("Sous total Logistique", Range("A1:J50"), 2)
    il marche uniquement lorsque la valeur proche n'est pas rentré et ne m'extrait donc pas les bonnes valeurs


    Merci d'avance pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Teste de cette façon pour voir (pas testé de mon coté !) :
    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
     
    Sub recup()
     
        Dim ClsRecup As Workbook
        Dim ClsSource As Workbook
        Dim F As Worksheet
        Dim Plage As Range
     
        Set ClsRecup = ThisWorkbook
     
        Set F = ClsRecup.Worksheets("Feuil1")
     
        'parcourir la colonne 4 (à partir de la ligne 7, jusqu'à la dernière cellule non-vide de cette même colonne)
        For lig = 7 To F.Cells(Rows.Count, 4).End(xlUp).Row
     
            'ouvrir chaque fichier dont le chemin d'accès et le nom sont renseignés en colonne D
            Set ClsSource = Workbooks.Open(F.Cells(lig, 4))
     
            'recopier en colonne F et G de ton fichier (celui contenant la macro), le contenu des cellules A16 et A19, d'une feuille nommée "MAQUETTE DEVIS" dans le ficher qui vient d'être ouvert
            With ClsRecup.Worksheets(2)
     
                .Cells(lig, 3) = ClsSource.Worksheets("MAQUETTE DEVIS").Range("A18").Value
                .Cells(lig, 4) = ClsSource.Worksheets("MAQUETTE DEVIS").Range("A19").Value
     
                Set Plage = ClsSource.Sheets("détail (A) (2)").Range("A1:J50")
                .Cells(lig, 3) = WorksheetFunction.VLookup("Sous total Logistique", Plage, 2, False)
     
            End With
     
            'refermer le fichier (celui dont le nom figure en colonne D)
            ClsSource.Close False
     
        Next lig
     
    End Sub

Discussions similaires

  1. [XL-2007] Macro importer un fichier texte avec un chemin relatif
    Par oekoniko dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 06/04/2015, 18h31
  2. [AC-2007] Synchronisation zone de texte avec liste déroulante
    Par carine90 dans le forum Access
    Réponses: 1
    Dernier message: 24/04/2013, 14h05
  3. Réponses: 9
    Dernier message: 23/08/2010, 15h41
  4. [AC-2007] Requête sur un champ texte avec liste de choix
    Par chrisbou dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 03/03/2010, 12h00
  5. Probléme avec un chemin de fichier
    Par chebmo90 dans le forum Débuter
    Réponses: 5
    Dernier message: 22/07/2009, 12h19

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