![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Salut le forum
Sur un TCD en vba: Est il possilbe de rentrer une selection du genre feuille1!'R1C1:R(derniere cellule non vide)C10 ? Ci joint le fichier avec la maro. On doit surment pouvoir faire plus simple, c'est un mix entre les macro automatiques et moi. J'accepte volontier vos ameliorations Merci @+ Chris |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
Si j'ai bien compris, ce dont tu as besoin, c'est de savoir combien de données tu as trié pour faire ton TCD.
Dans la positive, fait les 2 modifs écrites ci dessous dans ta macro : Sub Cumul_annuel_pannes() ' ' Macro9 Macro ' Macro enregistrée le 25/11/2004 par Chrisrian Nouyrigat ' Application.ScreenUpdating = False madate = InputBox("Quelle année voullez vous traiter ?", "Somme des pannes machine", "aaaa") If madate = "" Then Exit Sub 'If madate < 36526 Then 'MsgBox "Date non valide", vbCritical: Exit Sub 'End If titre_graph = "Cumul temps pannes annuel " & " " & (madate) nomdate = "" & Format(madate, "mmm") & " " & Format(madate, "yyyy") Sheets("histogen").Select Range("a2").Select Selection.AutoFilter Selection.AutoFilter Field:=12, Criteria1:=madate Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.Columns("j")).Select Selection.Copy Sheets.Add ActiveSheet.Paste '///////////////////////////////////////////////////// 'determination du nombre de lignes d'interet NbLignes = Selection.Rows.Count '///////////////////////////////////////////////////// ActiveSheet.Name = "temp" Sheets.Add ActiveSheet.Name = "temp1" Range("A1").Select Application.CutCopyMode = False '///////////////////////////////////////////////////// 'intégration de la variable dans la création du TCD ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatab ase, SourceData:= _ "'temp'!R1C1:R" & NbLignes & "C10").CreatePivotTable TableDestination:="'temp1'!R1C1", TableName:= _ "Tableau croisé dynamique3", DefaultVersion:=xlPivotTableVersion10 '//////////////////////////////////////////////////// ...... Cdt Frédéric |
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
Bonjour,
Il est possible d'utiliser la commande suivante qui est relativement simple pour définir les sources de données : SourceData:=Range("A1").CurrentRegion.Address Avec le début des données en A1 A+ |
|
|
#5 (permalink) |
|
Guest
Messages: n/a
|
Bonjour Chris,
Voici une solution complémentaire à celle de Frédéric. J'ai apporté quelques changements à ta macro comme demandé. Il reste certainement des améliorations à faire mais avant je souhaiterais que tu regarde le fichier ci-joint et faire part de tes commentaires. J'ai également du suspendre deux instruction de la amcro qui provoquait une erreur; a confirmer avec ta version d'excel qui ne semble pas être celle d'Excel 2000. Je pense qu'il y avait moyen de faire cela sans macro et interactif en créant un TCD sur base de la base de données existante. Il te suffit de placer le champ date en champ de page dans le TCD et de choisir le date voulue pour la visualisation de tes résultats aussi dans la graphique que dans le TCD. Mais peut-être veux faire autre chose des résultats. Dans l'attente de te lire @+ Dan |
|
|
#6 (permalink) |
|
Guest
Messages: n/a
|
salut dan, salut le forum
Effectivement tu as amelioré certains points de la macro Surtout sur la selection de plages de données. Comme je debute j'essaye de me debrouiller avec les fonctions que je connais. Je vais conserver ma macro car les utilisatuer du fichier ne savent pas du tout se servir d'excel (pour l'instant on en est au double click) Alors si je leur parle de tcd c peut etre un peut tot. merci @+ Chris |
| ANNONCES | |
| Liens sociaux |
| Outils de la discussion | |
|
|