Microsoft 365 Récupérer des données dans 1484 fichiers excel

Ahm

XLDnaute Junior
Bonjour,

J'aimerais solliciter votre aide pour récupérer des données de 1484 fichiers ranger dans un dossier. Les fichiers sont nommés index (1).xhtml jusqu'à index (1484).xhtml
Les fichiers ont une feuille (Feuille1) avec deux colonnes: colonne A = Propriété et colonne B=Valeur

Dans mon fichier unique, j'aimerai obtenir 1482 lignes. Chaque ligne reprendra 5 données de chaque fichier, réparties sur 5 colonnes:
Colonne 1: copier la valeur de la cellule (colonne B) à droite la cellule (colonne A) contenant Date de dépôt
Colonne 2: copier la valeur de la cellule (colonne B) à droite de la cellule (colonne A) contenant Identifiant de publication
Colonne 3: copier la valeur de la cellule (colonne B) à droite de la cellule (colonne A) contenant Prix demandé
Colonne 4: copier la valeur de la cellule A1
Colonne 5: copier la valeur de la cellule A5

Merci par avance, j'essaye de bidouiller quelque chose depuis 1h et impossible d'arriver à quelque chose de simple sans macro ou vba.
 

Ahm

XLDnaute Junior
Voici un fichier index exemple (je l'ai passé en xlsx pour pouvoir l'uploader).
La difficulté pour moi est surtout pour les 3 premières données qui ne sont pas toujours aux lignes A9, A16 et A17 (toujours A par contre).
Merci.
 

Pièces jointes

  • index (4).xlsx
    5.6 KB · Affichages: 23

R@chid

XLDnaute Barbatruc
Stp,
on demande un fichier exemple, ça veut dire qu'il doit être identique au fichier réel, je ne peux pas travailler sur fichier avec une date xxd et prix cc.
Une date doit être une date, un prix doit être un nombre décimale etc.
D'où la nécessité d'anomnymiser 3 ou 4 fichiers et les déposer le forum (anonymiser veut dire modifier les noms et les numéros de téléphones les adresses postales ou adresses mails, et nous préciser exactement les données à récupérer c'est pas comme tu l'as écrit la colonne B qui est à coté de la colonne A on sait très bien que la colonne B et juste à coté de la colonne A.
Il faut dire :
Nom
Date
Prix
Etc. Etc.

Cordialement
 

Ahm

XLDnaute Junior
D'accord. Voici un zip avec quelques fichiers.
Dans mon fichier unique, j'aimerai obtenir 1482 lignes. Chaque ligne reprendra 5 données de chaque fichier, réparties sur 5 colonnes:
Colonne 1: copier la valeur correspondante à la cellule Date de dépôt*
Colonne 2: copier la valeur correspondante à de la cellule Identifiant de publication*
Colonne 3: copier la valeur correspondante à de la cellule Prix demandé*
Colonne 4: copier la valeur de la cellule A1
Colonne 5: copier la valeur de la cellule A5

*jamais à la même ligne

Merci !
 

Pièces jointes

  • index.zip
    7 KB · Affichages: 11

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Dans le fichier joint vous trouverez une Requête power query qui extrait vos données du répertoire index.

Avant d'actualiser la requête :

Dans l'éditeur power query dans la requête nommée 'index', à l'étape source de la requête, changez le chemin vers le répertoire des fichiers.

Colonne 4: copier la valeur de la cellule A1
Colonne 5: copier la valeur de la cellule A5

je ne vois pas de quelles cellules de quel fichier excel vous parlez !

Cordialement
 

Pièces jointes

  • Importation-Indexes.xlsx
    20.1 KB · Affichages: 9
Dernière édition:

R@chid

XLDnaute Barbatruc
Bonjour @ tous,
Salut Robolchon,
moi de ma part comme Robolchon je n'ai pas bien compris que voulais-tu dire par.
Colonne 4: copier la valeur de la cellule A1
Colonne 5: copier la valeur de la cellule A5

Une variante par PowerQuery voir PJ.

Une fois le fichier ouvert, va sur l'onglet données / afficher les requêtes
Ahm_01.jpg


Bouton droit sur la requête TableDonnées / Modifier
Ahm_02.jpg


Va sur source / là tu dois parcourir ton dossier.
Ahm_03.jpg


Puis sur l'onglet Accueil / Fermer et Charger.


Cordialement
 

Pièces jointes

  • Ahm_PowerQuery_V1.xlsx
    16.8 KB · Affichages: 10

Ahm

XLDnaute Junior
@R@chid
J'ai une erreur dans l'éditeur Power Query
Une erreur s'est produite dans la requête « RecupDonnees ». Expression.Error : Désolé... Nous n'avons pas trouvé la colonne « Column1 » de la table.
Détails :
Column1


@Roblochon
Idem:
Expression.Error : Désolé... Nous n'avons pas trouvé la colonne « Column1 » de la table.
Détails :
Column1
 

job75

XLDnaute Barbatruc
Bonjour Ahm, sylvanu, R@chid, Roblochon,

En VBA je ne vois pas d'autre solution que d'ouvrir les fichiers .xhtml un par un :
VB:
Sub Importer()
Dim chemin$, fichier$, F As Worksheet, lig&, a()
chemin = ThisWorkbook.Path & "\" 'dossier à adapter
fichier = Dir(chemin & "*.xhtml") '1er fichier du dossier
Set F = Feuil1 'CodeName
Application.ScreenUpdating = False
On Error Resume Next 'si des données ne sont pas trouvées
F.Range("A2:E" & F.Rows.Count).ClearContents 'RAZ
lig = 2
While fichier <> ""
    Workbooks.Open chemin & fichier 'ouverture du fichier
    ReDim a(1 To 5)
    a(1) = CDate(Application.VLookup("Date*", Columns("A:B"), 2, 0))
    a(2) = Application.VLookup("Identifiant*", Columns("A:B"), 2, 0)
    a(3) = Application.VLookup("Prix*", Columns("A:B"), 2, 0)
    a(3) = Val(Replace(Replace(a(3), "[", ""), "]", ""))
    a(4) = Cells(1)
    a(5) = Cells(5, 1)
    F.Cells(lig, 1).Resize(, 5) = a
    ActiveWorkbook.Close 'fermeture du fichier
    lig = lig + 1
    fichier = Dir 'fichier suivant
Wend
F.Columns("A:E").AutoFit 'ajustement largeurs
End Sub
Chez moi avec 4 fichiers .xhtml l'import se fait en 1,1 seconde.

Avec 1484 fichiers il faudra compter environ 7 minutes...

Edit : j'ai créé 1484 fichiers .xhtml, la macro s'exécute en 8 minutes (481 secondes).

A+
 

Pièces jointes

  • Index.zip
    23.4 KB · Affichages: 5
Dernière édition:

R@chid

XLDnaute Barbatruc
Bonsoir @ tous,
Salut Job75,
@R@chid
J'ai une erreur dans l'éditeur Power Query
Une erreur s'est produite dans la requête « RecupDonnees ». Expression.Error : Désolé... Nous n'avons pas trouvé la colonne « Column1 » de la table.
Détails :
Column1
Apparemment tes fichiers originaux n'ont pas la même structure que ceux envoyés sur le forum.
Si ce n'est pas le cas, essaye de nous faire une capture d’écran sur l'étape où l'erreur apparait pour que l'on puisse voir de plus près.

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 030
Messages
2 084 780
Membres
102 664
dernier inscrit
LudovicF