Modifier des données d'un tableau a partir UserForm

Chot51

XLDnaute Nouveau
Bonjour,


J'ai fais un fichier sur lequel j'ai une feuille avec un bouton et une autre servant de BASE DE DONNEE (feuille "Répertoire"). AVec le bouton feuille 1 j'ouvre une UserForm sur laquelle j'ai une listBox1 presentant les éléments de la colonne A de "Répertoire". lorsque je clique sur un des éléments, une Text box afiche les données de la colonne B, un autre Textbox colonne C...... jusqu'à P.
je souhaiterais pouvoir changer le contenu de la cellule colonne P a partir de la UserForm. En fait je change le contenu dans la UserForm et quand je clique sur le CommandBouton2 je voudrais que se changement prenne effet dans mon tableau.
Mon probleme est que le changement prend effet sur la derniere ligne du tableau quelque soit la ligne sélectionnée alors que moi je veux l'attribué à la ligne correspondant à ma sélection dans ma listBox1.

Voici ce que j'ai écris pour le boutton 2

Private Sub CommandButton2_Click()
Dim Plage As Range, Cell As Range
Dim Recherche As String, Adresse As String
Dim Ligne As Integer, N As Integer
Dim C As Range

With Sheets("Répertoire")

Ligne = Feuil2.Range("A" & "65536").End(xlUp).Row
Set Plage = Feuil2.Range("A" & "2:" & "A" & Ligne)
For Each Cell In Plage
If Cell.Value = ListBox1.Value Then

Feuil2.Range("P" & Ligne).Value = TextBox14

End If
Next Cell
End With
End Sub


Merci pour votre aide
 

bqtr

XLDnaute Accro
Re : Modifier des données d'un tableau a partir UserForm

Bonsoir Chot51

Essaye avec ceci :

Feuil2.Range("P" & ListBox1.ListIndex + 2).Value = TextBox14

ListIndex renvoie un n° qui correspond à la position de l'élément dans la ListBox. La numérotation commence à zéro. Le premier élément = 0, le deuxième = 1 .../.... Donc pour avoir le n° de ligne tu rajoutes 2.

Ex : Si tu sélectionnes le premier élément de la ListBox, cela donne 0 + 2 donc la Cellule "P" & 2 ==> P2.

Bonne nuit


 
Dernière édition:

Chot51

XLDnaute Nouveau
Re : Modifier des données d'un tableau a partir UserForm

En fait c pas bon car ma listbox ne présente pas les items dans l'ordre du tableau, il me faudrait une formule qui trouve la ligne en fonction de se qui est marqué dans la colonne A.

Merci
 

bqtr

XLDnaute Accro
Re : Modifier des données d'un tableau a partir UserForm

Re bonjour,

Alors essaye comme ca :

If Cell.Value = ListBox1.Value Then
Cell.Offset(0,15).Value = TextBox14

Offset(ligne,colonne) permet de faire un décalage par rapport à une cellule de référence.

A+

 

jp14

XLDnaute Barbatruc
Re : Modifier des données d'un tableau a partir UserForm

Bonjour

Une autre approche pour résoudre ce problème.
Utiliser une listbox ou combobox avec une colonne cachée qui contient le numéro de ligne correspondant à la donnée visible.

Code:
ComboBox1.ColumnCount = 2
ComboBox1.Clear
' alimentation de la combobox en stockant des infos : feuille adresse
ComboBox1.ColumnWidths = "90;0" ' 0 pour la colonne cachée

    For i = 2 To Sheets("Sheet1").Range("A65536").End(xlUp).Row
        ComboBox1.AddItem Sheets("Sheet1").Range("A" & i)
        ComboBox1.List(ComboBox1.ListCount - 1, 1) =  i ' dans la deuxième colonne on stocke 
'le numéro de la ligne
    Next i 

le code suivant permet de récupérer le numéro de la ligne

ad1 = ComboBox1.List(ComboBox1.ListIndex, 1)


JP
 
Dernière édition:

Discussions similaires

Réponses
21
Affichages
293
Réponses
6
Affichages
140

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote