[RESOLU] Envoyer la valeur d'un TextBox vers la bonne cellule d'un tableau

Ternoise

XLDnaute Occasionnel
Bonjour le forum

Afin de comprendre le code VBA, je me fais des petits fichiers de démo.

Pour celui en pièce jointe, j'ai réussi a faire pas mal de chose en m'aidant d'exemples.

Mais je n'arrive pas à faire 2 choses :

- envoyer la valeur de 2 TextBox vers les bonnes cellules

- Trier une colonne


Merci de vos lumières !

David
 

Pièces jointes

  • DAVID - RécupPMT.xls
    50.5 KB · Affichages: 64
Dernière édition:

Misange

XLDnaute Barbatruc
Re : Envoyer la valeur d'un TextBox vers la bonne cellule d'un tableau

Tu veux envoyer Quoi vers où ?
Moi j'ai regardé ton code et vu que ça coinçait sur cette ligne que je t'ai corrigée mais la description de ton problème ne me suffit pas ne sachant pas de quel textbox tu parles et de quelles cellules de destination.
 

Ternoise

XLDnaute Occasionnel
Re : Envoyer la valeur d'un TextBox vers la bonne cellule d'un tableau

Bonsoir Misange

La valeur de TextAttribution doit aller dans la colonne H
La valeur de TextDateAttribution doit aller dans la colonne I

correspondant à la ville (TextVille) et date (TextDate)

J'ai l'habitude de ne pas être toujours clair !
David
 

Ternoise

XLDnaute Occasionnel
Re : Envoyer la valeur d'un TextBox vers la bonne cellule d'un tableau

Bonjour à tous

Voici plus d'explications...

J'initialise avec ceci

Private Sub UserForm_Initialize()

k = 0
With Sheets("BDPMT")
For i = 3 To .[B65000].End(xlUp).Row
Me.ListPMT.AddItem
Me.ListPMT.List(k, 0) = .Cells(i, 2)
Me.ListPMT.List(k, 1) = .Cells(i, 3)
Me.ListPMT.List(k, 2) = .Cells(i, 4)
k = k + 1
Next i
End With

Je remplie les textBox en cliquant dans la ListBox

Private Sub ListPMT_Click()
Dim Lig As Integer
Lig = ListPMT.ListIndex
TextVille = ListPMT.List(Lig, 0) '0 = 1ère colonne
TextLieux = ListPMT.List(Lig, 1) '1 = 2ème colonne
TextNom = ListPMT.List(Lig, 2)
End Sub

Maintenant je modifie un TextBox et j'aimerais envoyer les valeurs des TextBox dans la Feuille
mais cela fonctionne pas

Private Sub CmdValide_Click()

ListPMT.Value = ""

Lig = ListPMT.ListIndex

With Sheets("BDPMT")
.Range("B" & Lig).Value = TextVille.Value
.Range("C" & Lig).Value = TextLieux.Value
.Range("D" & Lig).Value = TextNom.Value
End With

Unload Me
UsfPMT.Show

End Sub

Merci de votre aide
David
 

Ternoise

XLDnaute Occasionnel
Re : Envoyer la valeur d'un TextBox vers la bonne cellule d'un tableau

Bonsoir et merci Docmarti

L'initialisation et l'affichage dans les TextBox fonctionne.

C'est le troisième code qui ne fonctionne pas. Celui qui envoi les TextBox modifiés dans la feuille.
Il doit manquer un bout de code !
 

Docmarti

XLDnaute Occasionnel
Re : Envoyer la valeur d'un TextBox vers la bonne cellule d'un tableau

Mettre chaque numéro de ligne dans la colonne 3 du ListBox
Puis le récupérer dans la variable numeroDeLigne quand on sélectionne un item du ListBox.

Docmarti

Code:
Dim numeroDeLigne As Long
 
Private Sub CmdValide_Click_Click()
Lig = numeroDeLigne

'ListPMT.Value = ""

With Sheets("BDPMT")
.Range("B" & Lig).Value = TextVille.Value
.Range("C" & Lig).Value = TextLieux.Value
.Range("D" & Lig).Value = TextNom.Value
End With

Unload Me
UsfPMT.Show

End Sub

Private Sub UserForm_Initialize()

k = 0
With Sheets("BDPMT")
For i = 3 To .[B65000].End(xlUp).Row
Me.ListPMT.AddItem
Me.ListPMT.List(k, 0) = .Cells(i, 2)
Me.ListPMT.List(k, 1) = .Cells(i, 3)
Me.ListPMT.List(k, 2) = .Cells(i, 4)
Me.ListPMT.List(k, 3) = i 'Conserver le numero de chaque ligne
k = k + 1
Next i
End With
End Sub
 
Private Sub ListPMT_Click()
 
Lig = ListPMT.ListIndex

numeroDeLigne = ListPMT.List(Lig, 3) 'Mettre le numero de ligne dans la variable numeroDeLigne
TextVille = ListPMT.List(Lig, 0) '0 = 1ère colonne
TextLieux = ListPMT.List(Lig, 1) '1 = 2ème colonne
TextNom = ListPMT.List(Lig, 2)
End Sub
 

Discussions similaires