USF : Combox1 problème pour récupérer la valeur sélectionnée

guy974

XLDnaute Junior
Bonjour à tous,

SVP, dans le fichier joint,

En feuil1 (Feuilles pour les données saisies):
j'ai un tableau avec en colonne "A" tous les ingrédients possibles dans mes recettes
dans les colonnes " B à I", j'ai toutes mes recettes en titre (en réalité beaucoup plus que dans le fichier joint)

Tous les ingrédients (des centaines en réalité) ne seront donc pas présents dans chacunes des recettes (concentration de l'ingrédient est en %).

en feuil2 (Feuille pour la visualisation d'une recette séléctionnée):

J'ai un bouton de macro qui lance un USF avec listbox.
La lisbox est alimentée par le mom des différentes recettes du tableau en Feuil1.

Lorsque l'on sélectionne une recette le but de ne voir que la recette concernée en Feuil2 (la feuil2, c'est uniquement pour visiualiser 1 recette donnée, avec seulement les ingrédients à concentration (%age) non nul pour ne pas avoir trop de ligne :

pour cela je souhaite :

*/ copier en Feuil2 la colonne ingrédient et copier en feuil 2 la colonne de la recette concernée.

*/ après avoir le filtrage en non-nul sur la colonne B en feuil2 pour avoir une vue syntétique de la recette (seul les ingrédients en %age non-nul sont affichés)


Mon plus gros problème c'est que le code bloque sur
" selection = ComboBox1.Value"

Si je teste avec en valeur en dur ==) ComboBox.value ="Recette X", ça marche mais j'ai plus d'une centaine de recette, je souhaiterais faire plus simple.

Merci d'avance

Guy
 

Pièces jointes

  • macro_recette_test.zip
    20 KB · Affichages: 50
  • macro_recette_test.zip
    20 KB · Affichages: 48
  • macro_recette_test.zip
    20 KB · Affichages: 47

pierrejean

XLDnaute Barbatruc
Re : USF : Combox1 problème pour récupérer la valeur sélectionnée

bonjour guy974

Le mot selection est un mot reservé (a ne pas utiliser pour designer une variable)

Vois si cela te convient
 

Pièces jointes

  • macro_recette_test.zip
    13.2 KB · Affichages: 53
  • macro_recette_test.zip
    13.2 KB · Affichages: 56
  • macro_recette_test.zip
    13.2 KB · Affichages: 56

youky(BJ)

XLDnaute Barbatruc
Re : USF : Combox1 problème pour récupérer la valeur sélectionnée

Salut Guy,
De retour ton fichier avec des modifs, j'ai aussi mis l'user en showmodal=false
cela permet un peu de naviguer dans le fichier en ayant l'user ouvert.
Pour remplir le combox j'ai modifié aussi pour ne pas avoir des vides.
 

Pièces jointes

  • macro_recette_test2.zip
    19.8 KB · Affichages: 41

Robert

XLDnaute Barbatruc
Repose en paix
Re : USF : Combox1 problème pour récupérer la valeur sélectionnée

Bonjour Guy, Pierrejean, Youky, bonjour le forum,

Bon vachement à la bourre à ce que je vois... Je t'envoie quand même ma proposition.
 

Pièces jointes

  • Guy_v01.xls
    40.5 KB · Affichages: 111
  • Guy_v01.xls
    40.5 KB · Affichages: 122
  • Guy_v01.xls
    40.5 KB · Affichages: 134

guy974

XLDnaute Junior
Re : USF : Combox1 problème pour récupérer la valeur sélectionnée

Merci beaucoup Pierrejean, Youky, Robert !!

Robert SVP,

Je calle pour une modif,

en feuil2, si je veux que ça colle ingrédient et recette à partir de la ligne 4 (A4 et B4) et non en ligne 2 (A2 et B2) comme actuellement dans votre fichier, comment faire ?

Merci d'avance

Guy
 

jp14

XLDnaute Barbatruc
Re : USF : Combox1 problème pour récupérer la valeur sélectionnée

Bonjour à tous

Merci beaucoup Pierrejean, Youky, Robert !!

Robert SVP,

Je cale pour une modif,

en feuil2, si je veux que ça colle ingrédient et recette à partir de la ligne 4 (A4 et B4) et non en ligne 2 (A2 et B2) comme actuellement dans votre fichier, comment faire ?

Merci d'avance

Guy

Ci dessous la procédure modifiée.
Code:
Private Sub ComboBox1_Change() 's'exécute lorsque l'on sélectionne une valeur sur la liste de l'USF
k = Split(Cells(1, ComboBox1.ListIndex + 2).Address, "$")(1)
Feuil2.[A[COLOR="red"]2[/COLOR]:A1001].Value = Feuil1.[A1:A1000].Value
Feuil2.[B[COLOR="red"]2[/COLOR]:B1001].Value = Feuil1.Range(k & "1:" & k & "1000").Value
Feuil2.Select
[A1].Select

A tester
 

nolich

XLDnaute Occasionnel
Re : USF : Combox1 problème pour récupérer la valeur sélectionnée

Bonjour guy974, pierrejean, youki(BJ), Robert et Jean-Marcel, bonjour à toutes et à tous,

J'espère que Robert ne m'en voudra pas mais j'ai à peine modifié son code :

Code:
Private Sub ComboBox1_Change() [COLOR="Green"]'s'exécute lorsque l'on sélectionne une valeur sur la liste de l'USF[/COLOR]

Dim pr As Range [COLOR="green"]'déclare la variable pr (Plage des Recettes)[/COLOR]
Dim cel As Range [COLOR="green"]'déclare la variable cel (CELlule)[/COLOR]
Dim col As Byte [COLOR="green"]'déclare la variable col (COLonne)[/COLOR]Dim pp As Range [COLOR="green"]'déclare la variable pp (Plage des Pourcentages)[/COLOR]
Dim dest As Range [COLOR="green"]'déclare la variable dest (DESTination)[/COLOR]
[B]Dim Titres As Boolean[/B] [COLOR="green"]'servira à déterminer si la ligne 4 contient bien les titres[/COLOR]

With Sheets("Feuil1") [COLOR="Green"]'prend en compte l'onglet "Feuil1"[/COLOR]
    Set pr = .Range("B3:" & .Range("IV3").End(xlToRight).Address) [COLOR="green"]'définit la variable pr[/COLOR]
    For Each cel In pr [COLOR="green"]'boucle sur toute les cellules éditées de la plage pr[/COLOR]
        If cel.Value = ComboBox1.Value Then [COLOR="green"]'condition : si la valeur de la cellule cel est égal à la ComboBox1[/COLOR]
            col = cel.Column [COLOR="green"]'définit la variable col[/COLOR]
            Exit For [COLOR="green"]'sort de la boucle[/COLOR]
        End If [COLOR="green"]'fin de la condition[/COLOR]
    Next cel [COLOR="green"]'prochaine cellule éditée de la plage pr[/COLOR]
    
    Set pp = .Range(.Cells(3, col), .Cells(65536, col).End(xlUp)) [COLOR="green"]'définit la variable pp[/COLOR]
[B]    Titres = False[/B] [COLOR="green"]'on initialise Titres à False car les titres n'ont pas encore été inscrits[/COLOR]
    For Each cel In pp [COLOR="green"]'boucle sur toutes les cellules de la plage pp[/COLOR]
        If cel.Value <> "" Then [COLOR="green"]'condition : si la cellule n'est pas vide[/COLOR]
[B]            If Titres = True Then[/B] [COLOR="green"]'et si les titres sont inscrits[/COLOR]
              Set dest = Sheets("feuil2").Range("A65536").End(xlUp).Offset(1, 0) [COLOR="green"]'définit la variable dest[/COLOR]
[B]            Else[/B] [COLOR="green"]'Si pas encore de titres, on définit dest en ligne 4[/COLOR]
[B]              Set dest = Sheets("feuil2").Range("A4")[/B] [COLOR="green"]'définit la variable dest pour les titres[/COLOR]
[B]              Titres = True[/B] [COLOR="green"]' Les titres sont désormais sur la ligne 4[/COLOR]
[B]            End If[/B] [COLOR="green"]'fin de la condition pour les titres. Aux prochains passages, ce sera le code initial de Robert qui sera utilisé[/COLOR]
            .Cells(cel.Row, 1).Copy Destination:=dest [COLOR="green"]'copie/colle la cellule équivalente de la colonne A (en colonne A de "Feuil2")[/COLOR]
            cel.Copy Destination:=dest.Offset(0, 1) [COLOR="green"]'copie/colle la cellule cel(en colonne B de "Feuil2")[/COLOR]
        End If [COLOR="green"]'fin de la condition[/COLOR]
    Next cel [COLOR="green"]'prochaine cellule de la plage pp[/COLOR]
End With [COLOR="green"]'fin de la prise en compte de l'onglet "Feuil1"[/COLOR]

[COLOR="green"]'On décharge le formulaire[/COLOR]
Unload Me
End Sub

Cordialement,
Lio

EDIT : Oups ! Désolé jp14. Je ne t'avais pas vu
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : USF : Combox1 problème pour récupérer la valeur sélectionnée

Bonsoir le fil, bonsoir le forum,

En pièce jointe mon code modifié mais aussi ton fichier avec la méthode JP qui m'a scotché par son efficacité redoutable. J'ai eu beau lire l'aide je ne m'en suis pas encore remis. Quelqu'un aurait-il du disolvant pour faire partir le vert ?...

Édition :

Bonjour Lio on s'est croisé. Oui avec une boléenne ça le fait aussi !
 

Pièces jointes

  • Guy_v02.xls
    42.5 KB · Affichages: 76
  • Guy_JP_v02.xls
    42.5 KB · Affichages: 91
Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Re : USF : Combox1 problème pour récupérer la valeur sélectionnée

re bonjour, Guy
remplace la ligne

Feuil2.[B2:B1001].Value = Feuil1.Range(k & "1:" & k & "1000").Value
par:
Feuil2.[B4:B1003].Value = Feuil1.Range(k & "1:" & k & "1000").Value
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : USF : Combox1 problème pour récupérer la valeur sélectionnée

Bonsoir le fil, bonsoir le forum,

Je rectifie car je viens de m'apercevoir que la méthode Split est aussi dans la proposition de Youki. Donc rendons à César ce qui .... Bravo Youki et Jp pour votre code qui m'a littéralement laissé vert. Au fait, j'ai trouvé du dissolvant ça commence à aller mieux...
 

youky(BJ)

XLDnaute Barbatruc
Re : USF : Combox1 problème pour récupérer la valeur sélectionnée

Bonjour à tous du forum,
Oubliez mon dernier post, je n'avais pas vu la réponse de jp14
C'est le beaujolais qui doit faire son effet . . .
Précision (Split) ne fonctionne pas en Excel97 et je sais pas sur 2000

Bruno
 

jp14

XLDnaute Barbatruc
Re : USF : Combox1 problème pour récupérer la valeur sélectionnée

Bonjour à tous

Je n'ai aucun mérite, j'ai simplement modifié la cellule de destination dans la procédure de youky(BJ).

JP
 
Dernière édition:

Discussions similaires

Réponses
19
Affichages
4 K

Statistiques des forums

Discussions
312 500
Messages
2 089 004
Membres
104 003
dernier inscrit
adyady__