VBA : comment aller chercher une liste dans un autre classeur ?
Résolu/Fermé
CamilleDR
-
24 oct. 2016 à 10:17
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 - 24 oct. 2016 à 11:47
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 - 24 oct. 2016 à 11:47
A voir également:
- VBA : comment aller chercher une liste dans un autre classeur ?
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Vba dépassement de capacité ✓ - Forum Excel
2 réponses
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
24 oct. 2016 à 10:45
24 oct. 2016 à 10:45
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+
CamilleDR
Messages postés
29
Date d'inscription
lundi 24 octobre 2016
Statut
Membre
Dernière intervention
12 juin 2017
24 oct. 2016 à 11:16
24 oct. 2016 à 11:16
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
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
Modifié par f894009 le 24/10/2016 à 11:19
Modifié par f894009 le 24/10/2016 à 11:19
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+
CamilleDR
Messages postés
29
Date d'inscription
lundi 24 octobre 2016
Statut
Membre
Dernière intervention
12 juin 2017
>
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
24 oct. 2016 à 11:26
24 oct. 2016 à 11:26
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 !
CamilleDR
Messages postés
29
Date d'inscription
lundi 24 octobre 2016
Statut
Membre
Dernière intervention
12 juin 2017
>
CamilleDR
Messages postés
29
Date d'inscription
lundi 24 octobre 2016
Statut
Membre
Dernière intervention
12 juin 2017
24 oct. 2016 à 11:27
24 oct. 2016 à 11:27
Après, j'ai une sacré liste d'ingrédients donc j'aimerais bien éviter de les écrire un par un à la fin du code...
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
>
CamilleDR
Messages postés
29
Date d'inscription
lundi 24 octobre 2016
Statut
Membre
Dernière intervention
12 juin 2017
Modifié par f894009 le 24/10/2016 à 11:29
Modifié par f894009 le 24/10/2016 à 11:29
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
CamilleDR
Messages postés
29
Date d'inscription
lundi 24 octobre 2016
Statut
Membre
Dernière intervention
12 juin 2017
>
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
24 oct. 2016 à 11:34
24 oct. 2016 à 11:34
"Erreur d'exécution '91': Variable objet ou variable de bloc With non définie"
> Serait-ce TIngredients qui n'aurait pas été définie ?
> Serait-ce TIngredients qui n'aurait pas été définie ?
24 oct. 2016 à 10:57
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.