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
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.
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.
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...
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.
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
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...
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
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.
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
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