Signaler

Mettre toutes les cell. d'une plage par macro en absolu [Résolu]

Posez votre question nihcoc 97Messages postés dimanche 9 mars 2014Date d'inscription 16 septembre 2017 Dernière intervention - Dernière réponse le 16 sept. 2017 à 20:17 par nihcoc
Bonjour,
j'aimerais mettre toutes les cell. d'une plage en absolu par macro ,est ce possible ?
et si oui ,quelqun pourrais t'il m'aider.
d'avance merci a tous.
(j'ai excel 2000)



Utile
+1
plus moins
bonjour, suggestion:
Option Explicit
Sub nihcoc()
Dim cel As Range
For Each cel In Selection
  If cel.Formula <> "" Then
    cel.FormulaR1C1 = Application.ConvertFormula(cel.FormulaR1C1, xlR1C1, xlR1C1, xlAbsolute, cel)
    End If
Next
End Sub
nihcoc 97Messages postés dimanche 9 mars 2014Date d'inscription 16 septembre 2017 Dernière intervention - 16 sept. 2017 à 19:06
Merci a vous la macro marche très bien,c'est parfait.

serait il possible d'avoir la même macro qui fasse l'inverse,c'est a dire quelle enlève en plage les références absolus des formules.
Merci
Répondre
yg_be 3403Messages postés lundi 9 juin 2008Date d'inscription ContributeurStatut 25 septembre 2017 Dernière intervention - 16 sept. 2017 à 20:09
je n'ai pas testé, et je pense qu'il suffit de remplacer xlAbsolute par xlRelative.
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonjour,
Oui, exemple:

Abs:https://msdn.microsoft.com/fr-fr/library/office/gg264518.aspx

For Each cel In Plage
  cel.Value = Abs(cel.Value)
Next
Donnez votre avis
Utile
+0
plus moins
merci pou ta réponse,mais ça bloque sur la 1ère ligne de code
f894009 12148Messages postés dimanche 25 novembre 2007Date d'inscription 25 septembre 2017 Dernière intervention - 16 sept. 2017 à 09:28
Re,

Ben oui, mais je n'ai pas votre code!!!!
Avez-vous defini plage?
Répondre
Donnez votre avis
Utile
+0
plus moins
je ne veux pas définir de plage a l'avance,je préfère sélectionner une plage et démarrer la macro ,cela permet de pouvoir s'en servir ultèrieurement pour d'autre coordonnéée de plage
f894009 12148Messages postés dimanche 25 novembre 2007Date d'inscription 25 septembre 2017 Dernière intervention - 16 sept. 2017 à 10:29
Re,
Remplacez plage par Selection
Répondre
Donnez votre avis
Utile
+0
plus moins
J'ai essayé de faire la modification,mais ça ne marche pas.
f894009 12148Messages postés dimanche 25 novembre 2007Date d'inscription 25 septembre 2017 Dernière intervention - 16 sept. 2017 à 15:36
Re,
faudrait expliquer un peu plus ce que vous faites une fois la selection faites
Répondre
Donnez votre avis
Utile
+0
plus moins
Je voudrais faire une macro en plage mettent toutes les formules de la plage en référence absolu;.
exemple:
=SUMPRODUCT((NOT(ISERROR(FIND(K18,E1)))*1))

une fois la macro appliqué:
=SUMPRODUCT((NOT(ISERROR(FIND($K$18,$E$1)))*1))
et ce en plage.
Merci d'avance
f894009 12148Messages postés dimanche 25 novembre 2007Date d'inscription 25 septembre 2017 Dernière intervention - 16 sept. 2017 à 16:03
Re,
pas besoin de mettre/enlever un blanc devant les formules
inspirez vous de ceci: copier/collage special formule fait avec l'enregistreur de macro

Sub Macro5()
'
' Macro5 Macro
'

'
    Range("A1:A10").Select
    Selection.Copy
    Range("J13").Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
End Sub
Répondre
Donnez votre avis
Utile
+0
plus moins
J'ai installé la macro ,mais quand on l'active ça change les références de la formule.

la formule:

=SOMMEPROD((NON(ESTERREUR(TROUVE(K18;E1)))*1))

devient:

=SOMMEPROD((NON(ESTERREUR(TROUVE(T30;N13)))*1))

avec la macro que vous m'avez envoyé
f894009 12148Messages postés dimanche 25 novembre 2007Date d'inscription 25 septembre 2017 Dernière intervention - 16 sept. 2017 à 16:53
Re,
En effet, autant pour moi.

Une solution simple est de mettre des $ ex:
=SOMMEPROD((NON(ESTERREUR(TROUVE($K$18;$E$1)))*1))
Répondre
Donnez votre avis
Utile
+0
plus moins
Le problème c'est que j'ai + d'une centaine de formule
f894009 12148Messages postés dimanche 25 novembre 2007Date d'inscription 25 septembre 2017 Dernière intervention - 16 sept. 2017 à 17:02
Re,

Oui, mais dans le cas de copie sans les $, il faut modifier les formules avant et apres collage pour les formules d'origines......
Répondre
Donnez votre avis
Utile
+0
plus moins
C'est bien xlRelative pour faire l'inverse.

Merci beaucoup
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !