Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Modif / amelio macro

1 réponse
Avatar
Eric
J'ai une macro tres basique qui me sert a convertir des plages de
cellules de livre anglaise en euro dans 3 feuilles differentes :

Sub GPB_Currency_Convert()
With Worksheets("Exchange Rates")
With .Range("C2")
.Copy
End With
End With
With Worksheets("F300_UK")
With .Range("D8:G2346")
.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
End With
End With
With Worksheets("F322_UK")
With .Range("D9:G295")
.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
End With
End With
With Worksheets("F340_UK")
With .Range("D9:G140")
.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
End With
End With
End Sub

Mon probleme est le suivant :
Dans les plages a convertir, en plus des donn=E9es brutes j'ai quelques
fois des formules (=3Dsum......) et je voudrais que lorsque la cellule
contient une formule elle ne soit pas convertit. Je pense qu'il faut
utiliser "HasFormula" mais je n'arrive pas a l'integrer.

Merci bcp pour votre aide

1 réponse

Avatar
Jacky
Bonjour,

Par exemple
'----------
With Worksheets("F300_UK")
For Each c In .Range("D8:G2346")
If Not c.HasFormula Then
c.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
End If
Next
End With
'-------------
Idem pour les autres feuilles
Il y a intérêt à mettre le calcul sur manuel pendant l'execution de la macro

--
Salutations
JJ


"Eric" a écrit dans le message de news:

J'ai une macro tres basique qui me sert a convertir des plages de
cellules de livre anglaise en euro dans 3 feuilles differentes :

Sub GPB_Currency_Convert()
With Worksheets("Exchange Rates")
With .Range("C2")
.Copy
End With
End With
With Worksheets("F300_UK")
With .Range("D8:G2346")
.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
End With
End With
With Worksheets("F322_UK")
With .Range("D9:G295")
.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
End With
End With
With Worksheets("F340_UK")
With .Range("D9:G140")
.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
End With
End With
End Sub

Mon probleme est le suivant :
Dans les plages a convertir, en plus des données brutes j'ai quelques
fois des formules (=sum......) et je voudrais que lorsque la cellule
contient une formule elle ne soit pas convertit. Je pense qu'il faut
utiliser "HasFormula" mais je n'arrive pas a l'integrer.

Merci bcp pour votre aide