Affecter des formules en VBA

  • Initiateur de la discussion Initiateur de la discussion Pierwak
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Pierwak

XLDnaute Occasionnel
Bonjour a tous, j'aimerais savoir si il est possible d'affecter une formule simple type $AA6+$AB6 dans une cellule via VBA. En effet, mes utilisateurs travaillent sur des feuilles protégées, il faudrait donc que cela puisse etre fait via un bouton.
 
Re : Affecter des formules en VBA

salut pierwak, à adapter à ton cas

Private Sub Workbook_Open()
With Sheets("feuil1")
.Range("ac1").FormulaLocal = "=aa1+ab1"
End With
End Sub

clic droit sur l'onglet de la feuille et visualiser le code, tu colles le code et voilà
ou si tu veux que ce soit exécuter via un bouton, tu le colles dans le code du bouton


@+ GC
 
Re : Affecter des formules en VBA

Bonjour,

Pour pouvoir mettre à jour des cellules protégées via VBA il faut utiliser ceci
Dans le module ThisWorkbook
Code:
Private Sub Workbook_Open()
    With Worksheets("Feuil1")
        .Protect "laetitia", UserInterfaceOnly:=True
    End With
End Sub
Dans un module standard associé à un bouton
Code:
Sub Formule()
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "=R6C27+R6C28"
End Sub
 
Re : Affecter des formules en VBA

merci, j'ai adapté a mon cas comme suit
Code:
.Range(.Cells(6, 39), .Cells(L, 39)).Select
Selection.Cut
.Cells(6, 39).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Range(.Cells(6, 40), .Cells(L, 40)).FormulaR1C1 = "=RC[3]+RC[8]+RC[9]+RC[10]"
Car je veux en fait enlever la formule de la colonne 39 pour bloquer ses valeurs et mettre une nouvelle formule dans la colonne 40, et ce a chaque click sur un bouton. L'opération de copie valeurs se passe bien mais la formule ne s'affecte pas à mes cellules de la colonne 40. L est défini en début de méthode comme la dernière ligne remplie du fichier. Quelqu'un pourrait m'aider à faire cela ??
 
Re : Affecter des formules en VBA

Après recherches de fils similaires, j'ai modifié mon code comme suit
Code:
.Range(.Cells(6, 39), .Cells(L, 39)).Select
Selection.Copy
.Cells(6, 39).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
For Each cel In .Range(.Cells(6, 40), .Cells(L, 40))
cel.Formula = "=($AQ6+$AV6+$AW6+$AX6)"
Next cel

Cela fonctionne mais malheureusement la somme est toujours faite avec les chiffres de la ligne 6. Je voudrais que pour la 7 ce soit les mêmes colonnes mais avec les chiffres de la ligne 7. C'est surement tout a fait faisable mais je ne vois pas comment.

merci d'avance a celui qui me donnera la réponse
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
443
Réponses
2
Affichages
443
Réponses
32
Affichages
1 K
Retour