Extractions de données de fichiers excel

Fermé
borisparis Messages postés 79 Date d'inscription vendredi 21 août 2015 Statut Membre Dernière intervention 9 août 2023 - 11 oct. 2015 à 22:15
borisparis Messages postés 79 Date d'inscription vendredi 21 août 2015 Statut Membre Dernière intervention 9 août 2023 - 27 nov. 2015 à 09:33
Bonjour,

J'ai une centaine de fichiers contenant des variables situées toujours à la même place. Je souhaiterais extraire les valeurs de ces variables pour les mettre dans un seul fichier: une variable par colonne et une ligne par fichier initial.

Voici deux exemples de ces fichiers

https://www.cjoint.com/c/EJluoHv5xpO
https://www.cjoint.com/c/EJluelYUluO

J'ai mis en jaune les variables à extraire (les mêmes dans tous les fichiers biensur)

Quelqu'un peut-il m'aider ? Je ne suis pas doué en macro...

Merci



A voir également:

1 réponse

Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
12 oct. 2015 à 09:02
Bonjour,

1°/ : Souhaitez-vous que Excel ouvre également ce nouveau fichier pour y mettre les données ou le fichier excel existe déjà?

2°/ : Si le fichier excel où vous voulez mettre vos données existe déjà, pouvez vous le joindre? Et pouvez-vous me donner le chemin (C:\....) sur votre machine?

Cordialement.
0
borisparis Messages postés 79 Date d'inscription vendredi 21 août 2015 Statut Membre Dernière intervention 9 août 2023 1
12 oct. 2015 à 09:18
Non le fichier n'existe pas . je préfèrerais qu'il soit créé par le programme
Merci
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
Modifié par Kuartz le 12/10/2015 à 11:29
Voici le code que je viens de créer :

Sub Code()

Dim fichier_recap As Workbook, wb As Workbook, Ligne As Long

Set fichier_recap = Workbooks.Add
fichier_recap.SaveAs ("Récapitulatif.xls")
With fichier_recap
    .Sheets(1).Range("A1").Value = "Fichier"
    .Sheets(1).Range("B1").Value = "NOM Prénom"
    .Sheets(1).Range("C1").Value = "DDN"
    .Sheets(1).Range("D1").Value = "Sexe"
    .Sheets(1).Range("E1").Value = "Poids"
    .Sheets(1).Range("F1").Value = "Taille (cm)"
    .Sheets(1).Range("G1").Value = "SC"
    .Sheets(1).Range("H1").Value = "Clairance"
    .Sheets(1).Range("I1").Value = "Clairance / Inuline"
    .Sheets(1).Range("J1").Value = "Clairance normalisée"
End With

Ligne = 1

For Each wb In Workbooks
    If wb.Name <> "Récapitulatif.xls" Then
   Ligne = Ligne + 1
With fichier_recap.Sheets(1)
    .Cells(Ligne, 1).Value = wb.Name
    .Cells(Ligne, 2).Value = wb.Sheets(1).Range("B10").Value
    .Cells(Ligne, 3).Value = wb.Sheets(1).Range("D10").Value
    .Cells(Ligne, 4).Value = wb.Sheets(1).Range("F10").Value
    .Cells(Ligne, 5).Value = wb.Sheets(1).Range("B12").Value
    .Cells(Ligne, 6).Value = wb.Sheets(1).Range("D12").Value
    .Cells(Ligne, 7).Value = wb.Sheets(1).Range("F12").Value
    .Cells(Ligne, 8).Value = wb.Sheets(1).Range("B41").Value
    .Cells(Ligne, 9).Value = wb.Sheets(1).Range("C43").Value
    .Cells(Ligne, 10).Value = wb.Sheets(1).Range("C45").Value
End With
    End If
Next wb

End Sub


Ce code impose l'ouverture préalable de tous les fichier excel contenant les données. Et uniquement ces fichiers.

Le fichier exemple : https://www.cjoint.com/c/EJmjBZdxLef

Le fichier nommé "Récapitulatif" est enregistré dans "Mes documents".

Merci de me dire si ce code vous convient.

Cordialement.
0
borisparis Messages postés 79 Date d'inscription vendredi 21 août 2015 Statut Membre Dernière intervention 9 août 2023 1
12 oct. 2015 à 12:30
Merci
Ou dois-je mettre les fichiers sources pour qu'il les trouves ?
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
12 oct. 2015 à 13:59
Le code ci-dessus traite tous les fichiers excel ouverts. Donc il faut ouvrir tous les fichiers source. Il est également possible de tous les ouvrir au préalable si vous me donnez le chemin où ils se trouvent. Il faut cependant qu'il n'y ait dans ce dossier QUE vos fichiers source. Le chemin sera sous la forme (C:\....). Sinon le code marche si vous ouvrez tous vos fichiers source à traiter.
0
borisparis Messages postés 79 Date d'inscription vendredi 21 août 2015 Statut Membre Dernière intervention 9 août 2023 1
12 oct. 2015 à 17:48
Merci beaucoup . C'est vraiment parfait, même génial pour moi.
0