Listbox activex
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
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 :
If Target.Column <> 4 Then Exit SubCela drevrait s'arranger.
Bonne journée
Dan_de_pic