Copie de tableaux de dimensions variables

  • Initiateur de la discussion Initiateur de la discussion Fab117
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Fab117

XLDnaute Impliqué
Salut,
Sur la base de nombreux TDC, je fais des graphiques nuages de points.
Pour ce faire (https://www.excel-downloads.com/threads/legende-loufoque-dans-graph-issu-de-tcd.70634/.

Comme je dois faire ce style de graphs pour une multitude de produits, je souhaiterais automatiser la chose avec une macro.
Aujourd'hui, ce que je cherche serait une macro qui copie le tableau original, le copie (tel quel) dans la cellule "BB4", fasse un collage spécial (Values) sur l'original.
Ensuite j'insérerai la suite du code pour faire le graphique
Puis la macro copierai le tableau de base (dès cellule BB4), le collerait sur l'original et effacerait celui en "BB4".
Conscient que mon explication n'est pas très clair, voici un schéma :

http://imageshack.us

Ce qui va varier d'un TDC à l'autre est sa taille. La première cellule sera toujours en "A4". La difficulté est donc que la macro selectionne de "A4" à la dernière cellule du tableau.
Ci joint un fichier avec 2 TDC de tailles différentes.

Si quelqu'un a le temps de me donner un coup de main, ce serait sympa.

Fab
 

Pièces jointes

Re : Copie de tableaux de dimensions variables

Bonjour


Un premier jet pas retravailler mais qui devrait fonctionner

Code:
Sub Macro1()

    Range("A65536").Select
    Selection.End(xlUp).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlUp)).Select
    Range(Selection, Selection.End(xlUp)).Select
    Range(Selection, Selection.End(xlUp)).Select
    Selection.Copy
    Range("BB4").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.Copy
    Range("A4").Select
    Selection.PasteSpecial Paste:=xlPasteValues
   'TON CODE POUR GRAPHIQUE
   
    Range("BB65536").Select
    Selection.End(xlUp).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlUp)).Select
    Range(Selection, Selection.End(xlUp)).Select
    Range(Selection, Selection.End(xlUp)).Select
    Application.CutCopyMode = False
    Selection.Cut
    Range("A4").Select
    ActiveSheet.Paste

End Sub

test et dis nous si c'est ce que tu veux.

PS : je ne comprned pas trop pourquoi tu souhaite que la macro procede ainsi..., je serai curieux de voir ton code pour ton graphique.
 
Re : Copie de tableaux de dimensions variables

Salut,
Ton code marche parfaitement.
Par contre pour mon graphique ce n'est pas ça.
Je suis parti du tableau selectionné et avec l'enregistreur de macro, j'ai créé mon grapique.
J'ai ensuite inséré mon code au sein du tien.
Mais ... Ca bugg.
Le premier point est que la sélection est trop grande. En fait, l'idéal serait qu'après avoir fait le collage spécial, il reselectionne les cellules de ce tableau, mais dès "A7" (les lignes en dessus me posent problème pour le graphe).
En faisant ta macro pas à pas, j'ai vu qu'elle part de "A1" descend à "A65536".
Est-il possible de l'adapter pour qu'elle parte de A7 et ne selectionne que les données de ce tableau (sans toucher le TDC qui est en "BB4") ?
Merci.

Fab
 
Re : Copie de tableaux de dimensions variables

Salut,
Je le ferai dès lundi, mais le premier problème rencontré est qu'après avoir collé le tableau en collage spécial (Values), lorsque je démarre l'enregistreur de macro, il ne prend pas la plage dans une variable, mais de manière définie "A4:Xn". Je pense q'il faudrait donc à ce stade lui faire redéfînir la plage de cellule du tableau.

Fab
 
Re : Copie de tableaux de dimensions variables

bonsoir le fil

Public Sub tabcopypaste()
'tu changes les range pour autres emplacements

Range("A1:M" & Range("A1").End(xlDown).Row).Copy Destination:=Range("BB4")

Range("BB4:BN" & Range("BB4").End(xlDown).Row).Copy Destination:=Range("A7")

'efface
Range("BB4:BN" & Range("BB4").End(xlDown).Row).Clear


End Sub

à bientôt
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour