Mettre toutes les cell. d'une plage par macro en absolu

Résolu/Fermé
nihcoc Messages postés 192 Date d'inscription dimanche 9 mars 2014 Statut Membre Dernière intervention 28 février 2023 - 16 sept. 2017 à 08:32
nihcoc Messages postés 192 Date d'inscription dimanche 9 mars 2014 Statut Membre Dernière intervention 28 février 2023 - 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)



A voir également:

9 réponses

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
Modifié le 16 sept. 2017 à 18:36
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
1
nihcoc Messages postés 192 Date d'inscription dimanche 9 mars 2014 Statut Membre Dernière intervention 28 février 2023 5
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
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > nihcoc Messages postés 192 Date d'inscription dimanche 9 mars 2014 Statut Membre Dernière intervention 28 février 2023
16 sept. 2017 à 20:09
je n'ai pas testé, et je pense qu'il suffit de remplacer xlAbsolute par xlRelative.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
16 sept. 2017 à 09:06
Bonjour,
Oui, exemple:

Abs:https://docs.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/abs-function?redirectedfrom=MSDN

For Each cel In Plage
  cel.Value = Abs(cel.Value)
Next
0
nihcoc Messages postés 192 Date d'inscription dimanche 9 mars 2014 Statut Membre Dernière intervention 28 février 2023 5
16 sept. 2017 à 09:26
merci pou ta réponse,mais ça bloque sur la 1ère ligne de code
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 16 sept. 2017 à 09:30
Re,

Ben oui, mais je n'ai pas votre code!!!!
Avez-vous defini plage?
0
nihcoc Messages postés 192 Date d'inscription dimanche 9 mars 2014 Statut Membre Dernière intervention 28 février 2023 5
16 sept. 2017 à 10:21
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
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
16 sept. 2017 à 10:29
Re,
Remplacez plage par Selection
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nihcoc Messages postés 192 Date d'inscription dimanche 9 mars 2014 Statut Membre Dernière intervention 28 février 2023 5
16 sept. 2017 à 15:33
J'ai essayé de faire la modification,mais ça ne marche pas.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
16 sept. 2017 à 15:36
Re,
faudrait expliquer un peu plus ce que vous faites une fois la selection faites
0
nihcoc Messages postés 192 Date d'inscription dimanche 9 mars 2014 Statut Membre Dernière intervention 28 février 2023 5
Modifié le 16 sept. 2017 à 15:57
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
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
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
0
nihcoc Messages postés 192 Date d'inscription dimanche 9 mars 2014 Statut Membre Dernière intervention 28 février 2023 5
16 sept. 2017 à 16:26
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é
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
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))
0
nihcoc Messages postés 192 Date d'inscription dimanche 9 mars 2014 Statut Membre Dernière intervention 28 février 2023 5
16 sept. 2017 à 16:59
Le problème c'est que j'ai + d'une centaine de formule
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
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......
0
nihcoc Messages postés 192 Date d'inscription dimanche 9 mars 2014 Statut Membre Dernière intervention 28 février 2023 5
16 sept. 2017 à 20:17
C'est bien xlRelative pour faire l'inverse.

Merci beaucoup
0