Raccourcis clavier pour ajouter des $ à la cellule

Co0rentin2

XLDnaute Nouveau
Bonjour,

Je perds beaucoup de temps à ajouter les $ manuellement lors d'insertion de formule afin de bloquer les références de cellule lorsque je dois tirer des formules.

Après quelques recherches et essais je ne trouve toujours rien là dessus, mais je suppose qu'il doit exister une combinaison de touche à faire avant de sélectionner la cellule qui permettrait d'automatiquement mettre les $.

Merci
Corentin
 

Dranreb

XLDnaute Barbatruc
Re : Raccourcis clavier pour ajouter des $ à la cellule

Bonsoir
Je me la suis affectée à un bouton de barre d'outils :
VB:
Sub Dollars()
Dim RgSel As Range, Rg As Range
Set RgSel = Selection
For Each Rg In RgSel: Dollars1Cel Rg: Next Rg
End Sub
Private Sub Dollars1Cel(ByVal Rg As Range)
Dim Lig As Long, Col As Long, ZOrg As String, ZRés As String, PDéb As Long, PFin As Long, _
   P As Long, C As String * 1, ZAlp As String
ZOrg = Rg.FormulaR1C1: ZRés = ZOrg
Lig = Rg.Row
Col = Rg.Column
PDéb = InStr(ZRés, "[")
While PDéb > 0
   PFin = InStr(PDéb, ZRés, "]")
   ZAlp = ""
   P = PDéb
   Do
      P = P - 1
      C = Mid$(ZRés, P, 1)
      If C = LCase(C) Then Exit Do
      ZAlp = C & ZAlp
      Loop
   If ZAlp = "R" Then
      ZRés = Left(ZRés, PDéb - 1) & Lig + Mid$(ZRés, PDéb + 1, PFin - PDéb - 1) & Mid$(ZRés, PFin + 1)
   ElseIf ZAlp = "C" Or ZAlp = "RC" Then
      ZRés = Left(ZRés, PDéb - 1) & Col + Mid$(ZRés, PDéb + 1, PFin - PDéb - 1) & Mid$(ZRés, PFin + 1)
   Else
      PDéb = PDéb + 1
      End If
   PDéb = InStr(PDéb, ZRés, "[")
   Wend
If ZRés <> ZOrg Then
   On Error Resume Next
   Application.Calculation = xlCalculationManual
   If Rg.HasArray Then
      Rg.CurrentArray.FormulaArray = ZRés
      If Err Then MsgBox "Range(" & Rg.CurrentArray.Address(True, True) & ").FormulaArray =" _
         & vbLf & """" & ZRés & """ ==> erreur " & Err.Number & " :" _
         & vbLf & Err.Description, vbExclamation, "Mettre les ""$""."
   Else
      Rg.FormulaR1C1 = ZRés
      If Err Then MsgBox "Range(" & Rg.Address(True, True) & ").FormulaR1C1 =" _
         & vbLf & """" & ZRés & """ ==> erreur " & Err.Number & " :" _
         & vbLf & Err.Description, vbExclamation, "Mettre les ""$""."
      End If
   Application.Calculation = xlCalculationAutomatic
   On Error GoTo 0
   End If
End Sub
P.S. À noter qu'elle ne met pas de "$" aux références à la même ligne ni même colonne

