Extraire colonnes par description de colonne

Bonjour,

J'ai un fichier Excel que je reçois à tous les mois et qui a 38 colonnes et environ 1500 lignes que je dois intégrer dans un onglet dans un fichier Excel.

Les colonnes du fichier que je reçois ne sont pas toujours situées à la même place ex: la colonne "Qté vendue" peut être en colonne B et le mois suivant se trouver en colonne D; mais la description de l'entête de colonne demeure toujours la même.

Je veux extraire 8 colonnes parmi les 38 colonnes du fichier fourni. (J'ai mis les colonnes en jaune dans mon fichier exemple.)

Comment faire en se basant sur la description des entêtes de colonnes pour extraire rapidement les 8 colonnes désirées.

Merci,

Oiseau bleu

Bonsoir à tous !

Une proposition (très basique) via Power Query (avec une table de correspondance des champs à conserver) :

La table source pourrait être externalisée.

Bonjour et merci pour votre réponse.

Je ne suis pas très familier avec Power Query.

Je ne sais pas comment à partir d'un fichier que je reçois, récupérer ce fichier qui peut être sur différents répertoire, le traiter avec Power Query et avoir le résultat dans un onglet à la suite du résultat de mois précédent?

J'aurais besoin de plus d'informations.

Merci,

Oiseau bleu

Bonjour à tous de nouveau !

Version 2 pour intégrer des données externes à un historique.

Voir la feuille "Paramètres" pour le chemin du classeur à intégrer et les champs à conserver.

Bonjour et merci pour les réponses.

Le problème c'est que je ne sait pas du tout comment procéder pour faire tout ça avec Power Query.

Avez-vous un guide qui m'explique comment réaliser tout ça?

Y-a-t-il possibilité au lieu d'inscrire un répertoire dans un onglet que la personne choisisse directement le répertoire et le fichier qu'elle veut récupérer?

Merci,

Oiseau bleu

Bonjour à tous de nouveau !

Si le chemin du classeur à analyser est renseigné dans la feuille "Paramètres", une simple actualisation (via le ruban) retournera les données retraitées.

Pour l'apprentissage, sachez qu'il existe une multitude de tutoriels dur le Net pour vous accompagner dans les premiers pas.

Concernant le choix du fichier, il faudra en passer par VBA.
Toutefois pour un répertoire donné, Power Query peut traiter un classeur particulier en fonction des dates/heures (exemple : intégrer le classeur le plus récent).

Bonjour et merci pour les réponses,

J'aimerais savoir s'il y a une façon d'arriver à la même solution en utilisant VBA et pas Power Query ?

Merci,

Oiseau bleu

Bonjour à tous !

Une solution VBA ? Je pense que c'est facilement réalisable pour un amoureux de cet outil.

Cependant :

  • C'est regrettable que cette direction soit précisée aussi tardivement. J'ai perdu mon temps à œuvrer alors même que votre besoin était sans intérêt technique pour moi.
  • C'est méconnaître que l'essence même de Power Query est de pouvoir se connecter à moult formats extérieurs pour en retraiter les données. Ne pas être curieux d'un outil spécialisé est bien dommageable.

Je vous souhaite bonne chance pour la suite. Une âme charitable devrait pouvoir vous concocter rapidement un code (qui vous sera tout aussi étranger que Power Query...).

Bonjour,
Une proposition VBA à adapter.
Cdlt.

Option Explicit

Public Sub CreateTable()
Dim wb As Workbook
Dim wsData As Worksheet, wsTable As Worksheet
Dim lastCol As Long, lCol As Long
Dim lo As ListObject

    Application.ScreenUpdating = False
    ActiveWindow.DisplayGridlines = False

    Set wb = ActiveWorkbook
    Set wsData = wb.Worksheets(1)

    With wsData
        lastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
        For lCol = lastCol To 1 Step -1
            Select Case .Cells(lCol).Value
                Case "Date fact.", "Qté vendue", "$ coûtant unit.", "$ vendant", "Produit (desc.)", "Escompte", "Client", "NoProduit", "TypeClient":
                Case Else: .Cells(lCol).EntireColumn.Delete
            End Select
        Next lCol
        Set lo = .ListObjects.Add(xlSrcRange, .Cells(1).CurrentRegion, , xlYes)
        With lo
            .Name = "T_Data"
            .TableStyle = "TableStyleLight1"
            .ShowTableStyleRowStripes = False
            .ShowAutoFilterDropDown = False
        End With
    End With

End Sub

Bonjour à tous,

Avec des formules :

Il faut peut-être valider les formules matriciellement (Ctrl+Maj+Entrée).

Daniel

Bonjour à tous !

Une solution VBA ? Je pense que c'est facilement réalisable pour un amoureux de cet outil.

Cependant :

  • C'est regrettable que cette direction soit précisée aussi tardivement. J'ai perdu mon temps à œuvrer alors même que votre besoin était sans intérêt technique pour moi.
  • C'est méconnaître que l'essence même de Power Query est de pouvoir se connecter à moult formats extérieurs pour en retraiter les données. Ne pas être curieux d'un outil spécialisé est bien dommageable.

Je vous souhaite bonne chance pour la suite. Une âme charitable devrait pouvoir vous concocter rapidement un code (qui vous sera tout aussi étranger que Power Query...).

Bonjour JFL,

Je peux vous rassurer que vous n'avez pas perdu votre temps, car vos interventions sur ce post aideront ceux qui optent pour l'utilisation de Power Query, et qui auraient une problématique similaire.

Je reste assidu à vos retours, et je ne pense pas être le seul.

Cordialement,

Bonjour et merci pour vos réponses.

Avec vos interventions, le problèmes est résolu.

Merci à JLF et désolé l'apprentissage de Power Query c'est sur du long terme et pour l'instant je devais avoir une façon de faire rapide.

Merci encore,

Oiseau bleu

Rechercher des sujets similaires à "extraire colonnes description colonne"