VBA - Rangement de données sur feuille excel [Fermé]

Signaler
Messages postés
29
Date d'inscription
lundi 24 octobre 2016
Statut
Membre
Dernière intervention
12 juin 2017
-
Messages postés
16395
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
5 mars 2021
-
Bonjour,
Comme expliqué dans un autre topic plus tôt, j'ai une liste d'ingrédients dans laquelle je sélectionne des ingrédients un par un en indiquant leur quantité.
Une fois ces ingrédients sélectionnés avec leur quantité, ils s'affichent dans une listbox à 2 colonnes.
Je souhaite ensuite valider la recette. C'est à dire que de manière automatique devront se faire les choses suivantes :
> Ouvrir une nouvelle page qui prend le nom écrit dans ma zone de texte "Texte_Titre"
> Ecrire en colonne A le nom des ingrédients.
> Ecrire en colonne B la quantité correspondante pour chaque ingrédient, avec la somme de toutes les quantités en bas.
> Ecrire en colonne C la quantité correspondante en %, avec la somme des % (100) en bas.
> Aller chercher, pour les colonnes D à K, les valeurs correspondantes aux ingrédients, qui sont notées dans ma base de données (autre fichier).
> Fermer l'userform.

Pour le moment je suis un peu bloquée sur le premier point. Je pense qu'il faudrait que je mette en place une boucle, mais je ne suis pas sûre... Mon code est le suivant :

'Paramètres du bouton valider recette
Private Sub BoutonValiderRecette_Click()

'Crée une nouvelle feuille
Sheets.Add

'Empêche la validation si le nom de la recette n'est pas mentionné
With ActiveSheet
If Texte_Titre.Value = "" Then
MsgBox "Le nom de la recette est obligatoire"
End If
ActiveSheet.Name = Texte_Titre.Value
End With
Exit Sub

Ajouter_Feuille.Hide
End Sub

1 réponse

Messages postés
29
Date d'inscription
lundi 24 octobre 2016
Statut
Membre
Dernière intervention
12 juin 2017

Suite du code que j'ai bricolé, pour le rangement des données dans les bonnes cases... Il y a un trou en bas car je ne sais pas comment faire...

'Range les données de la nouvelle recette sur la feuille
For Lig = 0 To Liste_Ing.ListCount - 1
.Range("A" & Derligne + Lig).Value = Liste_Ing.List(Lig)
.Range("B" & Derligne + Lig).Value = Liste_Ing.List(Lig, 2)

'Va chercher les données correspondant aux ingrédients
Set Données = Workbooks.Open(Filename:="D:\#_PHILIPPE FAUR\Calcul des valeurs nutritionnelles\Base de données.xlsx")
With Données
Set trouve = .Columns(1).Cells.Find(Liste_Ing.List(Lig, 1), lookat:=xlWhole)
End With
With ActiveSheet
... Range ???
End If
End If
End With
Messages postés
29
Date d'inscription
lundi 24 octobre 2016
Statut
Membre
Dernière intervention
12 juin 2017

Help ?
Messages postés
16395
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
5 mars 2021
3 145 >
Messages postés
29
Date d'inscription
lundi 24 octobre 2016
Statut
Membre
Dernière intervention
12 juin 2017

Bonjour
Sans voir ton classeur et avec des codes tronqués....

<code>Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
et faire un clic droit-coller le raccourci dans le message
Dans l’attente