XL 2016 Copie de donnée vers feuill

  • Initiateur de la discussion Initiateur de la discussion mohaamri
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

mohaamri

Guest
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

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

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
  • Question Question
Réponses
5
Affichages
217
Didierpasdoué
D
Réponses
2
Affichages
159
Retour