Microsoft 365 récupérer des colonnes d'une table Excel extraite d'une BDD

  • Initiateur de la discussion Initiateur de la discussion jeromegagne
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jeromegagne

XLDnaute Nouveau
Bonjour,
je souhaiterais connaitre une astuce afin de récupérer des colonnes issue d'une extraction de table d'une base de données.
Les colonnes à récupérer ont toujours le même nom. je les ai surligné en jaune
Auriez vous une idée de comment procéder ?

Cordialement;
Jérôme
 

Pièces jointes

Solution
Bonsoir @jeromegagne 🙂, @Danixdb 😉,
Bienvenue sur XLD 🙂,

Une version VBA :
  • cliquer sur le bouton Hop! de la feuille "Result"
  • le code est dans module1
  • la constante cols contient les en-têtes des colonnes à extraire séparés par un point-virgule (à vous d'adapter à votre cas)
  • pour le test TOTO est une colonne à extraire qui n'existe pas

Le code :
VB:
Sub test()
Const cols = "CODE_WORKORDER;DESCRIPTION;REALENDDATE;TOTO;PRIORITY;STATUS;FK_CODE_SITE;TARGENDDATE"
Dim s, entete, col&, n&, derlig&

   Application.ScreenUpdating = False
   s = Split(cols, ";")
   With Sheets("TBL_WORKORDER")
      derlig = .UsedRange.Row + .UsedRange.Rows.Count - 1...
Bonjour jeromegagne, Le Forum,

Avec Office 365, l'utilisation de Power query répondrait à votre demande, cet outil permet de se connecter à des sources diverses et variées (SQL Server, Access, fichier excel, fichiers CSV et TXT,.......)
Choisir dans le menu Données d'Excel, la source de données, ce qui générera une requête sur la table sélectionnée avec une vision de tous les champs de celle-ci, vous n'aurez plus qu'à supprimer tous les champs que vous ne souhaitez pas récupérer, changer le type de ceux restants (type des données texte, date, nombre, nombre décimal,.....).
Cet outil encore peu utiliser en France, est pourtant très performant, évite parfois l'écriture de macros complexes, nos confrères outre atlantique l'utilise beaucoup et on trouve sur le Net des vidéos expliquant comment l'utiliser.
Cordialement
DanixDB
 
Bonsoir @jeromegagne 🙂, @Danixdb 😉,
Bienvenue sur XLD 🙂,

Une version VBA :
  • cliquer sur le bouton Hop! de la feuille "Result"
  • le code est dans module1
  • la constante cols contient les en-têtes des colonnes à extraire séparés par un point-virgule (à vous d'adapter à votre cas)
  • pour le test TOTO est une colonne à extraire qui n'existe pas

Le code :
VB:
Sub test()
Const cols = "CODE_WORKORDER;DESCRIPTION;REALENDDATE;TOTO;PRIORITY;STATUS;FK_CODE_SITE;TARGENDDATE"
Dim s, entete, col&, n&, derlig&

   Application.ScreenUpdating = False
   s = Split(cols, ";")
   With Sheets("TBL_WORKORDER")
      derlig = .UsedRange.Row + .UsedRange.Rows.Count - 1
      Sheets("Result").Columns.Clear
      Sheets("Result").Rows(1).Font.ColorIndex = xlColorIndexAutomatic
      On Error Resume Next
      For Each entete In s
         col = 0
         col = Application.Match(entete, Sheets("TBL_WORKORDER").Rows(1), 0)
         If col = 0 Then
            n = n + 1
            Sheets("Result").Cells(1, n) = entete & " ?"
            Sheets("Result").Cells(1, n).Font.Color = RGB(255, 0, 0)
         Else
            n = n + 1
            .Columns(col).Resize(derlig).Copy Sheets("Result").Cells(1, n)
         End If
      Next entete
      On Error GoTo 0
      Application.Goto Sheets("Result").Cells(1, 1), True
   End With
End Sub
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour