Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 rapide façon de copie de plusieurs rangées sur multiple feuilles en VBA

chingilou

XLDnaute Junior
bonjour les exceleurs et je reviens encore a vous pour m'aider a apprendre les bases de VBA
mon tableau de 6 colonnes et 200 lignes dans ma 1ere feuille (les rangées à copier)
je voulais programmer une macro qui me permet de copier ces données sur 8 autres feuilles j'ai réussi en vba mais ça prenais un temps fou ou une trés longue macro pour chaque rangée

exemple j'ai ces rangées A14:B195,D14195,C14:C195..in this order et voudrais les coller(special) sans formule à la feuille sheet2 cellule B2 et à sheet4 F10
comment faire sans lag [sans macro dans les feuilles concernées 2.3.4.5.6.7.8 pour pouvoir les enregistrer en xlsx]
merci
 

Pièces jointes

  • 44.xlsm
    221.5 KB · Affichages: 19

fanch55

XLDnaute Barbatruc
Salut,
J'ai rien trouvé de tout ça dans le classeur joint.
Une recommandation pour les fonctions dans les feuilles ( telles que ChiffreLettre ) : éviter de leur donner le même nom que le module où elles se trouvent ....
 

chingilou

XLDnaute Junior
salut fanch55 merci pour ta réaction
j'ai donné juste l'exemple je cherche la meilleure méthode et je rectifierai après
dans le fichier joint on vois à la feuille 1 "acceuil" les rangées a copier et les coller dans les autres feuilles

pourquoi le module ne dois avoir le même nom que la macro pour info merci d'avance ?
 

chingilou

XLDnaute Junior
OK merci pour l'info c'est vrai que dans mon "vrai fichier" c'est module 1.2.3..
j'ai changé pour être plus explicite mais je note ça
et pour le copie/coller de plusieurs rangées t'as pas une idée(s)
 

fanch55

XLDnaute Barbatruc
Pour te faire avancer:
J'ai transformé tes tableaux statiques en tables structurées en uniformisant les entêtes de colonnes





Faire un clic droit sur une entête de colonne de la table Tab_Accueil et exécuter "Facture Proforma"


La sub est dans le module Fanch55, le code de la feuille accueil s'est vu doté d'un événement Clic_Droit:

VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim Control
    If Not Intersect(Target, [Tab_Accueil[#headers]].Columns("D:F")) Is Nothing Then
            Cancel = True 'empêche l'affichage du menu d'Excel
            With Application.CommandBars("Cell")
                With .Controls.Add(msoControlButton, 1, , 1, True)
                    .Caption = "Facture ProForma pour " & Target.Cells(1)
                    .FaceId = 139
                    .OnAction = "'CopyTof """ & Target.Cells(1) & """'"
                    .BeginGroup = True
                End With
                .ShowPopup
                For Each Control In .Controls
                    If Not Control.BuiltIn Then Control.Delete
                Next
            End With
    End If
End Sub
 

Pièces jointes

  • Copie de 44.xlsm
    221.7 KB · Affichages: 4
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…