Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Copie de donnée vers feuill

mohaamri

XLDnaute Nouveau
Salut
j'ai essayé de trouver une solution pour modifier les cellules avec deux textbox mais un bug apparait svp yat'il modification pour ce code vba

 

Pièces jointes

  • Listbox vers textbox.xlsm
    34.4 KB · Affichages: 11

Dranreb

XLDnaute Barbatruc
Bonjour.
Essayez comme ça :
VB:
Option Explicit
Private Rng As Range, LCou As Long
Private Sub UserForm_Initialize()
   Set Rng = Feuil1.[A1].Resize(Feuil1.[A1000000].End(xlUp).Row, 2)
   With ListBox3
      .ColumnCount = 3
      .ColumnWidths = "40;60;40"
      .List = Rng.Value
      End With
   End Sub
Private Sub ListBox3_Click()
   LCou = ListBox3.ListIndex + 1
   TextBox3.Text = Rng(LCou, 1).Value
   TextBox4.Text = Rng(LCou, 2).Value
   End Sub
Private Sub CommandButton1_Click()
   If LCou = 0 Then Exit Sub
   Rng(LCou, 1).Value = TextBox3.Text
   Rng(LCou, 2).Value = TextBox4.Text
   ListBox3.List = Rng.Value
   End Sub
 

job75

XLDnaute Barbatruc
Bonjour mohaamri, Bernard, le forum,

Si l'on veut avoir le choix entre ajouter, modifier, supprimer :
VB:
Dim P As Range 'mémorise la variable

Private Sub CommandButton1_Click() 'Ajouter
If TextBox3 = "" Then TextBox3.SetFocus: Exit Sub
If Application.CountIf(P.Columns(1), TextBox3) Then MsgBox "'" & TextBox3 & "' existe déjà...": Exit Sub
P(P.Rows.Count + 1, 1) = TextBox3
P(P.Rows.Count + 1, 2) = TextBox4
UserForm_Initialize
End Sub

Private Sub CommandButton2_Click() 'Modifier
If ListBox3.ListIndex = -1 Then MsgBox "Sélectionnez une ligne...": Exit Sub
If TextBox3 = "" Then TextBox3.SetFocus: Exit Sub
P(ListBox3.ListIndex + 2, 1) = TextBox3
P(ListBox3.ListIndex + 2, 2) = TextBox4
UserForm_Initialize
End Sub

Private Sub CommandButton3_Click() 'Supprimer
If ListBox3.ListIndex = -1 Then MsgBox "Sélectionnez une ligne...": Exit Sub
If MsgBox("Supprimer '" & ListBox3 & "' ?", 4) = 7 Then Exit Sub
P.Rows(ListBox3.ListIndex + 2).Delete xlUp
UserForm_Initialize
End Sub

Private Sub ListBox3_Click()
TextBox3 = ListBox3.Column(0)
TextBox4 = ListBox3.Column(1)
End Sub

Private Sub UserForm_Initialize()
Set P = Sheets("AMRI").[A1].CurrentRegion
If P.Rows.Count = 1 Then ListBox3.Clear: CommandButton2.Enabled = False: CommandButton3.Enabled = False: Exit Sub
P.Sort P(1), xlAscending, Header:=xlYes 'tri alphabétique
ListBox3.List = P.Rows(2).Resize(P.Rows.Count - 1, 2).Value
End Sub
A+
 

Pièces jointes

  • Listbox vers textbox(1).xlsm
    25 KB · Affichages: 4
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…