Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
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 11/08/2011, 17h31   #1
Invité régulier
 
Inscription : août 2009
Messages : 23
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 23
Points : 9
Points : 9
Par défaut Utiliser valeur listbox pour champ TCD

Bonjour,

Dans un TCD qui est créé automatiquement à partir d'un bouton et de choix dans un formulaire je souhaiterais sélectionner les éléments du champ de ligne en fonction des éléments choisis dans une listbox.

Le morceau de code ci-dessous fonctionne très bien pour des éléments fixes.
Code :
1
2
3
4
With ActiveSheet.PivotTables("Tableau croise").PivotFields("Nom")
        .PivotItems("tartempion").Visible = False
        .PivotItems("trucmuche").Visible = True
End With
Ce que je n'arrive pas à faire c'est remplacer tartempion par un élément sélectionné de la listbox. J'ai esayé des choses du style
Code :
PivotItems(ListeNom.List(2))
ou encore
Code :
1
2
NomTCD=ListeNom.List(2)
PivotItems(NomTCD)
mais rien n'y fait.

Si j'arrivais à le faire pour 1 élément je devrais m'en sortir pour le faire sur tous avec une boucle.

Merci par avance à ceux qui auraient une idée lumineuse pour ce faire.

Amicalement
Scrabblouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 21h44   #2
Invité régulier
 
Inscription : août 2009
Messages : 23
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 23
Points : 9
Points : 9
Par défaut Finalement ça fonctionne

Bonjour,

En fait le pb provenait des noms utilisés pour remplir la listbox.
Comme je remplissais déjà par ailleur une combobox avec des noms sans doublon j'ai réutilisé cette liste. Mais comme tous ces noms n'ont pas de données dans l'onglet utilisé pour créer le TCD ça ne fonctionnait pas car je demandais au TCD de valider ou non une donnée inexistante.
Comem ça pourrait resservir, voici les codes utilisés pour remplir ma listbox sans doublon et utiliser la sélection dans le TCD.

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
'Remplit la listbox sans doublon
ReDim Tableau(1 To 1)
Tableau(1) = Cells(1, 1)
For Each c In Sheets("Commandes").Range("Cdes_Nom")
    Present = False
    For i = 1 To UBound(Tableau)
        If Tableau(i) = c Then Present = True
    Next i
    If Not Present Then
        ReDim Preserve Tableau(1 To UBound(Tableau) + 1)
        Tableau(UBound(Tableau)) = c
    End If
    For i = 1 To UBound(Tableau)
        For j = 1 To UBound(Tableau)
            If Tableau(i) < Tableau(j) Then
                temp = Tableau(i)
                Tableau(i) = Tableau(j)
                Tableau(j) = temp
            End If
        Next j
    Next i
Next c
Liste_revendeurs.List = Tableau
'Supprime la ligne vide créée lors du remplissage de la liste
With Liste_revendeurs
    .RemoveItem (0)
    .AddItem "TOUS", 0
    .Selected(0) = True
    .TopIndex = 0
End With
Code :
1
2
3
4
5
6
7
8
9
10
11
12
'L'élément 0 est "Tous" il est donc inutile de faire un traitement puisque 'toutes les données sont validées par défaut lorsque le
'champ est ajouté au tcd
If Liste_revendeurs.Selected(0) = True Then
    Exit Sub
Else
    For i = 1 To Liste_revendeurs.ListCount - 1
        If Liste_revendeurs.Selected(i) = False Then
            ActiveSheet.PivotTables("Tableau croise").PivotField _
            ("Nom").PivotItems(Liste_revendeurs.List(i)).Visible = False
        End If
    Next i
End If
A bientôt
Scrabblouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web