MessageBox en tableau Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
C
Cac0
Jeune membre
Jeune membre
Messages : 24
Inscrit le : 16 mai 2019
Version d'Excel : 2013

Message par Cac0 » 23 mai 2019, 09:55

Bonjour à tous,

Je reviens une nouvelle fois avec une question plus simple car j'ai vraiment besoin de votre aide. ::(

Auriez un code à me proposer pour cette situation :

Je voudrais en appuyant sur un bouton situé sur mon UserForm que cela m'affiche un MessageBox. Mais pas n'importe quel Messagebox, un MessageBox sous forme de tableau qui prendrait les informations dans un classeur fermé ?

Le classeur fermé contient un exel en tableau et dans ce Messagebox je voudrais récupérer les colonnes que je veux.

Merci de votre intention !
Avatar du membre
GGautier
Membre fidèle
Membre fidèle
Messages : 462
Appréciations reçues : 23
Inscrit le : 18 décembre 2018
Version d'Excel : 2016 FR

Message par GGautier » 23 mai 2019, 14:07

Bonjour :)

Voilà un code fonctionnel, à adapter avant ;;)
Private Sub userform_initialize()
  'Microsoft ActiveX DataObject doit être coché
  'BD est le nom de l'onglet ou se trouve le tableau à récupérer
  Set cnn = New ADODB.Connection
 
With CreateObject("ADODB.Connection")
   .Open = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= ICI LE LIEN DE TON FICHIER EXCEL FERME ;Extended Properties=""Excel 12.0;HDR=YES;IMEX=1"""
    
Me.ListBox1.List = Application.Transpose(.Execute("SELECT [Titre 1],[Titre 2],[Titre 3],[Titre 4],[Titre 5] FROM [BD$A1:AA65000]").GetRows)
 .Close
Me.ListBox1.ColumnCount = 5 '=5 car j'ai un tableau avec 5 colonnes
 End With
End Sub
"Il n'y a pas de question idiote, seulement une réponse idiote" ALBERT EINSTEIN (enfin ici on évite). °oO
C
Cac0
Jeune membre
Jeune membre
Messages : 24
Inscrit le : 16 mai 2019
Version d'Excel : 2013

Message par Cac0 » 24 mai 2019, 08:21

Je te remercie de ta réponse je vais regarder ça de suite et je te tiens au courant !

Merci ! ::D
C
Cac0
Jeune membre
Jeune membre
Messages : 24
Inscrit le : 16 mai 2019
Version d'Excel : 2013

Message par Cac0 » 24 mai 2019, 08:35

GGautier a écrit :
23 mai 2019, 14:07
Bonjour :)

Voilà un code fonctionnel, à adapter avant ;;)
Private Sub userform_initialize()
  'Microsoft ActiveX DataObject doit être coché
  'BD est le nom de l'onglet ou se trouve le tableau à récupérer
  Set cnn = New ADODB.Connection
 
With CreateObject("ADODB.Connection")
   .Open = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= ICI LE LIEN DE TON FICHIER EXCEL FERME ;Extended Properties=""Excel 12.0;HDR=YES;IMEX=1"""
    
Me.ListBox1.List = Application.Transpose(.Execute("SELECT [Titre 1],[Titre 2],[Titre 3],[Titre 4],[Titre 5] FROM [BD$A1:AA65000]").GetRows)
 .Close
Me.ListBox1.ColumnCount = 5 '=5 car j'ai un tableau avec 5 colonnes
 End With
End Sub


Quand tu parle de "lien de ton fichier" c'est sous quel forme ? Je dois juste mettre le titre de mon fichier ?
Et aussi quand tu parle de onglet c'est le nom de la feuille ?
Merci à toi :)
Avatar du membre
GGautier
Membre fidèle
Membre fidèle
Messages : 462
Appréciations reçues : 23
Inscrit le : 18 décembre 2018
Version d'Excel : 2016 FR

Message par GGautier » 24 mai 2019, 09:54

Alors oui le lien c'est l'endroit ou se trouve le fichier dans lequel se trouve les données à récupérer du style C:\....\LeNomDuFichier.xlsx

Et oui l'onglet en question est le nom de porte la feuille dans laquelle se trouve les données à récupérer ! (Dans mon exemple ci-dessus la feuille s'appel BD)

:)
"Il n'y a pas de question idiote, seulement une réponse idiote" ALBERT EINSTEIN (enfin ici on évite). °oO
C
Cac0
Jeune membre
Jeune membre
Messages : 24
Inscrit le : 16 mai 2019
Version d'Excel : 2013

Message par Cac0 » 24 mai 2019, 10:46

Bon du coup, il ne veut pas de ce code visiblement, lorsque j'appuie sur mon bouton cela me mets un message comme quoi il ne peut pas compiler... :cry:

Si tu as une solution je suis preneuse.. je ne sais plus quoi faire... :|
Avatar du membre
GGautier
Membre fidèle
Membre fidèle
Messages : 462
Appréciations reçues : 23
Inscrit le : 18 décembre 2018
Version d'Excel : 2016 FR

Message par GGautier » 24 mai 2019, 10:53

Partage une capture d'écran du message d'erreur et de la ligne incriminée stp
Si tu ne peux pas faire de Debug, va dans le code et appuis sur F8 et tu regarde à quelle ligne ça plante
"Il n'y a pas de question idiote, seulement une réponse idiote" ALBERT EINSTEIN (enfin ici on évite). °oO
Avatar du membre
GGautier
Membre fidèle
Membre fidèle
Messages : 462
Appréciations reçues : 23
Inscrit le : 18 décembre 2018
Version d'Excel : 2016 FR

Message par GGautier » 24 mai 2019, 10:57

Voilà un exemple de fichier, il te faudra modifier l'adresse du fichier dans le code !
Création tableau.xlsm
(18.43 Kio) Téléchargé 8 fois
"Il n'y a pas de question idiote, seulement une réponse idiote" ALBERT EINSTEIN (enfin ici on évite). °oO
C
Cac0
Jeune membre
Jeune membre
Messages : 24
Inscrit le : 16 mai 2019
Version d'Excel : 2013

Message par Cac0 » 24 mai 2019, 11:27

GGautier a écrit :
24 mai 2019, 10:53
Partage une capture d'écran du message d'erreur et de la ligne incriminée stp
Si tu ne peux pas faire de Debug, va dans le code et appuis sur F8 et tu regarde à quelle ligne ça plante
Du coup, je tombe sur ce message exactement :
MessageErreur.PNG
MessageErreur.PNG (28.23 Kio) Vu 48 fois
Avatar du membre
GGautier
Membre fidèle
Membre fidèle
Messages : 462
Appréciations reçues : 23
Inscrit le : 18 décembre 2018
Version d'Excel : 2016 FR

Message par GGautier » 24 mai 2019, 11:35

Ok et si tu exécute pas à pas le code en faisant F8, sur quelle ligne le code plante ?
"Il n'y a pas de question idiote, seulement une réponse idiote" ALBERT EINSTEIN (enfin ici on évite). °oO
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message