Bonjour tout le monde,
Pourriez vous m'aider à corriger le code de macro qui permet de changer et d'ajouter un élément dans un tableau ?
ci joint le classeur
Merci beaucoup
Version imprimable
Bonjour tout le monde,
Pourriez vous m'aider à corriger le code de macro qui permet de changer et d'ajouter un élément dans un tableau ?
ci joint le classeur
Merci beaucoup
Bonjour,
En premier lieu, tu expliques clairement tes besoins ensuite, tu postes le code si tu en as un et seulement si au fil de la discussion on se trouve bloqué, tu peux poster un fichier mais pas dans ton 1er message et surtout avec ce type d'explication voulant dire "faites le travail et retournez moi le classeur" :
Je ne suis pas sûr que seront nombreux ce qui vont ouvrir ton classeur surtout un classeur avec macro !Citation:
Pourriez vous m'aider à corriger le code de macro qui permet de changer et d'ajouter un élément dans un tableau ?
Je t'encourage a formuler clairement ton problème et poster le code entre les balises # (Code)
Hervé.
Excusez moi mais c'est juste parceque je ne connais pas la règle exacte d'appeler un tableau dans VBA , j'appelais avant la colonne exacte avc Range ("B6:B") par exemple
J'ai un userform ou j'aimerai bien insérer un nouvel élement dans TextBox et qu'il me l'ajoute dans le tabelau en cliquant sur CommandButton1:
Code:
1
2
3
4
5 Private Sub CommandButton1_Click() TextBox1.AddItem Sheets("Feuil1").Range("Tableau1[Zone]") End Sub
*Nom du tableau : Tableau 1
Nom de la colonne dans laquelle je veux insérer le nouvel lément : Zone
Re,
L'objet TextBox ne possède pas de méthode "AddItem" cette méthode est propre aux ComboBox ou ListBox.
Si tu utilise une Liste, c'est la collection "ListObjects" qu'il faut utiliser. Un exemple, pour récupérer une valeur dans la liste et l'affecter au TextBox :
et son inverse :Code:
1
2
3
4
5
6
7
8
9
10
11 Private Sub CommandButton1_Click() 'pour mettre dans le TextBox la valeur contenue dans la dernière cellule de la première colonne de la liste With Sheets("Feuil1").ListObjects("Tableau1") TextBox1.Text = .DataBodyRange.Cells(.DataBodyRange.Rows.Count, 1).Value End With End Sub
Hervé.Code:
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub CommandButton1_Click() 'ajoute la valeur du TextBox dans la liste dans la première colonne et première ligne vide 'ce qui a pour effet de redimensionner la liste With Sheets("Feuil1").ListObjects("Tableau1") .DataBodyRange(.DataBodyRange.Rows.Count + 1, 1).Value = TextBox1.Text End With End Sub
Merci beaucoup Theze
juste une autre modeste question si c'est possible
pour le deuxième code
j'aimerai bien ajouter une condition et dire
if textbox1.value existe déjà dans la DataBodyRange.Rows liste then
MsgBox("ce nom existe déjà")
else
do lo code
je m'excuse et merci beaucoup
Bonjour,
Regarde si ça te convient et adapte :
Hervé.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Private Sub CommandButton1_Click() Dim Cel As Range With Sheets("Feuil1").ListObjects("Tableau1") 'effectue la recherche sur la 1ère colonne de la liste Set Cel = .DataBodyRange.Columns(1).Find(TextBox1.Text, , xlValues, xlWhole) 'si trouvé, message sinon, ajout If Not Cel Is Nothing Then MsgBox "Ce nom existe déjà dans la liste, il ne sera pas rajouté !" Else 'ajoute la valeur du TextBox dans la liste dans la première colonne et première ligne vide 'ce qui a pour effet de redimensionner la liste .DataBodyRange(.DataBodyRange.Rows.Count + 1, 1).Value = TextBox1.Text End If End With End Sub