Pour les lignes seulement, j'utilise aussi assez souvent celle ci auparavant :
VB:
Sub RemplaceRdifParDecaler()
Dim Rg As Range, ZSv As String, Z As String, dL As Long, P As Long, ZC As String, R As Long, Q As Long
For Each Rg In Selection
   ZSv = Rg.FormulaR1C1: Z = ZSv
   Do: P = InStr(Z, "R[")
      If P = 0 Then Exit Do
      Q = InStr(P + 2, Z, "]"): dL = Mid$(Z, P + 2, Q - P - 2)
      Q = Q + 1
      If Mid$(Z, Q, 1) = "C" Then
         ZC = Mid$(Z, Q)
         If Mid$(ZC, 2, 1) = "[" Then
            ZC = Left$(ZC, InStr(3, ZC, "]"))
         Else
            R = 1
            Do
               Q = R + 1
               If Q > Len(ZC) Then Exit Do
               If InStr("0123456789", Mid$(ZC, Q, 1)) = 0 Then Exit Do
               R = Q: Loop
            ZC = Left$(ZC, R)
            End If
      Else
         ZC = ""
         End If
      Z = Replace(Z, "R[" & dL & "]" & ZC, "OFFSET(R" & ZC & "," & dL & ",0)", , 1)
      Loop
   If ZSv <> Z Then Rg.FormulaR1C1 = Z
   Next Rg
End Sub
Cordialement
 
Dernière édition:

Co0rentin2

XLDnaute Nouveau
Re : Raccourcis clavier pour ajouter des $ à la cellule

Merci à vous, exactement ce qu'il me fallait.

