Renvoyer dans une cellule la valuer d'une TextBox en fonction d'une ComboBox

SSteve

XLDnaute Junior
Bonjour à tous

Je suis plus que novice en VBA et j'essaie de concevoir un petit programme par l'intermédiaire, entre autre, d'un UserForm.
J'y ai inséré une ComboxBox qui va récuperer des noms dans la colonne A.
J'ai ensuite une TextBox qui demande de renseigner un montant attribué à ce nom.
Le but est d'en renvoyer le montant inscrit dans la TextBox dans la ligne de réference de la Combobox.
Comme on peux reproduire plusieur fois la manip, il faudrait que ce renvoie se situe dans la première cellule de la fin de la ligne.
J'y ai passé quelques heures...
Merci de votre aide précieuse.
Steve
Je suis sous Excel 2010

Voici le code :

' Lots est une liste générée par un autre UserForm qui rempli la colonne A

Public MontantHT_Value As String

Private Sub Valider_Click()
If Lots = "" Then
MsgBox "Merci de renseigner le lot"
Lots.SetFocus
Exit Sub
End If

If MontantHT = "" Then
MsgBox "Merci de renseigner le montant HT de l'avenant"
MontantHT.SetFocus
Exit Sub
End If

If Not IsNumeric(MontantHT) Then
MsgBox "Merci de renseigner des chiffres !"
MontantHT = ""
MontantHT.SetFocus
Exit Sub
End If

' Copie du Montant dans la case Avenant correspondante
Dim POs As Range, Ccell As Range, CheckCell As Range, TextBox As Range

Set POs = Worksheets("Definition").Range("A2:A30")
Set TextBox = TextBox"Lots"
Set CheckCell = TextBox.Value


For Each Ccell In POs
If CheckCell.Value = Ccell.Value Then
ActiveSheet.Paste (MontantHT.Value)
Else
'
End If
Next

' Vidage des TextBox/ComboBox
Lots = ""
MontantHT = ""

End Sub
Private Sub Annuler_Click()
Unload AVENANT
Accueil.Show
End Sub
Private Sub MontantHT_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 46 Then KeyAscii = 44
End Sub
 

SSteve

XLDnaute Junior
Re : Renvoyer dans une cellule la valuer d'une TextBox en fonction d'une ComboBox

Post #44
Merci en tout cas ! ;)

La feuille est en Post #40

Post #45
Oui pourquoi pas ! Du coup la complication revient à inserer un 2e avenant à la bonne ligne...
 

Yaloo

XLDnaute Barbatruc
Re : Renvoyer dans une cellule la valuer d'une TextBox en fonction d'une ComboBox

Re,

Voici ton fichier modifié, il faut peut être faire un peu le ménage dans la feuille "Definition" car j'ai fait des essais et nous n'avons plus le même fichier Avenant.

A+

Edit: Modification fichier car logo laissé par Steve
 

Pièces jointes

  • Base V4.xlsm
    68.2 KB · Affichages: 50
  • Base V4.xlsm
    68.2 KB · Affichages: 53
  • Base V4.xlsm
    68.2 KB · Affichages: 55
Dernière édition:

SSteve

XLDnaute Junior
Re : Renvoyer dans une cellule la valuer d'une TextBox en fonction d'une ComboBox

"je ne sais pas" & Chr(13) & "quel entreprise mettre" LOL !!!


Je ne comprends pas comment tu incrémentes le nombre d'avenant d'autant que la cellule 'C3' n'est pas renseigné... je suis un peu perdu...
 

Yaloo

XLDnaute Barbatruc
Re : Renvoyer dans une cellule la valuer d'une TextBox en fonction d'une ComboBox

Pourquoi me parles-tu de la cellule C3, il s'agit de la colonne C dans la feuille "Tableau", non .... ou alors j'ai rien compris.

Si c'est la colonne C, il s'agit de cette ligne
WkB.Sheets(3).Cells(Rows.Count, 3).End(xlUp)(2) = Val(Right(NomFeuille, 2))
Je récupère les 2 lettres à droite de NomFeuille, VAl permet de transformer du texte sous la forme de chiffre.

A+
 

SSteve

XLDnaute Junior
Re : Renvoyer dans une cellule la valuer d'une TextBox en fonction d'une ComboBox

Il me semblait bien que c'était cette instruction mais je n'en comprends pas le sens.

Mais il faut aussi renseigner la cellule 'C3' de l'Avenant' créé dans le classeur AVENANT.

Mais je n'ai plus qu'à adapter cette formule.

En tout cas le code marche très bien ! une nouvelle fois merci !

Je vais me coucher car un peu naze !
Je mettrais l'ensemble au propre et le posterais demain.

A demain.

Bonne nuit !

Steve
 
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Renvoyer dans une cellule la valuer d'une TextBox en fonction d'une ComboBox

Pour l'avenant et la cellule C3

Il faut mettre ceci :
VB:
....
      'Détermine la ligne de copie
      i = Lots.ListIndex + 2
      ' Enregistrement des données
          With WkA.ActiveSheet
            .[B7] = WkB.Sheets(1).[B3]
            .[B8] = WkB.Sheets(1).[B4]
            .[B9] = WkB.Sheets(1).[B5]
            .[B10] = WkB.Sheets(1).[B6]
            .[C3] = Val(Right(NomFeuille, 2))
            .[E7] = WkB.Sheets(1).[B30]
            ......

A demain
 

SSteve

XLDnaute Junior
Re : Renvoyer dans une cellule la valuer d'une TextBox en fonction d'une ComboBox

Bonjour Martial, bonjour à tous,

J'ai enfin trouvé comment renseigner le nom de l'entreprise en fonction du choix du Lots dans le module AVENANT :cool:

Tu trouveras en annexe les fichiers corrigés...

J'ai quelques mises au point à te demander pour lesquelles je n'arrive pas à trouver les infos :
- comment annuler la definition d'un nom de cellules
- il y a un problème sur le focus du ComboBox Lots sur les deux UserForm
- comment empêcher que l'on puisse rentrer une autre information dans les ConboBox que le choix de la liste (quand la liste Lots de AVENANT est vide , tu peux renseigner autre chose, ce qui te créé une fiche avenant sur un lot non existant)
- peut-on permettre l'utilisation de la roulette sur les ComboBox ?

J'ai créé des liaisons depuis le classeur BASE vers les multiples autres fiches. Cependant, quand les cellules ne sont pas renseignées, un '0' est affiché dans les cellules cibles : est-il possible de ne pas rendre visible ce '0' tant que la cellule source est vierge ?

Merci de tes critiques :)
 

Pièces jointes

  • Base V4.xlsm
    75.1 KB · Affichages: 63
  • Base V4.xlsm
    75.1 KB · Affichages: 71
  • Base V4.xlsm
    75.1 KB · Affichages: 71

Yaloo

XLDnaute Barbatruc
Re : Renvoyer dans une cellule la valuer d'une TextBox en fonction d'une ComboBox

Bonsoir Steve,

1 -Pour créer, modifier ou supprimer le nom d'une cellule ou le nom d'une plage de cellules, sous 2010 :

- Onglets "Formules" puis "Gestionnaire de noms", sélectionner le nom puis agir suivant les besoins.

2 - Je ne pense pas que les ComboBox acceptent le focus.

3 - Dans les propriétés de ton ComboBox, tu as "Style" qui doit être sur 0-fmStyleDropDownCombo il faut mettre sur
2-fmStyleDropDownList

4 - Je n'ai jamais réussi à trouver l'utilisation de la roulette dans un ComboBox, ça existe peut-être....

5 - Affichage des 0, 2 solutions :
Soit modification des formules, par exemple, en Q2 =SI(SOMME(M2:p2)=0;"";SOMME(M2:p2))
Soit Onglet "Fichier", "Options avancées" puis aller chercher la ligne permettant de ne pas afficher les 0 (voir copie écran)
Afficher 0.jpg

A te relire

Martial
 

SSteve

XLDnaute Junior
Re : Renvoyer dans une cellule la valuer d'une TextBox en fonction d'une ComboBox

Merci pour tes réponses !!!

C'est génial et plaisant !!!

Mais quelle prise de tête pour arriver à décripter les codes...

Pour la souris, j'ai vu des trucs et en ai essayé certains mais .... pas convaincant pour l'instant...
 

SSteve

XLDnaute Junior
Re : Renvoyer dans une cellule la valuer d'une TextBox en fonction d'une ComboBox

Quand j'applique le 5e point précédent dans une feuille dans laquelle il y a une réference de liste, le tableau n'affiche pas les '0' mais la ComboBox les affiche : y a t il une solution à cela ?
 

Discussions similaires

Statistiques des forums

Discussions
311 740
Messages
2 082 049
Membres
101 882
dernier inscrit
XaK_