Menu

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

nihcoc 120 Messages postés dimanche 9 mars 2014Date d'inscription 5 avril 2018 Dernière intervention - 16 sept. 2017 à 08:32 - Dernière réponse : nihcoc 120 Messages postés dimanche 9 mars 2014Date d'inscription 5 avril 2018 Dernière intervention
- 16 sept. 2017 à 20:17
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)



Afficher la suite 

Votre réponse

17 réponses

Meilleure réponse
yg_be 5614 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention - Modifié par yg_be le 16/09/2017 à 18:36
1
Merci
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

Merci yg_be 1

a aidé 24864 internautes ce mois-ci

nihcoc 120 Messages postés dimanche 9 mars 2014Date d'inscription 5 avril 2018 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
yg_be 5614 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention > nihcoc 120 Messages postés dimanche 9 mars 2014Date d'inscription 5 avril 2018 Dernière intervention - 16 sept. 2017 à 20:09
je n'ai pas testé, et je pense qu'il suffit de remplacer xlAbsolute par xlRelative.
Commenter la réponse de yg_be
f894009 13053 Messages postés dimanche 25 novembre 2007Date d'inscription 25 mai 2018 Dernière intervention - 16 sept. 2017 à 09:06
0
Merci
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
Commenter la réponse de f894009
nihcoc 120 Messages postés dimanche 9 mars 2014Date d'inscription 5 avril 2018 Dernière intervention - 16 sept. 2017 à 09:26
0
Merci
merci pou ta réponse,mais ça bloque sur la 1ère ligne de code
f894009 13053 Messages postés dimanche 25 novembre 2007Date d'inscription 25 mai 2018 Dernière intervention - 16 sept. 2017 à 09:28
Re,

Ben oui, mais je n'ai pas votre code!!!!
Avez-vous defini plage?
Commenter la réponse de nihcoc
nihcoc 120 Messages postés dimanche 9 mars 2014Date d'inscription 5 avril 2018 Dernière intervention - 16 sept. 2017 à 10:21
0
Merci
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 13053 Messages postés dimanche 25 novembre 2007Date d'inscription 25 mai 2018 Dernière intervention - 16 sept. 2017 à 10:29
Re,
Remplacez plage par Selection
Commenter la réponse de nihcoc
nihcoc 120 Messages postés dimanche 9 mars 2014Date d'inscription 5 avril 2018 Dernière intervention - 16 sept. 2017 à 15:33
0
Merci
J'ai essayé de faire la modification,mais ça ne marche pas.
f894009 13053 Messages postés dimanche 25 novembre 2007Date d'inscription 25 mai 2018 Dernière intervention - 16 sept. 2017 à 15:36
Re,
faudrait expliquer un peu plus ce que vous faites une fois la selection faites
Commenter la réponse de nihcoc
nihcoc 120 Messages postés dimanche 9 mars 2014Date d'inscription 5 avril 2018 Dernière intervention - Modifié par nihcoc le 16/09/2017 à 15:57
0
Merci
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 13053 Messages postés dimanche 25 novembre 2007Date d'inscription 25 mai 2018 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
Commenter la réponse de nihcoc
nihcoc 120 Messages postés dimanche 9 mars 2014Date d'inscription 5 avril 2018 Dernière intervention - 16 sept. 2017 à 16:26
0
Merci
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 13053 Messages postés dimanche 25 novembre 2007Date d'inscription 25 mai 2018 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))
Commenter la réponse de nihcoc
nihcoc 120 Messages postés dimanche 9 mars 2014Date d'inscription 5 avril 2018 Dernière intervention - 16 sept. 2017 à 16:59
0
Merci
Le problème c'est que j'ai + d'une centaine de formule
f894009 13053 Messages postés dimanche 25 novembre 2007Date d'inscription 25 mai 2018 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......
Commenter la réponse de nihcoc
nihcoc 120 Messages postés dimanche 9 mars 2014Date d'inscription 5 avril 2018 Dernière intervention - 16 sept. 2017 à 20:17
0
Merci
C'est bien xlRelative pour faire l'inverse.

Merci beaucoup
Commenter la réponse de nihcoc