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

XL 2013 Copier coller sur 3 onglets

maval

XLDnaute Barbatruc
Bonjour
je recherche un code VBA pour copier la colonne B6;B60 vers onglet 2 & 3 en B6;B60
Je joint mon fichier
Je vous remercie d'avance
 

Pièces jointes

  • Classeur copier.xlsm
    13.9 KB · Affichages: 10

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Maval,
Un essai en PJ avec :
VB:
Sub Copie()
    Dim DL%
    Application.ScreenUpdating = False
    DL = Range("B65500").End(xlUp).Row 'Dernière ligne occupée
    Sheets("Table").Range("B6:B" & DL) = Range("B6:B" & DL).Value
    Sheets("Score").Range("B6:B" & DL) = Range("B6:B" & DL).Value
End Sub
qui copie que la liste utile.
si vous tenez à l'index 60 alors :
Code:
Sub Copie2()
    Dim DL%
    Application.ScreenUpdating = False
    Sheets("Table").Range("B6:B60") = Range("B6:B60").Value
    Sheets("Score").Range("B6:B60") = Range("B6:B60").Value
End Sub
 

Pièces jointes

  • Classeur copier.xlsm
    20.2 KB · Affichages: 4

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, maval, sylvanu

Une autre façon de faire
VB:
Sub MiseAjourRegistre()
Dim arrWSN
arrWSN = Array("Inscription", "Table", "Score")
Worksheets(arrWSN).FillAcrossSheets Worksheets("Inscription").Range("B5:B60")
End Sub
 

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour maval, Sylvanu, Staple1600

@Staple1600 : La méthode ".FillAcrossSheets" doit être récente (365 ??) car bien que la plage de données soit sélectionnée, les copies sont vides sur les autres feuilles ??? Je possède XL2010, l'un explique peut être l'autre.
Bonne journée à toutes & à tous
@+ Eric c
 

Eric C

XLDnaute Barbatruc
Re le fil,
Bonjour job75, bonjour Philippe,

Non, bien qu'ayant la même config que Philippe, seules apparaissent sur les 2 feuilles, les cellules sélectionnées sans donnée ???
@+ Eric c
 

Efgé

XLDnaute Barbatruc
Bonjour à tous
Pas de copie avec FillAcrossSheets dans la version

Ca commence à être fatigant c'est différences de réactions suivant les versions, vous ne trouvez pas ?
Cordialement
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil,

J'ai testé la macro sur Excel 2019 au boulot. (hier quand j'ai posté, j'étais sur Excel 2013)
Elle fonctionne.

Voir ci-dessous pour tester plus avant
NB: L'avantage c'est les trois options disponibles :
xlFillWithAll (par défaut), ou xlFillWithContents et enfin xlFillWithFormats
Code:
Sub MiseAjourRegistre_B()
Dim arrWSN
arrWSN = Array("Feuil1", "Feuil2", "Feuil3")
Worksheets(arrWSN).FillAcrossSheets Worksheets("Feuil1").Range("B5:B60")
End Sub
Sub MiseAjourRegistre_C()
Dim arrWSN
arrWSN = Array("Feuil1", "Feuil2", "Feuil3")
Worksheets(arrWSN).FillAcrossSheets Worksheets("Feuil1").Range("B5:B60"), xlFillWithContents
End Sub
Sub MiseAjourRegistre_D()
Dim arrWSN
arrWSN = Array("Feuil1", "Feuil2", "Feuil3")
Worksheets(arrWSN).FillAcrossSheets Worksheets("Feuil1").Range("B5:B60"), xlFillWithFormats
End Sub
Sub Pour_Tester()
Feuil1.Columns(2).Delete
Feuil2.Columns(2).Delete
Feuil3.Columns(2).Delete
With Feuil1.[B5]
    .Value = "ITEMS"
    .Font.Bold = -1
    .Interior.Color = RGB(197, 197, 197)
End With
Feuil1.Cells(6, 2).Resize(Application.RandBetween(5, 60)) = "=RoW()*PI()"
Feuil1.UsedRange = Feuil1.UsedRange.Value
Feuil1.UsedRange.Borders.Value = 1
End Sub

NB: A vérifier mais je pense que FillAcrossSheets était déjà disponible sous Excel 97
 

Eric C

XLDnaute Barbatruc
Bonsoir le fil
Bonsoir Staple1600 : J'avais déjà testé avec l'option "xlFillWithContents" mais en vain. Cela copie le range des cellules mais pas les données qui restent absentes.
Bonne soirée
@+ Eric c
 

Staple1600

XLDnaute Barbatruc
Re

Tu as essayé avec les codes dans le message#11?

De mémoire, j'ai déjà utilisé cette syntaxe avec Excel 2010.

Je ne vois pas pourquoi cela fonctionnerait chez moi et chez Phil et pas chez vous.
 

Discussions similaires

Réponses
7
Affichages
234
Réponses
4
Affichages
139
  • Résolu(e)
Microsoft 365 Copier par mois
Réponses
23
Affichages
362
Réponses
12
Affichages
282
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…