Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

En VBA Identifier si une somme ou sous total est dans une cellule

chichecapon13

XLDnaute Nouveau
Bonjour à tous,

Je souhaiterais savoir comment tester toutes les cellules d'une ligne active pour savoir si au moins une d'elles contient une formule avec SOMME() ou SOUS.TOTAL() et surtout pas autre chose afin d'interdire alors l'insertion d'une ligne à partir de celle-ci.

Merci à vous par avance
 

Fred0o

XLDnaute Barbatruc
Bonjour chichecapon13,

Tu peux essayer un code comme celui-ci, a adapter :
VB:
If Left(Range(LaCellule).Formula, 4) = "=SUM" Or Left(Range("E6"LaCellule).Formula, 9) = "=SUBTOTAL" Then TaFonction
 

Fred0o

XLDnaute Barbatruc
Bonjour
Une simple boucle comme ceci suffit :
VB:
  For Each c In ActiveCell.EntireRow.Cells
  If Left(c.Formula, 4) = "=SUM" Or Left(c.Formula, 9) = "=SUBTOTAL" Then MsgBox c.Address & "OK"
  Next
 

Lone-wolf

XLDnaute Barbatruc
Bonjour chichcapon, fred

Sans la boucle

VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
  If ActiveCell <> R.FormulaLocal Then
  MsgBox R.Address & " - OK"
  Else
  Exit Sub
  End If
End Sub

Bizarrement ça marche aussi.
 

chichecapon13

XLDnaute Nouveau
Merci à vous, cela fonctionne ,j'ai mis tout ça dans une
Private Sub Worksheet_SelectionChange()
mais sans vouloir abuser, comment interdire (sans passer par les protections) l'insertion de ligne ? Le souçi étant bien à la base d'interdire une insertion de ligne à partir d'une ligne qui contient ce type de formule...
Il me semble que l’événement est le bon mais je sèche complétement pour désactiver l'insertion..
Cordialement
 

job75

XLDnaute Barbatruc
Bonjour,
Le souçi étant bien à la base d'interdire une insertion de ligne à partir d'une ligne qui contient ce type de formule...
A priori vous n'êtes pas dans le coup...

L'insertion d'une ligne au-dessus de (par exemple) la ligne 100 ne pose aucun problème si l'on utilise (par exemple) en B100 :
Code:
=SOMME(B1:DECALER(B100;-1;))
Même principe avec SOUS.TOTAL...

A+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…