listbox activex

Pour toutes vos questions à propos d'Excel ...

listbox activex

Messagepar marrek209 » 10 Août 2009, 16:10

Bonjour

bon étant toujours débutant, je vous fait part de mon problème:

J’essaie de copier coller des valeurs de certeines colonnes dans une listbox controle activex, et j’y arrive pas !! (ça ne m’affiche pas les bonnes valeurs: j'ai l'impression que ca me copie les cellules de la mauvaises feuille et dune ligne en dessous de ma target...)


En gros j’ai deux feuilles :
« Feuil1 » : ou je vais changer les valeurs d’une des cellules de la colonne D
« Interactions » : ou je vais copier les valeurs issues de mon choix sur la feuille Feuil1.

Pour plus de précisions:
En « Feuil1 » je retiens les valeurs des colonnes C et D, soit "c "et "d" (ligne ou se situe ma target), pour faire la recherche des valeurs a afficher dans la listbox
En « interactions », je cherche la ligne ou les valeurs "c" et"d" se trouvent et je la copie a partir de la colonne 5 et je la colle dans la listbox



Voila le fichier que j’ai fait:

Private Sub Worksheet_Change(ByVal Target As Range)


Dim ligne As Long

Dim a
Dim b
Dim cel As Range
Dim line As Long

a = Target.Offset(0, -1).Value
'j'enregistre la valeur (texte ou numerique) de la cellule à gauche de celle dont je vais changer la valeur

b = Target.Value
' enregistre la valeur de la cellule dont je change la valeur
Sheets("Interactions").Select 'je me place dans la feuille ou j'ai mon tableau de données

For line = 4 To 46 'pour ligne de 4 à 46 de ce tableau
If a = Worksheets("Interactions").Cells(line, 3).Value And b = Worksheets("Interactions").Cells(line, 4).Value Then
'Si on a la meme combinaison de valeur "a" et "b" à une certine ligne de ce tableau

For Each cel In Range(Cells(line, 5), Cells(line, 19))
'Pour chaque cellule de cette ligne je copie les valeurs si non vides dans ma listbox située sur la feuille "Feuil1"

If cel.Value <> "" Then
Sheets("Feuil1").Select
Worksheets("Feuil1").ListBox1.AddItem cel.Value
End If
Next cel

End If
Next line



End Sub

Pouvez vous m'aider?svp
Cordialement
marrek209
Utilisateur occasionnel
 
Messages: 22
Inscription: 16 Juil 2009, 10:14
Version Excel: 2007 FR

Messagepar Dan_de_pic » 17 Août 2009, 14:21

Bonjour

Selon ce que je comprends, tu aimerais activer ta macro lorsque tu changes quelque chose dans la colonne D.
Seulement celle-ci est aussi activée chaque fois qu'une cellule quelconque de 'feuil1' est modidiée. Hors c'est exatement ce que tu fais en fin de macro.
Pour éviter ce problème, il faut contrôler si la cellule modifiée se trouve dans la colonne D. Si ce n'est pas le cas, il faut directement sortir de la macro.

Donc inscrit cette ligne au début de ta macro :
Code: Tout sélectionner
    If Target.Column <> 4 Then Exit Sub


Cela drevrait s'arranger.

Bonne journée
Dan_de_pic
Dan_de_pic
Membre fidèle
 
Messages: 119
Inscription: 12 Août 2007, 12:54
Localisation: Grenchen, CH


Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot] et 2 invités