Suppression de lignes et actualisation tableau croisé en fonction d'une condition

steph71

XLDnaute Occasionnel
Bonjour à tous,
et merci de porter attention à ma demande sur laquelle je planche.

Voilà, j'ai un fichier avec des données assez simples en deux colonnes (SITE et SURFACES)
J'ai un deuxième onglet avec un tableau croisé.

BESOIN :
à l'ouverture du fichier, un formulaire me demande de saisir le nom d'un site.
Une fois validé, la macro supprime de la source toutes les données qui ne concernent pas ce site et actualise le tableau croisé en mettant en étiquette le site choisi

Voilà, j'espère que ma demande est claire
Merci d'avance pour votre aide
Stph71
 

Pièces jointes

  • Classeur1.xlsx
    11.6 KB · Affichages: 55
  • Classeur1.xlsx
    11.6 KB · Affichages: 61
  • Classeur1.xlsx
    11.6 KB · Affichages: 62

steph71

XLDnaute Occasionnel
Re : Suppression de lignes et actualisation tableau croisé en fonction d'une conditio

Bonjour,

merci pour ce premier retour mais cela ne fonctionne pas quand je saisis un site en G1 :
aucune suppression des données des autres sites dans la source
creation d'un onglet TDC mais sans creation d'un tableau croisé.

En outre, j'aimerais que le choix du site se fasse à l'ouverture du fichier dans un formulaire
puis que la macro propose d'enregistrer le fichier après le choix du site.

je continue à chercher mais je n'avance pas.

Merci pour votre aide
 

DoubleZero

XLDnaute Barbatruc
Re : Suppression de lignes et actualisation tableau croisé en fonction d'une conditio

Bonjour, steph71, le Forum,

Sur mon poste, après saisie d'une valeur en G1, le TCD est créé automatiquement. Je ne sais aider plus avant :(.

Bon courage et à bientôt :)
 

steph71

XLDnaute Occasionnel
Re : Suppression de lignes et actualisation tableau croisé en fonction d'une conditio

OK, merci pour ton aide, je vais continuer à chercher comment supprimer les données sources qui ne sont pas liées au site choisi.
Mais je patine grave.
 

chris

XLDnaute Barbatruc
Re : Suppression de lignes et actualisation tableau croisé en fonction d'une conditio

Bonjour
Bise à 00

Le TCD se crée bien chez moi également

Par rapport à la description du besoin : si on supprime les autres sites de la source, je ne vois pas trop l'intérêt du TCD.
Il serait plus logique de transformer la source en tableau avec une ligne de total qui s'ajusterait automatiquement lors de la suppression...
 

steph71

XLDnaute Occasionnel
Re : Suppression de lignes et actualisation tableau croisé en fonction d'une conditio

il me faut un tableau croisé pour d'autres besoins pour lesquel j'ai la solution.

J'en suis là et je n'avance pas. je débute en VBA

J'ai crée un useform à l'ouverture du fichier afin de choisir le SITE.
Je cherche maintenant comment récupérer la valeur saisie dans le formulaire afin :
- qu'elle soit reprise en entete de colonne du tableau croisé,
- que les lignes de la source non concernées par le site choisi soient supprimées.
 

Pièces jointes

  • TEST.xlsm
    22.1 KB · Affichages: 49
  • TEST.xlsm
    22.1 KB · Affichages: 49
  • TEST.xlsm
    22.1 KB · Affichages: 44

chris

XLDnaute Barbatruc
Re : Suppression de lignes et actualisation tableau croisé en fonction d'une conditio

Bonjour

Si tu debutes en VBA, la première chose à faire est d''analyser le code et les choix de l'exemple fourni par DoubleZero.

Tu verras qu'elle nomme les choses. Ton TCD, ton formulaire et tes objets de formulaire doivent être nommés avec des noms à toi parfaitement reconnaissables.

D'autre part, puisque tu as Excel 2010, mets ta source sous forme de tableau.

N'oublie pas aussi l'enregistreur de macros qui peut te donner la syntaxe.
Si tu modifie le site du TCD existant tu obtiens le code
Code:
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("site"). _
        ClearAllFilters
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("site"). _
        CurrentPage = "C"
Il faut donc que le code du bouton OK de ton formulaire appelle une procédure contenant ce type de code en lui passant la valeur de ta ComboBox1 renommée (ChoixSite par exemple).

Tu auras quelque chose comme cela :
Code:
Private Sub OK_Click()
    If ChoixSite.Value <> "" Then
        Call MAJ(ChoixSite.Value)
        Unload FormChoix
    End If
End Sub
(Tu peux voir qu'il reste à gérer le cas ou l'utilisateur clique sur OK sans avoir rien choisi)

et dans un module
Code:
Sub MAJ(Sitechoisi As String)
'
    Worksheets("TC").PivotTables("Tableau croisé dynamique1").PivotFields("site"). _
        ClearAllFilters
    Worksheets("TC").PivotTables("Tableau croisé dynamique1").PivotFields("site"). _
        CurrentPage = Sitechoisi
End Sub

A toi d'utiliser l'enregistreur macro pour voir comment supprimer les lignes : tu reviens ensuite si nécessaire pour de l'aide s'il faut optimiser ce code.

C'est en faisant qu'on apprend le plus par en disant je voudrais...
 

steph71

XLDnaute Occasionnel
Re : Suppression de lignes et actualisation tableau croisé en fonction d'une conditio

Merci Chris pour ton aide,
j'ai réussi pour le code de mise à jour du filtre du TCD en fonction du choix dans le formulaire.
Je galère pour la suppression des données dans la source en fonction du choix du site dans ce même formumaire
 

chris

XLDnaute Barbatruc
Re : Suppression de lignes et actualisation tableau croisé en fonction d'une conditio

RE

On n'automatise bien que ce que l'on connait.

Donc 1ere chose réfléchis à la meilleure solution pour le faire manuellement.
Une fois cette solution trouvée utilise l'enregistreur de macros
Ne reste plus qu'à optimiser le code obtenu et on peut t'aider sur cela.
 

steph71

XLDnaute Occasionnel
Re : Suppression de lignes et actualisation tableau croisé en fonction d'une conditio

RE,

j'arrive à faire un tri via la macro sur l'onglet DONNEES mais les critères de TRI sont saisis en dur dans le code (tout sauf B).
Or, ce que je veux, c'est supprimer tous les sites différents de celui choisi dans le formulaire
Et je ne trouve pas la syntaxe qui permet de trier même via l'enregistreur de Macro
 

Pièces jointes

  • TEST.xlsm
    31.8 KB · Affichages: 44
  • TEST.xlsm
    31.8 KB · Affichages: 46
  • TEST.xlsm
    31.8 KB · Affichages: 48

steph71

XLDnaute Occasionnel
Re : Suppression de lignes et actualisation tableau croisé en fonction d'une conditio

Bonjour à tous,
je ne suis pas parvenu à avancer sur mon projet pendant ce week end.
je n'arrive toujours pas à trouver le code qui permette de supprimer toutes les données des sites autres que celui choisi via le formulaire.
Merci pouv votre
Steph71
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 942
Membres
103 989
dernier inscrit
jralonso