Figer cellules grâce à une macro

Bonjour,

Je suis débutant sur excel et je souhaiterais pouvoir dans le fichier joint créer une macro qui me permette de figer un ensemble de cellule sur une même ligne (très longue).

Par exemple, passer de :

A3:A4 A5:A6

à

$A$3:$A$4 $A$5:$A$6

Dans le contexte de mon fichier joint, je souhaiterais pouvoir figer l'ensemble des cellules de la ligne intitulée "somme" qui est en rouge (ligne25 où il n'y a que des "20").

Merci par avance pour votre aide.

19figer-cellules.xlsm (43.14 Ko)

Bonsoir,

Je pense qu'un simple RECHERCHER et REMPLACER PAR suffirait :

Tu sélectionnes ta plage :

  • Rechercher : A
  • Remplacer par : $A$

A première vue je ferais comme ça; sauf si tu as d'autres contraintes ...

Bonne soirée.

Bonsoir,

Je te remercie pour ta réponse.

Cependant, ma ligne comporte plus d'une centaine de cellules et donc pas seulement des A.

Bonsoir,

Je suis persuadé que c'est adaptable.

Avec ce code ça fonctionne sur le fichier que tu nous as fourni :

Sub TEST()
With ActiveSheet.Rows(25)
    .Replace "5:", "$5:$"
    .Replace "24)", "$24)"
    .Replace "SOMME(", "SOMME($"
End With
End Sub

Bonne soirée.

Bonjour Ergotamine,

Merci beaucoup pour ta réponse.

Cela fonctionne très bien.

Cependant, il reste un léger problème. C'est qu'en utilisant cette Macro, cela ne fige pas mes cellules car au lieu d'avoir par exemple $C$3:$C$22 pour complètement figer, la macro donne C$3:$C$22, ce qui ne fige pas mes cellules.

Comment dois-je modifier la macro que tu viens de faire pour avoir le premier format de résultat qui permet de figer($C$3:$C$22).

Par ailleurs, peux-tu me détailler un peux les différentes étapes de cette macro (je suis débutant sur excel et je ne comprends pas très bien =) )

Merci encore pour ton aide.

Bonjour Mermoz

Sub TEST()
'Se place sur la ligne 25 de la feuille active
With ActiveSheet.Rows(25)
   ' Remplace 5: par $5$
    .Replace "5:", "$5:$"
   ' Remplace 24) par $24)
    .Replace "24)", "$24)"
    'Remplace SOMME( par SOMME($
    .Replace "SOMME(", "SOMME($"
'Fin de l'instruction With
End With
End Sub

Dans ce cas à la place de

    .Replace "SOMME(", "SOMME($"

Met uniquement

    .Replace "(", "($"

Mais j'ai peur qu'il y ai des effets de bords en fonction de la véritable formule que tu as dans ta cellule.

Bon dimanche.

Merci encore une fois pour ta réponse.

Malheureusement, cela ne fonctionne pas.

J'ai toujours dans ma ligne 25, par exemple, =SOMME(BI$5:$BI$24) au lieu de =SOMME($BI$5:$BI$24) pour que cela fige mes cellules.

En effet je viens de regarder ça ne fonctionne pas, je suis curieux de connaître l'explication des experts

En tout cas lorsque je le fais la manipulation à la main ça fonctionne bien.

Si cette solution te convient ..

Oui je vais devoir me lancer dans ce travail de romain car j'ai une ligne de plus de 800 colonnes =) la base de données que je t'aie envoyé n'est qu'un échantillon =)

Je vais tout de même utiliser ta méthode, comme ça je n'aurai plus qu'à rajouter un dollar dans chaque cellule au lieu de 4 =)

Merci bcp encore pour ton aide

Bon dimanche.

Quand je dis faire la manipulation à la main c'est ça :

Selectionner ta ligne où tu as tes formules puis faire la capture d'écran jointe :

Donc quelques clics en soit

PS : Désolé pour les talents de non artiste !

replace

Ergotamine, je te dois une fière chandelle, tu viens peut-être de m'épargner une tendinite de l'index de ma main droite =)

Un immense merci pour ton aide.

Bonjour à tous,

Il ne faut pas utiliser le mot somme ...

Un essai ...

Sub TEST()
    'Se place sur la ligne 25 de la feuille active
With ActiveSheet.Rows(25)
   ' Remplace 5: par $5$
    .Replace "5:", "$5:$"
   ' Remplace 24) par $24)
    .Replace "24)", "$24)"
    'Remplace ( par ($
    .Replace "(", "($"
    'Fin de l'instruction With
End With
End Sub

ric

Bonjour Ric,

Tu as l'explication ?

Pourquoi ça parraît si simple et logique lorsque vous donnez vos réponses

Merci !

Bonjour à tous,

Non, je n'ai pas d'explication ... j'ai simplement effectué quelques tests et j'ai constaté que sans la fonction "somme", cela fonctionnait.

ric

Je suis con, mais qu'est ce que je suis con ! On est dans l'éditeur VBA, du coup SOMME devient SUM ...

Sub TEST()
With ActiveSheet.Rows(25)
    .Replace "5:", "$5:$"
    .Replace "24)", "$24)"
    .Replace "SUM(", "SUM($"
End With
End Sub

Comme ça ça fonctionne

Merci Ric d'avoir branché mes neurones !

Merci beaucoup à vous deux pour votre aide.

Rechercher des sujets similaires à "figer macro"