Se connecter avec
S'enregistrer | Connectez-vous

afficher le contenu d'une cellule dans une listbox en vba

Dernière réponse : dans Programmation

salut a tous;

j'ai un petit probleme avec l'ffichage de contenu d'une cellule dans une textbox.

j'ai met le code suivant pour ajouté les contenus des cellules de (par exemple) A3 à F3 dans une textbox :


ListBox1.AddItem Range("A & i:C & i").Value

il m'affiche un message d'erreur suivant: erreur d'execution '1004'
la methode 'range' de '_objet' à echoué


merci d'avance!!
nuxaly!!!
Lassé par la pub ? Créez un compte

Freeman23 a dit :
Il faut les ajouter un par un dans ta liste, donc utilisez une boucle for par exemple.

oui j'ai utiliser ue boucle for mais mon probleme c'est que je sais pas comment faire afficher le contenu dans une listbox, si tu pe m'aider voila le code qui j'ecris (je veus que mon code ma'ffiche la 3eme colonne des mots rechercher dans une listbox) :

Dim Cible1 As String
Dim cible2 As String
Dim n As Long

Cible1 = TextBox1.Text
Cible2 = TextBox2.Text
n = Rows.Count

For i = 1 To n
If StrComp(Cible1, Cells(i, 1)) = 0 And StrComp(cible2, Cells(i, 2)) = 0 Then
i = n + 1
r = True

ListBox1.AddItem Cells(i, 3).Value

End If
Next i

le message d'erreur est : erreur définie par l'application ou pas l'objet.

merci

nuxaly !!!! :??: 

Bonjour,

Ce qu'à voulu t'expliquer Zeb c'est la différence entre une chaine de caractère et une concaténation de variables. Pour tester ce qu'il t'a mis, met toi en VBA puis ouvre la fenêtre Execution et dans cette fenêtre tu testes chacune de ses lignes une par une et à chaque fois tu valides la ligne (entrée) et ca te renvoie le résultat.

N'oublies pas les balises code...

Si j'ai bien compris ton problème tu as 2 colonnes ou tu sélectionnes une valeur dans 2 TextBox et tu veux remplir une liste avec le résultat de la recherche de ses 2 valeurs.

Cible1 et Cible 2 sont inutile puisque tu peux lire directement la valeur dans les textBox (d'ailleur le .text aussi logiquement).
StrComp ne te sert pas à grand chose tu peux comparer 2 chaines de caractères directement avec un =.

Il est bien vu aussi de préciser sur qu'elle onglet tu travailles.

Il peut être aussi plutot utile pour la lisibilité de renommer tes TextBox et ListBox car quand tu en seras à la ListBox999 tu t'y retrouveras plus :D 

  1. With Sheets("toto") ' nom de l'onglet à corriger
  2. n = .Rows.Count ' Améliorable... voir sujet cité plus bas
  3. For i = 1 To n
  4. If TextBox1 = .Cells(i, 1) And TextBox2 = .Cells(i, 2) Then
  5. ListBox1.AddItem Cells(i, 3).Value
  6. End If
  7. Next ' le i n'est pas nécessaire
  8. End with


Voilà un sujet général sur Excel :

http://www.presence-pc.com/forum/ppc/Programmation/vous...

Et ici tu devrais trouver des trucs utiles (notamment pour row.count) pour t'aider à l'avenir mais je reste dans le coin mais malheureusement je ne suis pas constament connecté.

http://www.presence-pc.com/forum/ppc/Programmation/exce...
Lassé par la pub ? Créez un compte