VBA : Selection d'une plage de données problématique

Salut,

En résumé, voici ce que doit faire ma macro :

1 ) Selectionner toutes les données d'un TDC se trouvant en "A4"

2 ) Le copier

3 ) Le coller en "BB40"

4 ) Le coller (collage spécial, seulement les valeurs) en "A4"

5 ) Selectionner les valeurs dès "A7"

6 ) Faire un graph

7 ) Selectionner le TDC en "BB40"

8 ) Le couper

9 ) Le coller en "A4"

Après maints efforts , ma macro est presque au point.

Mais dans l'ordre décrit ici, le point 7) ne fonctionne pas.

Par contre, si je ne fais pas le graphique => suppression du point 6), elle fonctionne parfaitement. Je ne comprend pas pourquoi la présence du graphique vient perturber la sélection des données.

Voici le lien vers mon fichier : https://www.excel-pratique.com/~files/doc/Demo_creation_du_TDC_07_v01.zip

Fab

NB : Pour la selection des données, le code m'a été donné pour la plage dès "A7" et je l'ai adapté pour la sélection dès "BB40", mais c'est peut-être bien la qu'est le problème (en fait, je ne comprend pas très bien cette ligne, surtout le IV8) :

For Col = Range("IV8").End(xlToLeft).Column To 1 Step -1
If UCase(Cells(8, Col)) = "GRAND TOTAL" Then Exit For
Next Col
Range(Range("BB4"), Cells(Range("BB8").End(xlDown).Row, Col)).Select

Bonjour

Tu peux déjà remplacer

For Col = Range("IV8").End(xlToLeft).Column To 1 Step -1
    If UCase(Cells(8, Col)) = "GRAND TOTAL" Then Exit For
Next Col
Range(Range("A4"), Cells(Range("A8").End(xlDown).Row, Col)).Select
Selection.Copy
Range("BB4").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Copy

par

Range("A4").PivotTable.TableRange2.Copy Destination:=Range("BB4")

et par la même Manière

For Col = Range("IV8").End(xlToLeft).Column To 1 Step -1
    If UCase(Cells(8, Col)) = "GRAND TOTAL" Then Exit For
Next Col
Range(Range("BB4"), Cells(Range("BB8").End(xlDown).Row, Col)).Select

Application.CutCopyMode = False
Selection.Cut

par

Range("BB4").PivotTable.TableRange2.Cut

Pour ce qui concerne le graphe de TCD, je ne vois pas ce que tu veux obtenir !

@+Jean-Marie

Salut,

Merci beaucoup pour ta réponse (la 2ème partie), qui résout mon problème.

Je n'ai pas mis la première partie, car sauf erreur, en appliquant ton code, il ne fera pas le collage spécial en "A4" (point 4)).

Concernant la remise en place du TDC, point 7) à 9), je l'ai finalement fait en 2 fois (copier, coller et effacer), parceque sinon, pour une raison qui m'échappe il perd les données utilisées pour faire le graphique.

Pour info, je met le fichier final.

Merci encore.

Fab

Bonjour Fab

Je ne sais pas si j'ai compris où tu voulais aller.

Regarde le fichier, tu me diras...

Sur PC, à partir d'un tableau croisé dynamique, en cliquant avec le bouton droit, sur des cellules du tableau (pas sur un objet), un menu contextuel apparaît qui permet la création d'un graphe de tableau dynamique. (sur Mac, ce menu n'existe pas,snif)

C'est ce que j'ai fait dans le fichier, c'est la feuille qui se nomme "Graph Dynamique". Ce graph dispose des mêmes possibilités que le TCD, et garde dans la formule SERIE plage les valeurs (ce qui ne permet pas de faire une image du graphique).

Sur PC, quand une feuille graph est copiée dans un nouveau classeur, elle perd la formule SERIE, pour devenir une formule ne contenant que des valeurs, c'est ce que j'ai fait pour la feuille "Graph Fixe1". Sur le mac, la formule SERIE est gardée, snif

J'ai rajouté un module dans le code VBA, qui permet de faire l'image de ce graph dynamique et de la replacer dans le même fichier.

Adapte la présentation de ton graph, et le tour est joué.

J'espère que j'ai compris ton problème.

Dans le cas contraire, replace ton fichier, en supprimant les espaces dans les noms.

Bonne après-midi

https://www.excel-pratique.com/~files/doc/ImageGraphTDC.zip

@+Jean-Marie

Salut Jean-Marie,

Merci beaucoup pour ton aide.

Tout d'abord, voici le lien vers mon fichier (sans espace dans le nom) :

https://www.excel-pratique.com/~files/doc/DemocreationduTDC08v01.zip

En fait, idéalement, ce que je cherche à faire c'est pratiquement ton onglet "Graph Dynamique" (la seule différence est que j'aimerais avoir le graphique sur la même feuille que le tableau de données). Je ne sais pas comment tu as fait ça (probablement ta version Mac d'Excel), mais j'ai passé beaucoup de temps à essayer et j'étais arrivé à la conclusion que ce n'était pas possible.

Pour résumé, à partir du TDC, je veux avoir un graphique nuage de points.

Mais après maints essais et de nombreuses recherches, il semble qu'il ne soit plus possible de faire un graphique nuage de points à partir d'un TDC depuis la version Excel 97 (pour PC en tous cas).

Je dois décroiser mon tableau, pour faire le graph nuage de points, puis remettre le TDC sur la plage de cellule intialement selectionnée pour le graphe.

C'est compliqué (et si par la suite le nb de lignes ou de colonnes du TDC varie, il faut refaire le graphique), mais bon, avec ton aide, ma macro fait toutes ces opéartions très bien toute seule.

Voila. Merci encore pour ton aide.

Fab

Bonjour Fab

Le fichier que j'ai placé sur le forum a été fait sur un PC avec office 2000.

Sur "il semble qu'il ne soit plus possible de faire un graphique nuage de points à partir d'un TDC", oui j'en suis arrivé à la même conclusion. Mais un graphe en courbe ou en nuage de point est-il vraiment différent ?, seul doit changer le lien entre chaque point. J'ai donc utiliser un graph en courbe, auquel j'ai supprimé la ligne sur chaque Série du graph.

Pour ce qui est de placer le graph dynamique sur la même feuille que le TCD, après l'avoir créé (clique droit sur une cellule du TCD, puis sur graphe de TCD), fait un copier de la zone graphe, et va sur ta feuille du TCD, et fait un coller, ensuite tu pourras normalement supprimer la feuille Graphe.

Il se peut que tu vas devoir faire une macro pour changer le paramètre "ligne" de chaque séries, quand tu mets à jour ton TCD.

Bonne journée

@+Jean-Marie

Salut,

En fait, je crois que je vais garder la version avec les copier/coller multiples, car elles fonctionnent bien maintenant.

Dans la version complète de ma macro, je pars du tableau réacpitulatif des données et je selectionne la variable que je veux analyser. Ensuite, j'exécute la macro. Elle va créé le TDC, faire le graphique et tout formatter comme il faut => même si le tableau récapitulatif des données évolue et que le TDC doit être remis à jour de temps en temps, ce n'est pas un soucis.

Merci pour ton aide.

Fab

Rechercher des sujets similaires à "vba selection plage donnees problematique"