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,D14:D195,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
exemple j'ai ces rangées A14:B195,D14:D195,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
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 ?
 

fanch55

XLDnaute Barbatruc
pourquoi le module ne dois avoir le même nom que la macro pour info merci d'avance ?
Parce qu'Excel interprète mal le nom de la fonction et tu risques d'avoir des résultats du genre "#Nom?":
1616356783844.png
 

fanch55

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


1616427026302.png



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


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:

Statistiques des forums

Discussions
315 133
Messages
2 116 606
Membres
112 802
dernier inscrit
Dan Marc