Input box trop nombreuses

jp65

XLDnaute Junior
Bonjour le forum

Je reviens vers vous avec de nouveaux soucis.

Le code que j'utilise me permet de renseigner des cellules à l'aide de plusieurs input box.

Mon premier souci se situe au niveau de la colonne fournisseur:
Tel que, le code me demande de rentrer un fournisseur si la cellule de la colonne fournisseur (liée à la variable ligne) est vide.
Si cette même cellule est déjà renseignée j'insère une ligne supplémentaire (la variable ligne avance d'une ligne également) et je renseigne la nouvelle cellule avec un nouveau nom de fournisseur.

Je souhaiterai avoir comme autre choix la possibilité de sélectionner une cellule avec un nom de fournisseur déjà en place (en lien avec une référence fabricant donnée) afin de pouvoir rajouter des infos grâce aux input box suivantes.


Mon deuxième souci est le nombre d'input box utilisées.
y a t'il un moyen de les regrouper toutes dans un useform avec entre autre deux listes déroulantes dynamiques permettant de sélectionner les références fabricant de la colonne B et une autre permettant de sélectionner les fournisseur de la colonne E.

Voici le code:
Code:
Option Explicit

Sub devis()
Dim devis As String
Dim Ligne As Variant
Dim Ligne2 As Variant
Dim col As Variant
Dim Cel As Range
Dim Réf_fabr As Variant
Dim ret As Integer
Dim dlv As String
Dim f As Variant
Dim x As Variant


'BOITE DE DIALOGUE POUR SELECTIONNER LA REFERENCE FABRICANT--------------------------------------
'Saisie de la référence fabricant
    Réf_fabr = Application.InputBox("Saisissez la référence fabricant", "Référence fabricant", Type:=2)
    If Réf_fabr = "Faux" Or Réf_fabr = "" Then Exit Sub
'ligne récupère le N° de ligne qui contient la variable Réf_fabr
     Set Ligne = Range("B:B").Find(Réf_fabr, lookat:=xlWhole)
     If Not Ligne Is Nothing Then Ligne = Ligne.Row

'DEMMARAGE DE LA BOUCLE--------------------------------------------------------------------------
 Do

