Aide Macro copier coller multiplier

ArnoC

XLDnaute Nouveau
Bonsoir à tous et à l'aide !!!

Dans ce petit fichier (qui me sert à comprendre pourquoi ma macro ne marche pas ...)
j'ai en colonne A des nombres qui sont au format Texte (très utile ...)
Pour les mettre en format nombre
j'ai créé une macro effectuant un copier coller multiplier (par 1)
le résultat : à la fin j'ai toujours mon format texte
en la parcourant pas à pas, je vois que tout va bien jusqu'à la fin
et à End sub tout revient à l'ancien format ...
j'ai oublié quelquechose ?

Merci à tous pour cette vilaine petite macro sur laquelle je suis depuis des heures...

Arno
 

Pièces jointes

  • test macro copier coller spécial multiplier.xls
    33.5 KB · Affichages: 35

DoubleZero

XLDnaute Barbatruc
Re : Aide Macro copier coller multiplier

Bonjour, ArnoC, le Forum,

Un essai :

Code:
Sub Pourcentage()
Application.ScreenUpdating = False
Range("b1:b" & Range("a65536").End(xlUp).Row) = "=RC[-1]*1"
With Columns("B:B")
    .NumberFormat = "0.00%"
    .Value = .Value
End With
Range(Range("b1"), Range("b1").End(xlDown)).Cut Destination:=Range("a1")
Application.ScreenUpdating = True
End Sub

A bientôt :)
 

DoubleZero

XLDnaute Barbatruc
Re : Aide Macro copier coller multiplier

Re-bonjour,

Ci-après quelques commentaires qui, je l'espère, aideront à mieux comprendre les résultats obtenus.

Macro du #1 :

Code:
Sub Macro5()
'
' Macro5 Macro
'

'
    'selection de b1
    Range("B1").Select
    'valeur de b 1 = 1
    ActiveCell.FormulaR1C1 = "1"
    'sélection de b1
    Range("B1").Select
    'copie de la valeur de b1 de b1 à b11
    Selection.AutoFill Destination:=Range("B1:B11"), Type:=xlFillDefault
    'selection de b1 à b11
    Range("B1:B11").Select
    'copie de la sélection
    Selection.Copy
    'selection de a1 à a11
    Range("A1:A11").Select
    'collage de la même plage => l'opération ne peut fonctionner et les valeurs conservent le format texte
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
        SkipBlanks:=False, Transpose:=False
    Range("B1:B11").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("A1:A11").Select
    Selection.Style = "Percent"
    Selection.NumberFormat = "0.0%"
    Selection.NumberFormat = "0.00%"
    Range("A1").Select

End Sub

Macro du #2

Code:
Sub Pourcentage()
'figer l'écran
Application.ScreenUpdating = False
'valeur  a*1 en colonne b, tant que la cellue de gauche (colonne a) est différente de ""
Range("b1:b" & Range("a65536").End(xlUp).Row) = "=RC[-1]*1"
'en colonne b
With Columns("B:B")
    'appliquer le format pourcentage
    .NumberFormat = "0.00%"
    'remplacer les formules par des valeurs
    .Value = .Value
End With
'couper-coller les valeurs de la colonne b vers la colonne a
Range(Range("b1"), Range("b1").End(xlDown)).Cut Destination:=Range("a1")
Application.ScreenUpdating = True
End Sub

Bon courage et à bientôt :)
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 009
Membres
101 865
dernier inscrit
MLL