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
 

Yaloo

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

Bonsoir SSteve et bienvenu sur XLD,

Je suis plus que novice en VBA

C'est possible :confused: :confused: :confused:



Set TextBox = TextBox"Lots"
Set CheckCell = TextBox.Value

Ca, c'est bizarre :eek:

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

Plutôt :
VB:
  For Each Ccell In POs
    If CheckCell.Value = Ccell.Value Then
     Ccell.Value = MontantHT
    Else
      '
    End If
  Next

Mais sans fichier c'est un peu compliqué, car tu parles de combobox alors que dans la macro ça serait plutôt des checkbox, non ....

A te relire

Martial
 

Yaloo

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

Re,

Peu importe la question de mon post#6

A la fin de ta macro tu mets

VB:
' Copie du Montant dans la case Avenant correspondante
  Cells(Lots.ListIndex + 2, 11) = MontantHT

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

End Sub

A te relire

Martial
 

SSteve

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

C'est SUPER !!! Merci pour ce code... le temps que j'ai passé juste pour pouvoir renvoyer dans la bonne cellule.

En fait la colonne A ne comporte que des lettres.
Il est possible que je sois amené a rajouter un avenant à n'importe quel lot. Ce qui implique qu'il faudrait aller chercher la première case vide à la fin de la ligne à chaque appel de procédure...
 

Yaloo

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

Salut Steve,

Essaies avec ça en fin de macro.

VB:
' Copie du Montant dans la case Avenant correspondante
  c = Cells(Lots.ListIndex + 2, 14).End(xlToLeft).Column + 1
  If c < 11 Then c = 11
  Cells(Lots.ListIndex + 2, c) = MontantHT

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

End Sub

A+

Martial
 

SSteve

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

C'est exactement ca !!! Merci beaucoup !!!
Ce que représente ce programme est en quelques sortes une base de données.
Je vais m'atteler maintenant à récuperer chaque ligne pour créer un document spécifique à chaque lot en word.

Merci encore !
Surement à bientôt :eek:
 

SSteve

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

Bonsoir à tous !

Je pensais que je me dépatouillerais plus facilement : je pète un cable... J'ai essayé pleins de combinaisons differentes en glanant des exemples sur multiples sites...

Si une ame charitable pouvait me donner la main...

J'ai un fichier 'Base', feuille 'Definition', dans laquelle je renseigne un nombre de postes travaux avec plusieurs colonnes renseignées
J'ai un autre classeur "OS" dans lequel j'ai une feuille matrice

Le but est de :
- créer une copie de la matrice dans son classeur intitulé par le nom du poste (colonne A du classeur "Base") seulement si la feuille n'existe pas (il ne peux y avoir qu'une seule feuille à ce nom)
- renseigner les cellules de cette copie par la ligne à l'origine de cette création
- faire cela pour l'ensemble des lignes
- Si la feuille existe, passer à la ligne suivante

Ci-joint les fichiers en question.

Merci d'avance.
 

Pièces jointes

  • Base.xlsm
    49.1 KB · Affichages: 142
  • OS.xlsx
    13.6 KB · Affichages: 146
  • Base.xlsm
    49.1 KB · Affichages: 156
  • Base.xlsm
    49.1 KB · Affichages: 150

Yaloo

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

Bonsoir Steve,

Voir le fichier ci-joint, quelques modifications dans ton code.

A+

Martial
 

Pièces jointes

  • Base.xlsm
    50.2 KB · Affichages: 139
  • Base.xlsm
    50.2 KB · Affichages: 155
  • Base.xlsm
    50.2 KB · Affichages: 152

SSteve

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

Bonsoir Martial et merci une nouvelle fois pour ton aide et ton retour.

Est-il possible de conditionner la création de ces fiches au fait qu'elle n'existe pas encore ?
 

Yaloo

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

Re,

Ce n'est pas ce que fait le fichier de mon post#12 ?

La feuille est créée si elle n'existe pas, si elle existe alors on passe à la suivante.

A+
 

SSteve

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

Lorsque je lance le code, il m'ouvre bien le classeur 'OS' et me créer les feuilles.

Si je relance le code alors que le classeur est ouvert, j'ai un MsgBox me demandant si je suis sur de vouloir ouvrir une nouvelle fois le classuer 'OS' et que sinon toutes les données seront effacées
Si je fais non à cette MsgBox, j'ai une erreur 1004
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG