Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Contribuez
Contribuez Placez ici vos codes, sources, trucs et astuces que vous souhaitez partager avec les membres du club.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/12/2007, 15h43   #1
Expert Confirmé Sénior
 
Avatar de casefayere
 
Homme Dominique LEMAIRE
Salarié Champagne
Inscription : décembre 2006
Messages : 2 636
Détails du profil
Informations personnelles :
Nom : Homme Dominique LEMAIRE
Âge : 58
Localisation : France, Ardennes (Champagne Ardenne)

Informations professionnelles :
Activité : Salarié Champagne
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : décembre 2006
Messages : 2 636
Points : 5 075
Points : 5 075
Par défaut alimenter listbox (plusieurs colonnes)avec données filtrées (1 col)

Bonjour,

Si cette procédure peut servir, on m'a dit qu'elle est correcte :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Private Sub produitfiltre()
Dim Plage As Range, Cel As Range
Dim produit
Dim ERREUR
  With Sheets("feuil1")
  If .AutoFilterMode Then 'vérifie si le filtre automatique est actif et
     .AutoFilterMode = False 'l'enlève
End If
 
    produit = TextBoxproduitcherche 'valeur entrée dans un textbox pour alimenter le filtre
    ERREUR = .Range("a2").End(xlDown).Offset(0, 0).Row 'variable donnant le n° de la dernière lg à filtrer
 
    .Range("c2").AutoFilter
    .Range("c2").AutoFilter Field:=3, Criteria1:="*" & produit & "*" 'applique le filtre
    Set Plage = .Range("g2", .Range("g2").End(xlDown))
    Set Plage = Plage.Cells.SpecialCells(xlCellTypeVisible) 'tableau avec données filtrées
 
    If Plage.Count > ERREUR Then 'eviter de renvoyer une erreur ou un bug
    If .AutoFilterMode Then
     .AutoFilterMode = False
    Exit Sub 'pour un filtre non trouvé
    End If
    ListBoxPRODUITS.Clear 'vide la listbox
    For Each Cel In Plage 'et la réalimente
    With ListBoxPRODUITS
      .AddItem Cel(1, -3)
      .Column(1, .ListCount - 1) = Format(Cel(1, -2), "#,##0.00 €")' format a changer suivant besoin
      .Column(2, .ListCount - 1) = Format(Cel(1, 0), "#,##0.00 €")' format a changer suivant besoin
 
      .Column(3, .ListCount - 1) = Format(Cel(1, 4), "#,##0.00 €")' format a changer suivant besoin
 
      .Column(4, .ListCount - 1) = Format(Cel(1, 5), "###0")' format a changer suivant besoin
 
      .Column(5, .ListCount - 1) = Cel(1, 1)
    End With
 
    Next Cel
Selection.AutoFilter 'enlève le filtre de la feuille
  End With
End Sub
casefayere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 16h00   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Arrives-tu à faire la même avec en-têtes de colonnes ?
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2007, 22h23   #3
Expert Confirmé Sénior
 
Avatar de casefayere
 
Homme Dominique LEMAIRE
Salarié Champagne
Inscription : décembre 2006
Messages : 2 636
Détails du profil
Informations personnelles :
Nom : Homme Dominique LEMAIRE
Âge : 58
Localisation : France, Ardennes (Champagne Ardenne)

Informations professionnelles :
Activité : Salarié Champagne
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : décembre 2006
Messages : 2 636
Points : 5 075
Points : 5 075
Par défaut a ouskel'nor

Bonsoir,
Je viens seulement de voir ta question, non je ne sais pas faire les entetes de colonnes avec cette procédure, peut être, tu aurais des conseils à me donner
sinon, je chercherai et te donnerai la réponse (si j'en ai une)

a+
casefayere est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h17.


 
 
 
 
Partenaires

Hébergement Web