Copier un tableau à l'aide d'une macro

  • Initiateur de la discussion Initiateur de la discussion koccymel
  • 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 !

koccymel

XLDnaute Nouveau
Bonjour!

Je suis débutante avec les macros et là je travaille sur un truc depuis un bon bout de temps et j'y suis presque mais il reste un bug à régler!

Voilà! Dans le fichier "Nouveau2012-1" dans l'onglet "véhicules" j'ai fais une macro relié au bouton de commande "Cliquez pour ajouter un véhicule". Cette macro va donc dans la feuille "Données" et sélectionne un tableau et vient ensuite le coller dans la feuille "véhicules" à la suite des autres tableaux. Le problème est que je voudrais, si j'appui à nouveau sur le bouton "Cliquez pour ajouter un véhicule" que le tableau se recopie à nouveau sous le nouveau tableau... je ne sais pas si c'est clair ni si c'est réalisable...quelqu'un pourrait m'aider?😕

Un immense merci !!!
 

Pièces jointes

Re : Copier un tableau à l'aide d'une macro

Salut Koccymel
,
Je te propose cette solution.
J'ai nommé ton tableau vierge 'TbVierge' (dans la feuille Données), comprenant une ligne vierge en plus permettant de séparer les tableaux avec une ligne d'écart.
J'ai nommé une cellule 'InsertVehicule' correspondant au lieu d'insertion du tableau dans la feuille 'Véhicules'

Ensuite à l'appel du bouton pour ajouter un véhicule, le code suivant s'exécute :

Code:
    Worksheets("Données").Range("TbVierge").Copy
    Worksheets("Véhicules").Range("InsertVehicule").Insert Shift:=xlDown

La première ligne met en mémoire le tableau vierge (comprenant une ligne vierge en dessous du tableau) et le copie à la cellule InsertVéhicule en insérant les lignes copiées. Le tout sans utiliser les méthodes select pour ne pas voir excel parcourir les feuilles.

J'espère que ça te conviendra.

@++
David

PS : je te joins ton fichier modifié
 

Pièces jointes

Re : Copier un tableau à l'aide d'une macro

Bon, j'ai donc modifié un peu mon fichier en appliquant ce que tu viens de me montrer. J'aimerais savoir s'il existe une façon pour ne pas que mon tableau soit coupé en 2 et répartis sur 2 pages...
Je te renvoi le fichier modifier pour que tu comprennes....
 

Pièces jointes

Re : Copier un tableau à l'aide d'une macro

Re Koccymel,

j'ai modifié un peu le code, remplace le par celui ci-dessous :

Code:
Dim InsertionLignes As String
    If Worksheets("Véhicules").Range("InsertVehicule").Row Mod 50 >= 47 Then
        InsertionLignes = Worksheets("Véhicules").Range("InsertVehicule").Row & ":" & Worksheets("Véhicules").Range("InsertVehicule").Row + 7
        Rows(InsertionLignes).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    End If
    Worksheets("Données").Range("TbVierge").Copy
    Worksheets("Véhicules").Range("InsertVehicule").Insert Shift:=xlDown

On défini en début de procédure une variable, InsertionLignes, qui recevra plus tard la plage de lignes à insérer au besoin.

On teste ensuite si le modulo de la ligne de la cellule InsertVehicule par 50 nous donne 47 (ou plus mais généralement ce sera ce chiffre), auquel cas InsertionLignes recoit la plage de la ligne de InsertVehicule+7 lignes et on insert le nombre de lignes (soit 8 lignes au total).

Bref il me semble que cela fonctionne, puisque l'on ne peut mettre que 3 tableaux de véhicules par pages.

@++
David
 
- 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

  • Question Question
Microsoft 365 macro TCD
Réponses
4
Affichages
272
Réponses
4
Affichages
439
Retour