Insérer variable contenu dans textbox dans cellule

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 !

roseverte

XLDnaute Junior
Bonjour,

J'ai crée une base de donnée qui comprend trois colonnes :
Colonne A = Fabricant
Colone B = Désignation (conporte plsieurs composants)
Colonne C = divers

J'ai crée une macro avec trois textbox et un bouton trier qui doit inserer une ligne et y placer le contenu des 3 variables puis trier par order alphabétique le tableau.

Dans la premiere textbox on rentre le nom du fabricant, dans la deuxieme les composants, et dans la troisieme se que l'on veut.

j'ai crée un code pour la premiere texbox qui cherche la premiere cellule vide et y copie la valeur de la textbox dedans.

Private Sub TextBox1_Change()
Dim i As Integer
i = Selection.Offset(1, 0).Select
' selection de la case de départ
Range("A7").Select
' boucle de recherche
Do While IsEmpty(ActiveCell) = False
Selection.Offset(1, 0).Select
Loop
' Copie la variable contenu dans le textbox dans la cellule
For Each CTRL In Me.Controls
If TypeOf CTRL Is MSForms.TextBox Then
i = i + 1
Cells(i, 1) = CTRL End If

Next CTRL

End Sub

Mais cela me marque "erreur 1004 erreur définie par l'application ou par l'objet"

J n'arrive pas à la réparer!

merci d'avance!!

Roseverte
 
Re : Insérer variable contenu dans textbox dans cellule

Merci merci merci!!!

C'est trop bien!!
c'est tout a fait ça!
Bon pour la derniere macro normallement (j'espere !) ça devrait allé!

Si j'ai un problème je laisserai un message!!

En tout cas merci encore!!!


Ah et comment on fait pour signaler que c'est résolu sur le site?
 
Re : Insérer variable contenu dans textbox dans cellule

Bonjour,

Bon j'ai un problème!!

Je m'explique : j'ai une macro avec une textbox ou dedans on rentre le nom d'un composant on clique sur rechercher et ttes les entreprises qui crées ce composant s'affichent dans la listbox en dessous de la textbox.
Donc j'ai trouvée un code qui doit faire la recherche, je l'ai modiié mais il n'affiche rien dans la listbox!


Voici le code :
Private Sub Rechercher_Click()
Dim l1 As Integer, l2 As Integer, ltxt0 As Integer
Dim i As Integer, txt0 As String, txt1 As String

'effacer la listbox
ListBox1.Clear

'lire le champ nom
'adapter TextBox1.Text d'aprés ta Form
'tu peut entrer un nom partiel
'Ex: pour "dup" on recupere "DUPONT" "DUPIUS" "DUPALAIS"..
txt0 = Désignation.Text

'longueur de la chaine à comparer
ltxt0 = Len(txt0)
'si la chaine est vide on ne fait rien
If ltxt0 = 0 Then Exit Sub

'on commence la recherche

'l1 est le numéro de la ligne ou commence la recherche
l1 = 7 'par exemple

'on regarde ou se trouve la dernière ligne du taleau
ActiveCell.SpecialCells(xlLastCell).Select
l2 = ActiveCell.Row

'revient en haut du tableau
Range("A7").Select

'de la première à la dernière ligne
For i = l1 To l2
'placer le contenu de la cellule dans txt1
txt1 = Cells(i, 1).Text
'comparer en majuscules avec le nom cherché
If UCase(Left(txt1, ltxt0)) = UCase(txt0) Then
'si c'est bon on l'ajoute a la ListBox1
'je conserve en préfixe la valeur de la ligne ou il se trouve
ListBox1.AddItem (Str(i) & " : " & txt1)
End If
Next

'on regarde le contenu de ListBox1
Select Case ListBox1.ListCount
Case 0 ' vide
MsgBox "N'éxiste pas"

Case 1 ' un seul correspond
'lire l'enregistrement 0
txt1 = ListBox1.List(0)
'recuperer la n° de la ligne ou se trouve le nom dans le tableau
'c'est le préfixe que j'ai conservé plus haut
i = Val(txt1)
'lire les valeur de la ligne du taleau (Nom,Prenom...)
Fabricant.Value = Range("A" & i).Value


Case Else 'sinom montre la listbox pour faire un choix
ListBox1.AddItem (" 0 : Fermer la liste")
ListBox1.Visible = True

End Select

End Sub


Merci d'avance!!!

(si il faut que je crée un nouveau sujet de conversation me le dire je le ferai!!)

Roseverte
 
Re : Insérer variable contenu dans textbox dans cellule

Select * from BD where "Désignation LIKE%" un peu comme ça?

Ben j'avais éssayer au début mais ça voulais pas compiler!

Et le probleme c'est que le composant que l'on cherche il ne peut pas obligatoirement etre au debut de la chaine.

Dans la colonne 2 (Désignation) j'ai listé les composants que l'entreprise crées
ex : resistances, condensateurs, ...
 
Re : Insérer variable contenu dans textbox dans cellule

Merci!
Mais je n'es pas tout compris

If UCase(txt1) like "*"& UCase(txt0)&"*" Then

je dois le remplacé dans le code

'de la première à la dernière ligne
For i = l1 To l2
'placer le contenu de la cellule dans txt1
txt1 = Cells(i, 1).Text
'comparer en majuscules avec le nom cherché
If UCase(txt1) Like "*" & UCase(txt0) & "*" Then
'si c'est bon on l'ajoute a la ListBox1
'je conserve en préfixe la valeur de la ligne ou il se trouve
ListBox1.AddItem (Str(i) & " : " & txt1)
End If
Next

?

J'ai donc éssayé mais cela ne m'affiche rien dans la listbox quand je clique sur rechercher!
 
Re : Insérer variable contenu dans textbox dans cellule

RE


tu pourrais joindre ton fichier que tu as en ce moment STP cela va être plus simple

Car là c'est bizarre mais tu cherches dans la colonne A
txt1 = Cells(i, 1).Text indique colonne 1
alors que dans l'exemple précédent c'était en colonne 2 les produits
 
Re : Insérer variable contenu dans textbox dans cellule

Merci merci merci!

Dsl d'avoir répondu si tard!

Bon alors il fonctionne sans problème, par contre (c'est un détail!) mais quand il y a qu'un seul fabricant il l'affiche et apres il met un messsage d'erreur " erreur d'execution 424 objet requis".
Private Sub CommandButton2_Click()
Dim l1 As Integer, l2 As Integer, ltxt0 As Integer
Dim i As Integer, txt0 As String, txt1 As String

'effacer la listbox
ListBox1.Clear

'lire le champ nom
'adapter TextBox1.Text d'aprés ta Form
'tu peut entrer un nom partiel
'Ex: pour "dup" on recupere "DUPONT" "DUPIUS" "DUPALAIS"..
txt0 = Designation.Text

'longueur de la chaine à comparer
ltxt0 = Len(txt0)
'si la chaine est vide on ne fait rien
If ltxt0 = 0 Then Exit Sub

'on commence la recherche

'l1 est le numéro de la ligne ou commence la recherche
l1 = 7 'par exemple

'on regarde ou se trouve la dernière ligne du taleau

l2 = Range("A7").End(xlDown).Row


'de la première à la dernière ligne
For i = l1 To l2
'placer le contenu de la cellule dans txt1
txt1 = Cells(i, 2).Text
'comparer en majuscules avec le nom cherché
If UCase(txt1) Like "*" & UCase(txt0) & "*" Then
'si c'est bon on l'ajoute a la ListBox1
'je conserve en préfixe la valeur de la ligne ou il se trouve
ListBox1.AddItem (Str(i) & " : " & Cells(i, 1))
End If
Next

'on regarde le contenu de ListBox1
Select Case ListBox1.ListCount
Case 0 ' vide
MsgBox "N'éxiste pas"

Case 1 ' un seul correspond
'lire l'enregistrement 0
txt1 = ListBox1.List(0)
'recuperer la n° de la ligne ou se trouve le nom dans le tableau
i = Val(txt1)
'lire les valeurs de la ligne du taleau (Nom,Prenom...)
Fabricant.Value = Range("A" & i).Value <= il souligne la


Case Else 'sinom montre la listbox pour faire un choix
'ListBox1.AddItem (" 0 : Fermer la liste")<= si on l'utilise elle marque 0=efacer la liste à la fin de la listbox
ListBox1.Visible = True

End Select
End Sub

en tout cas merci enormement!!(je me repete mais c'est vrai!!)
 
Re : Insérer variable contenu dans textbox dans cellule

Ben j'ai enlevé la fin du code a partir du message "rien trouvé" et il y a plus l'erreur!!

Bon ben j'ai fini!!!!!

Encore merci!!!
Je vais essayer de faire des améliorations donc je vais shercher commen faire!!

Si j'ai un problème je previens!!

En tout cas merci beaucoup c'est super bien!!

Roseverte
 
Re : Insérer variable contenu dans textbox dans cellule

Bonjour,
Je reviens avec une nouvelle question!!

Je souhaiterai ajouter un bouton modifier a mon userfom chercher fabricant.

Donc je résume, j'ai crée une base de donnée qui comprend trois colonnes :
Colonne A = Fabricant
Colone B = Désignation (conporte plsieurs composants)
Colonne C = divers

Mon userform fabricant contient un combobox avec la liste des fabricants et quand j'en choisi un les donnes de se fabricant se prositionne dans textbox1 (colonne désignation) et textbox2 (colonne divers).

cela fonctionne parfaitement pas de problème!
Je voudrais rajouter un bouton modifier ou on peu directement modifier les valeurs dans les textbox pour on appuis sur modifier et cela met das les cellules corespondantes les nouvelles valeurs!

pour mon code j'ai une erreur il me dit "erreur d'execution 1004 la methode range de l'objet global a échoué"

Private Sub CommandButton3_Click()
With Sheets("BD")

range("A" & ligSelect).Value = ComboBox1.Value
range("B" & ligSelect).Value = TextBox1.Value
range("C" & ligSelect).Value = TextBox2.Value

End With

End Sub

Merci d'avance!!

Roseverte
 

Pièces jointes

- 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

Discussions similaires

Retour