Staple1600
XLDnaute Barbatruc
Bonsoir le forum
Pour faire suite à ce fil, j'ai constaté le "souci" suivant
Seules les deux dernières macros font ce qu'elles sont censées faire
NB: FillAcrossSheets accepte trois paramètres (facultatifs): xlFillWithAll (valeur par défaut), xlFillWithContents et xlFillWithFormats
La macro paramétrée Remplir semble, qu'elle que soit le paramètre indiqué, prendre la valeur par défaut.
Par contre les deux dernières macros font bien le distinguo et produisent le résultat attendu.
Quelqu'un pourrait-il éclairer ma lanterne et m'expliquer le pourquoi du comment ?
Pour faire suite à ce fil, j'ai constaté le "souci" suivant
Seules les deux dernières macros font ce qu'elles sont censées faire
NB: FillAcrossSheets accepte trois paramètres (facultatifs): xlFillWithAll (valeur par défaut), xlFillWithContents et xlFillWithFormats
La macro paramétrée Remplir semble, qu'elle que soit le paramètre indiqué, prendre la valeur par défaut.
Par contre les deux dernières macros font bien le distinguo et produisent le résultat attendu.
Quelqu'un pourrait-il éclairer ma lanterne et m'expliquer le pourquoi du comment ?
VB:
Sub test_A()
Feuil1.Cells.Clear: Feuil2.Cells.Clear: Feuil3.Cells.Clear: Creer_Données_TEST
Dim p As Range
Set p = Worksheets("Feuil1").Range("B5:B26")
Remplir p, xlFillWithContents
End Sub
Sub test_B()
Feuil1.Cells.Clear: Feuil2.Cells.Clear: Feuil3.Cells.Clear: Creer_Données_TEST
Remplir Worksheets("Feuil1").Range("B5:B26"), xlFillWithFormats
End Sub
Private Sub Creer_Données_TEST()
Dim rng As Range
Randomize 1600: Application.ScreenUpdating = False
Feuil1.Cells.Clear: Feuil2.Cells.Clear: Feuil3.Cells.Clear
Worksheets("Feuil1").Cells(5, 2) = "ITEMS": Set rng = Worksheets("Feuil1").Cells(6, 2).Resize(21): rng.Interior.Color = vbMagenta
rng.Value = "=INT((RAND()*NOW())/PI())": rng.Borders.Value = Application.RandBetween(1, 3): rng = rng.Value
End Sub
Private Sub Remplir(vRange As Range, xFill As XlFillWith)
Dim arrWSN
arrWSN = Array("Feuil1", "Feuil2", "Feuil3")
Worksheets(arrWSN).FillAcrossSheets vRange
End Sub
Sub MiseAjourRegistre_C()
Dim arrWSN, F As Worksheet: Set F = Worksheets("Feuil1")
Application.ScreenUpdating = False
Feuil1.Cells.Clear: Feuil2.Cells.Clear: Feuil3.Cells.Clear
F.Range("B5:B26") = "=ROW()": F.Range("B5:B26").Borders.Value = 1: F.Range("B5:B26").Interior.Color = vbCyan
arrWSN = Array("Feuil1", "Feuil2", "Feuil3")
Worksheets(arrWSN).FillAcrossSheets Worksheets("Feuil1").Range("B5:B26"), xlFillWithContents
End Sub
Sub MiseAjourRegistre_D()
Dim arrWSN, F As Worksheet: Set F = Worksheets("Feuil1")
Application.ScreenUpdating = False
Feuil1.Cells.Clear: Feuil2.Cells.Clear: Feuil3.Cells.Clear
F.Range("B5:B26") = "=ROW()": F.Range("B5:B26").Borders.Value = 1: F.Range("B5:B26").Interior.Color = vbCyan
arrWSN = Array("Feuil1", "Feuil2", "Feuil3")
Worksheets(arrWSN).FillAcrossSheets Worksheets("Feuil1").Range("B5:B26"), xlFillWithFormats
End Sub
Dernière édition: