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
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
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...
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
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.
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
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