Existe-il une section "truc et astuce" pour améliorer sa productivité sur Excel ? J'ai trouvé des tutos pour utiliser Excel au clavier, mais c'est pas exactement ce que je cherche (il proposait des raccourcis trop peu utilisé, moi je veux simplifier mes actions que je fais quotidiennement => mise en page rapide , sélection de cellules, répercussion de format de case, probagation de formule horizontalement jusqu'au bout de la ligne).

Une autre question que je me pose aussi régulièrement c'est : à l'ajout d'une ligne dans un listing, comment faire pour que toutes les formules soient automatiquement répercutées jusqu'en bas.

Merci en tout cas
Corentin
 

Grand Chaman Excel

XLDnaute Impliqué
Re : Raccourcis clavier pour ajouter des $ à la cellule

Bonjour Co0rentin2,

Si j'ai bien compris ta 1re question, lorsque tu tapes ta formule et que tu choisis une cellule, tu fais F4 pour mettre les $. Tu peux le faire plusieurs fois pour basculer :
Tu cliquer sur A1, tu fais F4 :
1e : $A$1
2e : A$1
3e : $A1
4e : A1
etc...

A+

Edit : Oups, je viens de vois que c'est pour MAC... comme je n'ai jamais testé, il se peut que ce raccourci clavier ne fonctionne pas...
 

Dranreb

XLDnaute Barbatruc
Re : Raccourcis clavier pour ajouter des $ à la cellule

La solution que j'aime bien:
Une Worksheet_SelectionChange qui détecte une sélection juste après la dernière ligne d'une plage nommée couvrant toutes les lignes de la liste.
Qui insère alors devant la dernière une copie d'elle même puis efface de la dernière repoussée les cellules qui n'ont pas de formule.
La même peut vérifier, quand on sélectionne autre chose, si toutes les cellules de la dernière ligne n'ayant pas de formule sont vides, et la supprime alors.
À +
 

Kiseki

XLDnaute Occasionnel
Re : Raccourcis clavier pour ajouter des $ à la cellule

Bonsoir,

Voilà ce que j’utilisais :
Selection.Formula = Application.ConvertFormula(Formula:=Selection.Formula, fromreferencestyle:=Application.ReferenceStyle, toabsolute:=xlAbsolute)

Mais là il met tout en référence absolue.

Je n'ai pas très envie de me casser la tête à comprendre ta macro Dranreb ^^

Remarque c'est bien pratique pour ne la mettre que sur les lignes ou colonne.

Pas moyen de faire plus simple en les rendent absolues et de remplacer @$ (Colonne) par @ pour mettre les lignes en absolue.

et 0$ par 0 pour mettre les colonne en absolue.


???

Le code serait beaucoup plus clair, plus léger ? A moins que ça ne passerait pas ?

(Vais-je réussir à dormir ^^)
 

Dranreb

XLDnaute Barbatruc
Re : Raccourcis clavier pour ajouter des $ à la cellule

Je n'ai pas très envie de me casser la tête à comprendre ta macro Dranreb
Je l'ai écrite il y a longtemps, et m'en sers souvent. Elle met en général les dollars la où il conviennent, sauf parfois pour une 1ère ligne qui devrait être absolue si ma formule est par hasard sur cette même 1ère ligne.
Elle travaille sur le R1C1 en fait, y cherche les références relatives entre crochets droits, et les transforme en absolues.
À +
 

Kiseki

XLDnaute Occasionnel
Re : Raccourcis clavier pour ajouter des $ à la cellule

Ok, merci.

Je viens de voir avec ça : (qui semble bien fonctionner)
VB:
Sub FullAbsolute()
Dim FormRef As String

FormRef = Application.ConvertFormula(Formula:=Selection.Formula, fromreferencestyle:=Application.ReferenceStyle, toabsolute:=xlAbsolute)
Debug.Print FormRef
End Sub


Sub NotAbsolute()
Dim FormRef As String

FormRef = Application.ConvertFormula(Formula:=Selection.Formula, fromreferencestyle:=Application.ReferenceStyle, toabsolute:=xlRelative)
Debug.Print FormRef
End Sub


Sub AbsoluteColumn()
Dim FormRef As String, i As Long

'=$E$9+$E$10
FormRef = Application.ConvertFormula(Selection.Formula, Application.ReferenceStyle, xlA1, xlAbsolute)

For i = 65 To 90 'A - Z
FormRef = Replace(FormRef, Chr(i) & "$", Chr(i))
Next i

Debug.Print FormRef '=$E9+$E10

'Range("A1").Formula = FormRef
End Sub


Sub AbsoluteLign()
Dim FormRef As String, i As Long

'=$E$9+$E$10
FormRef = Application.ConvertFormula(Selection.Formula, Application.ReferenceStyle, xlA1, xlAbsolute)

For i = 65 To 90 'A - Z
FormRef = Replace(FormRef, "$" & Chr(i), Chr(i))
Next i

Debug.Print FormRef '=E$9+E$10

'Range("A1").Formula = FormRef
End Sub

Ensuite j'ai regarder un peu plus loin :
Code:
xlAbsolute 1 Convertit au style de ligne et de colonne absolues. 
xlAbsRowRelColumn 2 Convertit au style de ligne absolue et de colonne relative. 
xlRelative 4 Convertit au style de ligne et de colonne relatives. 
xlRelRowAbsColumn 3 Convertit au style de ligne relative et de colonne absolue.

Donc ce devrait être déjà implémenté.
Ce lien n'existe plus

Je suis désolé mais je pense que tu tes bien amusé ^^. (ou que je me soit bien planté ^^)
 

Dranreb

XLDnaute Barbatruc
Re : Raccourcis clavier pour ajouter des $ à la cellule

Je ne sais pas, mais :
99 fois sur 100 il faut des $ seulement pour les références vers une autre ligne ou une autre colonne que celle qui porte la formule.
À l'exception de quelques formules qui se réfèrent parfois toujours à la ligne juste au dessus, que je remplace alors d'abord par des DECALER bien plus sûrs à l'aide de ma 2ième macro.
L'avantage de ma 1ère macro c'est justement de ne plus avoir besoin de réfléchir où il faut mettre la plupart d'entre eux.
Cordialement
 

Dranreb

XLDnaute Barbatruc
Re : Raccourcis clavier pour ajouter des $ à la cellule

Bonjour
Encore une fois ce n'était pas ce que voulais quand j'avais écrit cette macro: je voulais qu'il me mette automatiquement les dollars uniquement devant les lignes et colonnes autres que celles de la cellule où se trouve la formule. Ce qui revient à remplacer tous les décalages entre crochets droits de la formule R1C1 par leur somme avec la position de la cellule.
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 339
Messages
2 087 407
Membres
103 538
dernier inscrit
Mbolatiana Hyacinthe