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

  • Auteur de la discussion nuxaly
  • Date de début

nuxaly

Nouveau membre
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!!!
 

Freeman23

Expert
Il faut les ajouter un par un dans ta liste, donc utilisez une boucle for par exemple.
 

zeb

Modérateur
:pfff:

Vérifie ce que tu fais :

Code:
MsgBox "A & i:C & i"
MsgBox "A"
MsgBox A
MsgBox "i"
MsgBox i
MsgBox "A" & "i"
MsgBox A & i
MsgBox "A" & i
MsgBox A & "i"

As-tu compris ?
 

nuxaly

Nouveau membre

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 !!!! :??:
 

nuxaly

Nouveau membre
excuse moi , j'ai pas compris , parsque je suis encore debutante en vba excel... tu peut expliqué?

merci

nuxaly!!!

 

Freeman23

Expert
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

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

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



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

 

nuxaly

Nouveau membre
salut,

merci beaucoup freeman pour l'explication, maintenant j'ai bien compris et sa marche aussi. :D
merci... :)

nuxaly!!!
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 718 045
Membres
1 586 389
Dernier membre
ROCKET8
Partager cette page
Haut