Changer contenu colonne dans listbox avec commandbutton

Bonjour,

Mon soucis est le suivant:

J'ai un userform avec une listbox qui contient des informations de la feuille Donnée avec trois colonnes (Nom, Prénom et Disponible)

J'aimerais quand je clic sur mon commandbutton de l'userform qu'elle me remplace la valeur de la colonne 3 du listbox par la valeur du textbox

exemple

colonne 1 colonne2 colonne3

Test1 Test1 ok

Test2 Test2 ok

Test3 Test3 ok

Test4 Test4 ok

La valeur de mon textbox est "Pas Dispo"

En cliquant, j'aimerais que tous les ok soit remplacer par Pas Dispo

En vous remerciant pour votre aide

19classeur1.xlsm (20.13 Ko)

Bonjour xFlox,

Si j'ai bien compris, voici le code de ton bouton

Private Sub CommandButton2_Click()
  Dim LstObj As ListObject
  Dim Lig As Long
  Set LstObj = Sheets("Donnée").ListObjects("Donnée")
  For Lig = 1 To LstObj.ListRows.Count
    LstObj.DataBodyRange.Range("C" & Lig).Value = Me.TextBox1.Value
  Next Lig
End Sub

@+

Bonjour…

Le tableau étant nommé Tb, en des termes moins raffinés mais de base (donc plus classiques et plus simples)

Dim n As Long, L As Long
Private Sub UserForm_Initialize()
    ListBox1.List = [Tb].Value: TextBox1 = ListBox1.List(0, 2)
    L = [Tb].Rows.Count
End Sub

Private Sub CommandButton2_Click()
    For n = 0 To L - 1: ListBox1.List(n, 2) = TextBox1: Next
End Sub

ou

Dim L As Long
Private Sub UserForm_Initialize()
    ListBox1.List = [Tb].Value: TextBox1 = ListBox1.List(0, 2)
End Sub
Private Sub CommandButton2_Click()
    For n = 0 To ListBox1.ListCount-1: ListBox1.List(n, 2) = TextBox1: Next
End Sub

Remarques :

-1 car les lignes de la liste ont un index (.ListIndex) qui commence toujours à 0,

à Bruno (salut), le tableau ne change pas encore !

Bonjour Ordonc,

Avant de répondre as-tu au moins ouvert le fichier de xFlox, je ne penses pas

Le Rowsource de la ListBox est liée directement au tableau, ton code donnera donc ceci

2020 09 13 10h12 19

C'est bien de vouloir donner une solution, mais faut-il se placer dans le contexte du demandeur

Re

La demande « J'aimerais quand je clic sur mon commandbutton de l'userform qu'elle me remplace la valeur de la colonne 3 du listbox par la valeur du textbox» était très claire pour moi.

Je n’ai pas jugé utile d’ouvrir le classeur (exemple ou pas ?).

Je donne une proposition plus générale car, d’une part, j’évite la propriété Rowsource* qui peut poser des problèmes et d’autre part, je ne me casse pas la tête avec de nouvelles expressions peu commodes à écrire, à lire et à interpréter quand on les connait mal.

Pour le contexte, il suffit de supprimer l’initialisation de la liste par cette propriété pour éviter des ennuis notamment avec d’autres changements prévus par la suite.

*je ne l’utilise que si je veux faire apparaître les titres de la source (ColumnHeads à True) .

Bonjour Ordonc et Bruno,

Je vous remercie de votre temps pour mon soucis

Les deux proposition sont super et vous en remercie

J'aurais une autre question si je peux me le permettre (a mon avis sa sera plus vers le code de Ordonc car dorénavant les données ne seront plus prise par un tableau mais par donnée choisi par une listbox)

Je m'explique:

Dans mon userform1 ce qui change:

- c'est que ma listbox sera alimenter par une autre listbox dans un autre userform (celui-ci est appelé avec la touche récupérer Donnée)

Quand je clic sur Récupérer Donner, mon userform2 s'ouvre et me propose les donnée divers donnée a afficher dans ma listbox de mon userform1

Voila mon souci (qui ai le même que ma question précèdente)

Quand j'ai mes donnée dans ma listbox de mon userform1

j'aimerais changer toute la colonne 3 par la valeur de mon textbox

Je vous remercie encore de votre temps pour mon soucis

11classeur1-2.xlsm (26.91 Ko)

Bonjour à tous,

J'ai utilisé une partie du code d'Ordonc ....

ric

17classeur1-2v2.xlsm (28.79 Ko)

Bonjour Ric,

Comme d'habitude niquel

Merci

Bonjour…

Autre proposition et, bien entendu, ce n’est un exemple de réflexion car des demandes ponctuelles peuvent recevoir plusieurs réponses différentes, certaines ne pouvant être utilisées quand le projet se développe !

Dans le souci de simplifier les travaux*, il est préférable de réduire le nombre de formulaires, de contrôles, de lignes de programmations...

Dans le fichier joint, il n’y en a qu’un formulaire et que 2 onglets, le second contenant les différents tableaux conçus.

Il me semble t’avoir déjà proposé le cas de listes dépendantes, non ?

* Remarques :

- Tant qu’à utiliser la propriété RowSource, j’ai intégré le titre de la source.

- Un des multiples intérêts des Tableaux (ListObjects) est de ne pas se préoccuper de leur situation !

- Ici, il y a un intrus mais l’abus n’est pas nocif.

...

Bonjour Ordonc,

Merci pour ta proposition

J'ai rajouter pour faire apparaître le T_33

If L1.ListIndex = 2 Then Set R = [T_33]

Merci

Bonjour Flo

Je te remercie pour tes retours d’autant plus que je suis ravi de constater que tu analyses les propositions qui te sont faites .

Bonne continuation dans ton désir de progresser dans l‘apprentissage* d’Excel.

* ce n’est pas péjoratif car on est tous dans le même bain.

J’aimerais bien savoir combien sont ceux qui connaissent parfaitement plus de 25 % des capacités de ce logiciel !

Oups, ce n’est, hélas pas mon cas mais « je me soigne » !

Bonjour Ordonc,

Je te remercie du compliment, j'essaie de comprendre (j'ai bien dis essaie car suis un novice en vba ) toujours les questions que je pose (déjà pour moi et par respect des personnes qui me consacre du temps).

Rechercher des sujets similaires à "changer contenu colonne listbox commandbutton"