VBA : comment aller chercher une liste dans un autre classeur ?
Résolu
CamilleDR
-
f894009 Messages postés 17272 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17272 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- VBA : comment aller chercher une liste dans un autre classeur ?
- Excel compter cellule couleur sans vba - Guide
- Mkdir vba ✓ - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
2 réponses
Bonjour,
Si tous les ingredients sont dans le meme colonne, il serait plus judicieux de prendre une listbox multiselectmulti ou vous pouvez selectionner les x ingredients et apres par programme les recuperer pour creer votre recette
A vous de voir
A+
Si tous les ingredients sont dans le meme colonne, il serait plus judicieux de prendre une listbox multiselectmulti ou vous pouvez selectionner les x ingredients et apres par programme les recuperer pour creer votre recette
A vous de voir
A+
Pourriez vous m'aider à faire fonctionner ce code, ou un code de ce type, sachant que j'ai bricolé avec mes vieux fichiers et internet :
Merci d'avance,
Camille
Private Sub UserForm_Initialize()
'Dimensionner les variables
Dim Lig As Long
Dim DLig As Long
'Vider tous les champs
Texte_Titre.Value = ""
Combo_Ing.Clear
ZoneTexte_Qtt.Value = ""
Liste_Ing.Clear
'Aller chercher les ingrédients pour remplir la combobox Combo_Ing
ChDir "D:\#_ENTREPRISE\Calcul des valeurs nutritionnelles"
Set Données = Workbooks.Open(Filename:="D:\#_ENTREPRISE\Calcul des valeurs nutritionnelles\Base de données.xlsx")
With Données.Sheets("BDD finale")
DLig = .Range("A" & Rows.Count).End(xlUp).Row
For Lig = 3 To DLig
Combo_Ing.Value = .Cells(Lig, 1).Value
If Combo_Ing.ListIndex = -1 Then
Combo_Ing.AddItem .Cells(Lig, 1).Value
End If
Next Lig
End With
End Sub
Merci d'avance,
Camille
Bonjour,
Justement un code pour recuperer les infos
Je vous l'adapte pour votre code si besoin
A+
Justement un code pour recuperer les infos
Private Sub UserForm_Activate() Dim TIngredients 'Table des ingredients Workbooks.Open "D:\_Docs_Prog_Excel\_recettes\Ingredients.xlsx" 'fichier recette With ActiveWorkbook.Worksheets("Ingredients") derlig = .Range("A" & Rows.Count).End(xlUp).Row 'derniere cellule non vide colonne A 'mese en table des ingredients colonne A TIngredients = ActiveWorkbook.Worksheets("Ingredients").Range("A2:A" & derlig).Value End With ActiveWorkbook.Close SaveChanges:=False x = TIngredients(1, 1) 'premier ingredient xx = TIngredients(2, 1) 'deuixeme ingredient xxx = TIngredients(3, 1) 'troisieme ingredient End Sub
Je vous l'adapte pour votre code si besoin
A+
Avec ce code la je vais pouvoir remplir ma combobox ?
Je veux bien une adaptation, sachant que :
- la combobox en question s'appelle Combo_Ing
- le fichier base de données s'appelle Base de données.xlsx
- la feuille du fichier ou est écrite la base de données s'appelle BDD finale
- la liste des ingrédients est sur la première colonne de la feuille BDD finale
- le chemin d'accès au fichier Base de données.xlsx est D:\#_ENTREPRISE\Calcul des valeurs nutritionnelles
Merci d'avance !
Je veux bien une adaptation, sachant que :
- la combobox en question s'appelle Combo_Ing
- le fichier base de données s'appelle Base de données.xlsx
- la feuille du fichier ou est écrite la base de données s'appelle BDD finale
- la liste des ingrédients est sur la première colonne de la feuille BDD finale
- le chemin d'accès au fichier Base de données.xlsx est D:\#_ENTREPRISE\Calcul des valeurs nutritionnelles
Merci d'avance !
Re,
A tester:
A tester:
Private Sub UserForm_Initialize() 'Dimensionner les variables Dim Lig As Long Dim DLig As Long Dim TIngredients 'Table des ingredients 'Vider tous les champs Texte_Titre.Value = "" Combo_Ing.Clear ZoneTexte_Qtt.Value = "" Liste_Ing.Clear 'Aller chercher les ingrédients pour remplir la combobox Combo_Ing Set Données = Workbooks.Open(Filename:="D:\#_ENTREPRISE\Calcul des valeurs nutritionnelles\Base de données.xlsx") With Données.Sheets("BDD finale") DLig = .Range("A" & Rows.Count).End(xlUp).Row 'mise en table des ingredients colonne A TIngredients = .Range("A3:A" & DLig).Value End With Données.Close SaveChanges:=False Combo_Ing.List() = TIngredients Set Données = Nothing End Sub
Je pourrais faire avec une listbox aussi,mais il faut que je sélectionne les ingrédients 1 par 1 pour indiquer leur quantité... Je valide 1 par un les ingrédients et leur quantité. Et ensuite mon ingrédient et ma quantité s'affichent dans 2 colonnes d'une listbox située en dessous. Et pour finir je valide la recette totale.
J'ai déjà fait un programme comme ça mais javais tous dans le même fichier, hors la je dois faire une référence a un autre fichier.