Appliquer le blocage des références qui constituent les différentes formules d'1 col.

SiD88

XLDnaute Junior
Bonjour le forum,

Je m'explique: Je viens de réaliser un tableau budgétaire. J'ai une colonne (C) constitué de 380 lignes. Sur chaque ligne j'ai une formule: par exemple: ligne 1: =J10+K9+K18+M16
ligne 2:=A8+B8+N8+C8
Bref, 380 formules différentes.

J'aimerai bloquer les références de mes formules, c'est à dire:

ligne 1:=$J10+$K9+$K18+$M16
ligne 2:=$A8+$B8+$N8+$C8


Existe t il une solution pour faire cette manipulation rapidement? Je sais que je peux toujours reprendre mes 380 lignes pour y mettre ce fameux $, mais la tâche risque d'être longue...
Je prend tout type de solutions (manip ou code vba)


Merci
 

pierrejean

XLDnaute Barbatruc
Re : Appliquer le blocage des références qui constituent les différentes formules d'1

Bonjour SiD88

Sous reserve de ne pas avoir de lettre double pour la definition des colonnes (ex AA10)

Code:
Sub test()
For n = 1 To Range("C" & Rows.Count).End(xlUp).Row
 If Left(Range("C" & n).Formula, 1) = "=" Then
   For m = Len(Range("C" & n).Formula) To 2 Step -1
    If Asc(Mid(Range("C" & n).Formula, m, 1)) > 64 And Asc(Mid(Range("C" & n).Formula, m, 1)) < 91 Then
       x = Mid(Range("C" & n).Formula, 1, m - 1)
       y = Mid(Range("C" & n).Formula, m)
       Z = x & "$" & y
       m = m - 1
       Range("C" & n).Formula = Z
    End If
   Next
 End If
Next n
End Sub
 

SiD88

XLDnaute Junior
Re : Appliquer le blocage des références qui constituent les différentes formules d'1

Bonjour pierrejean,

Merci d'avoir répondu à mon problème.

Je comprend le code, mais lorsque je compile cela ne fonctionne pas.
L'horrible fenêtre "Erreur 1004" apparait.
Il faut bien mettre ton code dans la feuille correspondante?

BC
 

CISCO

XLDnaute Barbatruc
Re : Appliquer le blocage des références qui constituent les différentes formules d'1

Bonjour

Si j'ai bien compris... Tu peux essayer en écrivant tes formules en lignes 1 et 2, avec un apostrophe " devant. Ensuite, tu sélectionnes les 2 cellules, tu étires la sélection avec la poignée jusqu'à la ligne 380. Puis tu fais remplacer "= par =.

@ plus
 

Pièces jointes

  • essai Sid88.xlsx
    9.9 KB · Affichages: 33

SiD88

XLDnaute Junior
Re : Appliquer le blocage des références qui constituent les différentes formules d'1

Bonjour CISCO,

Ta solution ne peux pas marcher car il y une formule différente pour chacune des 380 lignes!
Je crois que je vais reprendre mes 380 formules une à une...

BC
 

CISCO

XLDnaute Barbatruc
Re : Appliquer le blocage des références qui constituent les différentes formules d'1

Bonjour

Si c'est ça, tu peux essayer en :
* Remplaçant partout = par "=
* puis A par $A
* puis B par $B

et ainsi de suite. Pas très pratique, mais bon...

Cela n'est intéressant que si tu n'utilises pas de colonne après la colonne Z.

@ plus
 

SiD88

XLDnaute Junior
Re : Appliquer le blocage des références qui constituent les différentes formules d'1

Re,

Qu'entend tu pars:

* puis A par $A
* puis B par $B

Tu parle de colonne ? Comment fait tu pour figer une colonne?
Je sais seulement figer une référence de cellule! $J10 ou $j$10 ou j$10

BC
 

CISCO

XLDnaute Barbatruc
Re : Appliquer le blocage des références qui constituent les différentes formules d'1

Bonjour

Si tu écris $J10, tu ne figes que la colonne, pas la ligne. J$10 ne bloque que la ligne, et pour finir $J$10 bloque et la colonne, et la ligne, donc la cellule.

Ne sachant pas quelles lettres (colonnes) tu utilises dans tes formules, je te proposai dans mon précédent post de remplacer toutes les lettres de l'alphabet par un $ suivi de la lettre.

Bien sûr, si tu as des noms ou des colonnes utilisant 2 lettres (à partir de la colonne AA), cette méthode n'est pas intéressante.

@ plus
 

SiD88

XLDnaute Junior
Re : Appliquer le blocage des références qui constituent les différentes formules d'1

Re,

@pierrejean

J'ai trouvé pourquoi ça marchait pas. Les 3 premières lignes de mon tableau ont eu leurs formules figé. A partir de la ligne 4, plus de figeage.
Dans ma ligne 4 j'ai cette formule:=(D8+G8)+G8*$D$284.
J'ai enlevé les 2 $, pour avoir =(D8+G8)+G8*D284
J'ai recompilé et toutes les formules de ma colonne sont figées! Après j'ai rechangé ma ligne 4 =($D8+$G8)+$G8*$D284 par =($D8+$G8)+$G8*$D$284

Merci beaucoup pour votre aide.

BC et à bientôt!
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 393
Messages
2 088 006
Membres
103 696
dernier inscrit
lgerbaud