{Résolu}Bug sur une macro qui copie colle seulement dans les cellules visibles

jmten92

XLDnaute Nouveau
Hello, lors de l'exécution du code, j'ai une erreur (la méthode range de l'objet global) a échoué.... Quelqu'un saurait d'ou ça peut venir ?
C'est une macro qui détermine une plage , qui la nomme - qui copie la formule d'une cellule (j10) et qui la colle dans toutes les cellules visibles de la plage (les cellules de ligne non masquées)
J'ai une erreur lors des deux lignes soulignée en rouge ....

Un immense merci si vous trouvez car franchement je ne sais pas d'ou ca peut venir.


Set FL1 = Worksheets("Sheet1")

NoCol1 = 10
NoCol2 = 10

DerLig = Split(FL1.UsedRange.Address, "$")(4)

'où FL1.Range(FL1.Cells(1, NoCol1), FL1.Cells(Derlig, NoCol2)) détermine
'la plage de cellules à lire

'With FL1
Set Plage = Range(FL1.Cells(1, NoCol1), FL1.Cells(DerLig, NoCol2))


FL1.Activate
Range("J10").Copy
Range("Plage").Select
Range("Plage")
.PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationMultiply


' End With





End Sub
 

Roland_M

XLDnaute Barbatruc
Bonsoir,

ça ne serait pas plutôt comme ceci !?
car comme tu pratiques c'est une plage de données en tableau !
et ici il te faut simplement une adresse. exemple: "A1:C5"

Code:
Sub MacroXXX()
Dim FL1 As Worksheet, R$
Set FL1 = Worksheets("Sheet1")

NoCol1 = 10
NoCol2 = 10

DerLig = Split(FL1.UsedRange.Address, "$")(4)

'où FL1.Range(FL1.Cells(1, NoCol1), FL1.Cells(Derlig, NoCol2)) détermine
'la plage de cellules à lire

R$ = FL1.Range(Cells(1, NoCol1), Cells(DerLig, NoCol2)).Address

FL1.Activate
Range("J10").Copy
Range(R$).Select
Range(R$).PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationMultiply
End Sub
 

jmten92

XLDnaute Nouveau
Hello Roland , Mon problème était que j'avais des filtres et que je ne voulais pas que mes formules soient appliquées aussi aux cellules masquées .j'ai contourné le pb de la façon suivante :
' sélection de la première cellule visible de la colonne 10
Range("A2:A" & Range("A65536").End(xlUp).Row).SpecialCells(xlVisible).Cells(1, 10).Select
'copie de la formule de la cellule active dans toutes les cellules visibles cad non masquées de la colonne
Range(ActiveCell, ActiveCell.End(xlDown)).SpecialCells(xlCellTypeVisible).FormulaR1C1 = "=IF(COUNTIF(Tableau4[[#This Row],[ENTRY_LABEL]],""*MAZ*""),""MAZ"",IF(COUNTIF(Tableau4[[#This Row],[ENTRY_LABEL]],""*MGN*""),""MGN"",IF(COUNTIF(Tableau4[[#This Row],[ENTRY_LABEL]],""*AJU*""),""AJU"",IF(COUNTIF(Tableau4[[#This Row],[ENTRY_LABEL]],""*Reclas*""),""Reclass"",""""))))"

et tout fonctionne !!!
bonne soirée
 

Discussions similaires


Haut Bas