Valeurs d'une combobox dans une feuille Excel extér

Bonjour à tous, j'ai déjà ce code là que m'a réalisé felix :

Set pl = Sheets("FIN").Range("B3:B" & Sheets("FIN").Range("B65536").End(xlUp).Row)
pl.Name = "base"
For i = 1 To 4
Me.Controls("ComboBox" & i).RowSource = "base"
Next i

Nous sommes ici dans le cas où la feuille contenant les valeurs (appelé "FIN") est dans le même classeur,

Seulement, j'aimerais savoir s'il est possible de récupérer les valeurs d'une feuille de calcul d'un autre classeur Excel, que j'appelle parametres.xls et dont la feuille se nomme "agences-essais"

Et ce qu'on peut faire quelque chose comme :

Set pl = Workbook.Name("C:\parametres.xls").Sheets("agences-essais").Range("B3:B....

Merci à vous

Bonjour,

Dans ce cas moi je rapatrie les données du classeur parametres.xls sans l'ouvrir

grace à un code adapté et j'intègre les valeurs dans une nouvelle feuille.

Comme ça je peux alimenter ma combobox

Le code

Sub Importe()
    GetDataFromClosedWorkbook "C:\Excel\5-1-3-0 Suivi des OF en cours-NV\Sources\Agt ordo-Equipe.xls", "MyDataRange", Range("A1"), True
End Sub

Sub GetDataFromClosedWorkbook(SourceFile As String, SourceRange As String, _
                              TargetRange As Range, IncludeFieldNames As Boolean)
    ' requires a reference to the Microsoft ActiveX Data Objects library
    ' if SourceRange is a range reference:
    '   this will return data from the first worksheet in SourceFile
    ' if SourceRange is a defined name reference:
    '   this will return data from any worksheet in SourceFile
    ' SourceRange must include the range headers
    '
    Dim dbConnection As ADODB.Connection, rs As ADODB.Recordset
    Dim dbConnectionString As String
    Dim TargetCell As Range, I As Integer
    dbConnectionString = "DRIVER={Microsoft Excel Driver (*.xls)};" & _
                         "ReadOnly=1;DBQ=" & SourceFile
    Set dbConnection = New ADODB.Connection
    On Error GoTo InvalidInput
    dbConnection.Open dbConnectionString    ' open the database connection
    Set rs = dbConnection.Execute("[" & SourceRange & "]")
    Set TargetCell = TargetRange.Cells(1, 1)
    If IncludeFieldNames Then
        For I = 0 To rs.Fields.Count - 1
            TargetCell.Offset(0, I).Formula = rs.Fields(I).Name
        Next I
        Set TargetCell = TargetCell.Offset(1, 0)
    End If
    TargetCell.CopyFromRecordset rs
    rs.Close
    dbConnection.Close    ' close the database connection
    Set TargetCell = Nothing
    Set rs = Nothing
    Set dbConnection = Nothing
    On Error GoTo 0
    Exit Sub
InvalidInput:
    MsgBox "The source file or source range is invalid!", _
           vbExclamation, "Get data from closed workbook"
End Sub

Merci de ta réponse mais ca ne fonctionne pas...

Bonjour,

Envoies tes 2 fichiers et je vais régler cela.

S'il y a des données confidentielles tu les retires

A+

Rebonsoir, merci c'est très gentil de votre part !

Voilà les 2 fichiers :

Dnc il faut récupérer les paramètres pour les mettre dans le formulaire, le code déjà existant est dans l'userform2

J'espère ne pas trop t'embêter et te remercie beaucoup !

Bonjour,

Mettre les 2 fichiers dans le même répertoire.

Dans le fichier Paramètres.xls, il faut, si tu rajoutes des infos, redéfinir la plage MyDataRange avec les nouvelles lignes.

Je n'ai traité que le remplissage des Combobox 1 et 2.

Je te laisse faire le reste.

https://www.excel-pratique.com/~files/doc/Formulaire.zip

Merci de ta réponse !

Ca fonctionne, seulement je vois pas du tout où redéfinir MyDataRange :'(

Merci encore !!

Bonjour,

Tu ouvres le fichier parametre.xls

Insertion, Nom, Définir et modifier les lignes

voir fichier joint

https://www.excel-pratique.com/~files/doc/Mydatarange.jpg

Cool merci

En le mettant à l'infini ça marche parfaitement

Merci à toi jeune homme !

Bonjour,

En mettant à l'infin la palge MyDatarange, ce n'est pas forcément l'idéal car tu ramènes une grande plage de données (même vide) et ça peut ralentir légèrement l'import.

C'est juste une remarque.

A+

Oui mais en fait, je suis en train de faire ce fichier Excel qui aura pour but de vraiment faciliter la facturation et une fois que je l'aurais terminé je ne veux plus toucher aux macros mais tout faire à partir de la feuille Excel

Je vais donc diminuer la liste jusqu'à A400 ça devrait suffir :p

Merci encore

Up

Je viens de remarquer un petit problème, je développe cette petite application sous Excel 2007 et l'entreprise dans laquelle je suis ne sont encore qu'à Excel 97 et j'ai lu que le code que tu m'as passé n'est compatible que pour les versions d'Excel 2000 ou plus

Est-ce que tu aurait une autre méthode ? Même s'il faut ouvrir un fichier et le refermer après

Merci :p

Rechercher des sujets similaires à "valeurs combobox feuille exter"