J'ai besoin d'utiliser excel pour de la saisie de données destinées ensuite
à être importées dans une base de données.
Seulement ma base de données possède des champs croisés entre différentes
tables. Comment reproduire cela sous excel ?
Il faudrait que je puisse définir des champs sous forme de listes
déroulantes dons les données sont modifiables (issues d'autres feuilles de
calcul par exemple), et mieux encore, l'utilisation de listes à selection
multiple.
Par exemple, pour remplir la colonne "zone géographique", je souhaiterait
avoir une liste déroulante donc les données serait issues d'une autre
feuille de calcul. Mieux encore serait la possibilité de sélectionner
plusieurs lignes dans la liste déroulante.
Est-ce possible sous excel ?
Faut-il nécessairement passer par VBA ou y a-t-il ce qui faut directement
dans les fonctionnalités de base de excel ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Je n'ai pas vraiment tout compris, mais si tu cherches à renseigner un contrôle "listBox" à colonne multiples dans une feuille de calcul avec des données de colonnes non adjacentes provenant d'un même tableau, tu peux utiliser ceci :
P.S- Comme la procédure est écrite, les colonnes sur lequellles doivent s'effecteur la requête ne doivent pas avoir des lignes vides !
Tu dois ajouter la bibliothèque suivante à ton projet : "Microsoft Activex Data Object 2.x Librairy" '---------------------------------- Sub MaRequêteAvecADO()
Dim Conn As ADODB.Connection, Rst As New ADODB.Recordset Dim Requete As String, NomFeuille As String Dim File As String
'Fichier sur lequel se fera la requête : File = ThisWorkbook.FullName
'Nom de la feuille du fichier où sont les données 'Dans la requête, j'utilise la variable. NomFeuille = "denis"
Set Conn = New ADODB.Connection Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & File & ";" & _ "Extended Properties=""Excel 8.0;HDR=YES;"""
'La requête qui sera exécutée. 'Titre1, titre4 = Étiquette des colonnes .... Requete = "SELECT Titre1, Titre4 From [" & NomFeuille & "$]"
'Copie les étiquettes du recordset vers Excel With Worksheets("Feuil1") With .Shapes("ListBox1").OLEFormat.Object.Object .Clear .ColumnCount = 2 .ColumnWidths = "50;50" .List = Application.Transpose(Rst.GetRows) End With End With
Rst.Close: Conn.Close Set Rst = Nothing: Set Conn = Nothing
End Sub '----------------------------------
"seb" a écrit dans le message de news: O8$ Bonjour,
J'ai besoin d'utiliser excel pour de la saisie de données destinées ensuite à être importées dans une base de données.
Seulement ma base de données possède des champs croisés entre différentes tables. Comment reproduire cela sous excel ? Il faudrait que je puisse définir des champs sous forme de listes déroulantes dons les données sont modifiables (issues d'autres feuilles de calcul par exemple), et mieux encore, l'utilisation de listes à selection multiple.
Par exemple, pour remplir la colonne "zone géographique", je souhaiterait avoir une liste déroulante donc les données serait issues d'une autre feuille de calcul. Mieux encore serait la possibilité de sélectionner plusieurs lignes dans la liste déroulante.
Est-ce possible sous excel ? Faut-il nécessairement passer par VBA ou y a-t-il ce qui faut directement dans les fonctionnalités de base de excel ?
merci d'avance, seb
Je n'ai pas vraiment tout compris, mais si tu cherches à
renseigner un contrôle "listBox" à colonne multiples
dans une feuille de calcul avec des données de colonnes
non adjacentes provenant d'un même tableau, tu peux
utiliser ceci :
P.S- Comme la procédure est écrite, les colonnes sur
lequellles doivent s'effecteur la requête ne doivent pas
avoir des lignes vides !
Tu dois ajouter la bibliothèque suivante à ton projet :
"Microsoft Activex Data Object 2.x Librairy"
'----------------------------------
Sub MaRequêteAvecADO()
Dim Conn As ADODB.Connection, Rst As New ADODB.Recordset
Dim Requete As String, NomFeuille As String
Dim File As String
'Fichier sur lequel se fera la requête :
File = ThisWorkbook.FullName
'Nom de la feuille du fichier où sont les données
'Dans la requête, j'utilise la variable.
NomFeuille = "denis"
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & File & ";" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""
'La requête qui sera exécutée.
'Titre1, titre4 = Étiquette des colonnes ....
Requete = "SELECT Titre1, Titre4 From [" & NomFeuille & "$]"
'Copie les étiquettes du recordset vers Excel
With Worksheets("Feuil1")
With .Shapes("ListBox1").OLEFormat.Object.Object
.Clear
.ColumnCount = 2
.ColumnWidths = "50;50"
.List = Application.Transpose(Rst.GetRows)
End With
End With
Rst.Close: Conn.Close
Set Rst = Nothing: Set Conn = Nothing
End Sub
'----------------------------------
"seb" <seb34@hotmail.com> a écrit dans le message de news: O8$b7P1IHHA.1064@TK2MSFTNGP04.phx.gbl...
Bonjour,
J'ai besoin d'utiliser excel pour de la saisie de données destinées ensuite
à être importées dans une base de données.
Seulement ma base de données possède des champs croisés entre différentes
tables. Comment reproduire cela sous excel ?
Il faudrait que je puisse définir des champs sous forme de listes
déroulantes dons les données sont modifiables (issues d'autres feuilles de
calcul par exemple), et mieux encore, l'utilisation de listes à selection
multiple.
Par exemple, pour remplir la colonne "zone géographique", je souhaiterait
avoir une liste déroulante donc les données serait issues d'une autre
feuille de calcul. Mieux encore serait la possibilité de sélectionner
plusieurs lignes dans la liste déroulante.
Est-ce possible sous excel ?
Faut-il nécessairement passer par VBA ou y a-t-il ce qui faut directement
dans les fonctionnalités de base de excel ?
Je n'ai pas vraiment tout compris, mais si tu cherches à renseigner un contrôle "listBox" à colonne multiples dans une feuille de calcul avec des données de colonnes non adjacentes provenant d'un même tableau, tu peux utiliser ceci :
P.S- Comme la procédure est écrite, les colonnes sur lequellles doivent s'effecteur la requête ne doivent pas avoir des lignes vides !
Tu dois ajouter la bibliothèque suivante à ton projet : "Microsoft Activex Data Object 2.x Librairy" '---------------------------------- Sub MaRequêteAvecADO()
Dim Conn As ADODB.Connection, Rst As New ADODB.Recordset Dim Requete As String, NomFeuille As String Dim File As String
'Fichier sur lequel se fera la requête : File = ThisWorkbook.FullName
'Nom de la feuille du fichier où sont les données 'Dans la requête, j'utilise la variable. NomFeuille = "denis"
Set Conn = New ADODB.Connection Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & File & ";" & _ "Extended Properties=""Excel 8.0;HDR=YES;"""
'La requête qui sera exécutée. 'Titre1, titre4 = Étiquette des colonnes .... Requete = "SELECT Titre1, Titre4 From [" & NomFeuille & "$]"
'Copie les étiquettes du recordset vers Excel With Worksheets("Feuil1") With .Shapes("ListBox1").OLEFormat.Object.Object .Clear .ColumnCount = 2 .ColumnWidths = "50;50" .List = Application.Transpose(Rst.GetRows) End With End With
Rst.Close: Conn.Close Set Rst = Nothing: Set Conn = Nothing
End Sub '----------------------------------
"seb" a écrit dans le message de news: O8$ Bonjour,
J'ai besoin d'utiliser excel pour de la saisie de données destinées ensuite à être importées dans une base de données.
Seulement ma base de données possède des champs croisés entre différentes tables. Comment reproduire cela sous excel ? Il faudrait que je puisse définir des champs sous forme de listes déroulantes dons les données sont modifiables (issues d'autres feuilles de calcul par exemple), et mieux encore, l'utilisation de listes à selection multiple.
Par exemple, pour remplir la colonne "zone géographique", je souhaiterait avoir une liste déroulante donc les données serait issues d'une autre feuille de calcul. Mieux encore serait la possibilité de sélectionner plusieurs lignes dans la liste déroulante.
Est-ce possible sous excel ? Faut-il nécessairement passer par VBA ou y a-t-il ce qui faut directement dans les fonctionnalités de base de excel ?