'SAISIE DU FOURNISSEUR AVEC RENVOI A LA LIGNE SI UN NOM EST DEJA INSCRIT----------------------------
'Si la cellule fournisseur correspondante à la référence sélectionnée est vide
'on lance l'inputbox pour sélectionner un fournisseur
     If Cells(Ligne, 5) = "" Then
     Cells(Ligne, 5) = InputBox("Saisissez le nom du fournisseur", "Fournisseur")
     Else
     Rows(Ligne + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
     Ligne = Ligne + 1
     Cells(Ligne, 5) = InputBox("Saisissez le nom du fournisseur", "Fournisseur")
     End If

'SELECTION DE LA COLONNE QUI CONTIENT LE DEVIS CHOISI--------------------------------------------
'Saisie du devis traité
    devis = Application.InputBox("Saisissez le devis", "Devis", Type:=2)
    If devis = "Faux" Or devis = "" Then Exit Sub
'col récupère le N° de colonne qui contient la variable devis
     Set col = Range("1:1").Find(devis, , xlValues, xlWhole, , , False)
     If Not col Is Nothing Then col = col.Column
     col = col + 1
     
'SELECTION DES ELEMENTS CONSTITUANT LE DEVIS CHOISI--------------------------------------------
'Saisie du prix unitaire
    Cells(Ligne, col) = InputBox("Saisissez prix unitaire", "Prix unitaire")
'Saisie du délai
    col = col + 1
    Cells(Ligne, col) = InputBox("Saisissez le délai", "Délai")
'Saisie du conditionnement
    col = col + 1
    Cells(Ligne, col) = InputBox("Saisissez le conditionnement", "Conditionnement")
'Saisie du MOQ
    col = col + 1
    Cells(Ligne, col) = InputBox("Saisissez le MOQ", "MOQ")
'Saisie de la référence fournisseur
    col = col + 1
    Cells(Ligne, col) = InputBox("Saisissez la référence fournisseur", "Réference fournisseur")
  Loop
End Sub

Merci pour tous conseils

Bonne soirée
 

Pièces jointes

  • DEVIS.xlsm
    130.6 KB · Affichages: 38
  • DEVIS.xlsm
    130.6 KB · Affichages: 44
  • DEVIS.xlsm
    130.6 KB · Affichages: 44

bbb38

XLDnaute Accro
Re : Input box trop nombreuses

Bonjour jp65, le forum,
Mon deuxième souci est le nombre d'input box utilisées.
y a t'il un moyen de les regrouper toutes dans un useform
Oui, voir essai dans le fichier ci-joint. Concernant la sélection du nom d’un fournisseur ou d’une référence, je suppose que sur une ligne du fichier, on peut trouver soit le nom, soit la référence, ou les deux.
Cordialement,
Bernard
 

Pièces jointes

  • jp65_DEVIS_v1_1.xlsm
    153.1 KB · Affichages: 47

jp65

XLDnaute Junior
Re : Input box trop nombreuses

Bonjour bb65 , le forum
Merci pour ton attention, je teste dès que possible.
Effectivement sur une ligne on peut avoir à la fois une référence fabricant et une référence fournisseur.
On peux également avoir une ligne avec uniquement le référence fournisseur (cette ligne étant créée si la cellule du dessus est renseignée ).
Et c'est donc toujours cette ligne qui sert de référence tant qu'on ne relance pas de nouveau le code.

Bonne journée.
 

jp65

XLDnaute Junior
Re : Input box trop nombreuses

Bonjour bbb38, le forum

Je suis en train de tester ta proposition.
Pour l'instant je t'avoue que le seul point que j'arrive à cerner est le remplissage automatique de la liste des références fabricant.
Pour le reste ce n'est pas encore ça.
En gros il faut que l'useform regroupe ce que fait le code fourni dans mon premier post:
- Une fois la référence fabricant choisie
*création d'un nouveau fournisseur (colonne E) dans la cellule sur la même ligne que la référence fabricant choisie, si la cellule est déjà renseignée insertion d'une ligne à la suite. C'est cette ligne qui sert de base pour remplir les cellules liées au devis ( G-H-I-J-K pour le devis1)

-Choix du devis ( inscris en ligne 1)

- Ajout d'information dans les cellules liées au fournisseur en cours et au devis choisi

- Ceci n'est pas dans le code initial: Possibilité de pouvoir modifier les données liées à un fournisseur déjà en place

Je vais déjà tâcher de travailler sur ta proposition en l'état.

Merci encore pour ton aide

Bonne soirée
 

bbb38

XLDnaute Accro
Re : Input box trop nombreuses

Bonjour jp65, le forum,
Un début de solution, à tester. Comment souhaites-tu enregistrer les nouvelles références des fabricants ?
Sur la feuille « Condense », à quel moment, les colonnes C, D, E, doivent être complétées ? ET à quoi correspondent les chiffres mentionnés sur la ligne 1 (1, 5, 10, 20, 49) ?
Cordialement,
Bernard
 

Pièces jointes

  • jp65_DEVIS_v2_1.xlsm
    165.1 KB · Affichages: 35

jp65

XLDnaute Junior
Re : Input box trop nombreuses

Bonjour bbb38, bonjour le forum

Un début de solution, à tester. Comment souhaites-tu enregistrer les nouvelles références des fabricants ?
Sur la feuille « Condense », à quel moment, les colonnes C, D, E, doivent être complétées ? ET à quoi correspondent les chiffres mentionnés sur la ligne 1 (1, 5, 10, 20, 49) ?
Effectivement tu n'est pas loin du compte même si j'ai un message box qui m'indique "Code non réalisé". Ce message est effectivement prévu dans ton code mais je ne sais pas quel est son but et en l’occurrence il empêche de sélectionner un devis et je suis obligé de quitter.

La feuille Nomenclature client n'est pas concernée par le code.
Dans la feuille Condense, les colonnes A, C, D et toutes les colonnes contenant l’indication du devis (F, L, R...etc) ne sont pas concernées par le code.

Les colonnes A, B, C, D et toutes les colonnes Devis sont renseignées AVANT de lancer le code.

Les chiffres en ligne 1 donnent les infos du devis à effectuer, ce peut être comme dans l'exemple directement les quantités à chiffrer mais ce pourrait être aussi Devis1, Devis2, etc....

J'ai modifié mon classeur exemple pour tenter de mieux m'expliquer en détaillant les différentes étapes à effectuer.

Encore merci pour ton attention

Bonne journée
 

Pièces jointes

  • DEVIS 2.xlsm
    25.2 KB · Affichages: 34

bbb38

XLDnaute Accro
Re : Input box trop nombreuses

Bonjour jp65, le forum,
Sur le fichier ci-joint, j’ai mentionné une question pour continuer la réalisation du code. Par contre, je suis absent jusqu’au 5 janvier 2015. Si tu n’as pas résolu ton problème, j’essaierai de t’aider dès mon retour.
Bonnes fêtes de fin d’année.
Cordialement,
Bernard
 

Pièces jointes

  • DEVIS 4.xlsm
    32.7 KB · Affichages: 36

jp65

XLDnaute Junior
Re : Input box trop nombreuses

Bonjour bbb38, le forum

Tout d'abord une très bonne année à toutes et tous.

Pour ma part je la commence comme je l'ai terminé avec mes soucis de useform.
J'ai malgré tout avancé et j'arrive à renseigner mon tableau.
Mon souci se situe au niveau de la variable xlgn (numéro de ligne) que je n'arrive pas à gérer lors de l'insertion d'une nouvelle ligne (nouvelle ligne pour ajouter un nouveau fournisseur).
Je jongle entre les divers listbox, textbox mais je n'ai pas (ou en tout cas je ne sais pas faire) de variables uniques
pour l'ensemble du code, comme c'est le cas avec les macros "classiques". Si je pouvais effectivement avoir des variables uniques (sans avoir à les répéter à chaque private sub), peut-être que mon souci serait plus simple à résoudre.

J'espère que quelqu'un pourra m'aiguiller afin de démarrer cette nouvelle année dans la joie.

Je joint le fichier initial avec le useform modifié et son code associé.

Bonne journée
 

Pièces jointes

  • jp65_DEVIS_v3.xlsm
    179 KB · Affichages: 38

jp65

XLDnaute Junior
Re : Input box trop nombreuses

Bonjour le forum

J'ai en partie résolu mon problème de variables.
En fait je colle ma variable N° de ligne dans une cellule (en dur) et chaque privatesub se sert ou non de cette cellules suivant le besoin.
Je coince encore quand il s'agit de modifier des données .

En fichier joint la dernière version du code pour ceux que ça intéressent éventuellement.

Bonne soirée
 

Pièces jointes

  • jp65_DEVIS_v4.xlsm
    169.1 KB · Affichages: 25

jp65

XLDnaute Junior
Re : Input box trop nombreuses

Bonjour le forum

Je suis arrivé au bout du code avec les diverses options de traitement dont j'avais besoin.
Le fichier joint contient cette version finale. Le post reste ouvert à ceux qui voudraient améliorer le code ou ajouter de nouvelles fonctions.
Je tient à remercier bbb38 pour m'avoir permis de démarrer et également job75 qui m'a enlevé une épine du pied sur un bout de code (voir le post https://www.excel-downloads.com/threads/effacer-cellules-non-contigues-dune-ligne.227720/).

Bonne soirée
 

Pièces jointes

  • jp65_DEVIS_v5.xlsm
    171.5 KB · Affichages: 36

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 335
Membres
102 865
dernier inscrit
FreyaSalander