Vba .hasformula et .clear contents

Résolu/Fermé
vbabeginner - 24 juil. 2012 à 09:11
 vbabeginner - 24 juil. 2012 à 10:05
Bonjour,

je cherche à faire une petite procédure qui une fois un certain nombres de cellules sélectionnées par l'utilisateur, vérifie si les cellules contiennent ou non une formule et si les cellules n'en contiennent pas, la procédure efface le contenu de ces cellules.

Voici mes lignes de codes:

Sub Myfirstlines()
Dim SelCellules As Range
Dim Cellules As Range
On Error Resume Next
Set SelCellules = Application.InputBox("Select range of cells to act upon", "Cell selection", 8)
For Each Cellules In SelCellules
If Cellules.HasFormula = False Then
Cellules.ClearContents
End If
Next
End Sub

Merci par avance pour votre aide

2 réponses

alena20 Messages postés 23 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 6 mai 2015 2
Modifié par alena20 le 24/07/2012 à 09:52
Bonjour,

Si la verification concerne aussi les actions simples comme "=A1+B1" chaque formula contient '=' au debut, alors il reste de verifier s'il y a "=" au debut.

Sub Myfirstlines() 
Dim SelCellules As Range 
Dim Cellules As Range 

On Error Resume Next 

Set SelCellules = Application.InputBox("Select range of cells to act upon", "Cell selection", Type:=8) 
    For Each Cellules In SelCellules 
        If Left(Cellules.Formula, 1) = "=" Then 
            Cellules.ClearContents 
        End If 
    Next 
End Sub 


Cord, Alena
0
alena20 Messages postés 23 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 6 mai 2015 2
24 juil. 2012 à 09:57
En effet, ca marche aussi avec Cellules.HasFormula. Je pense l'erreure a ete en Application.InputBox.Il faulait inquer le type..dans tous les cas ca marche chez moi.
Sub Myfirstlines()
Dim SelCellules As Range
Dim Cellules As Range

On Error Resume Next

Set SelCellules = Application.InputBox("Select range of cells to act upon", "Cell selection", Type:=8)
    For Each Cellules In SelCellules
        If Cellules.HasFormula = False Then
                 Cellules.ClearContents
        End If
    Next
End Sub


Cord,Alena
0
Merci,
je pensais avoir indiqué le type en ajoutant "8" a la fin de mon expression Application.Inputbox mais Type:= semble etre important et la solution à mon probleme.
Cordialement
0
f894009 Messages postés 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 1 678
24 juil. 2012 à 09:52
Bonjour,

Sub Myfirstlines()
  Dim Cellules As Range
  On Error Resume Next
  'Mettre le nom de la feuille
  With Worksheets("feuil1")
    Set SelCellules = Application.InputBox(prompt:="Select range of cells to act upon", Title:="Cell selection", Type:=8)
    For Each Cellules In SelCellules
      If Cellules.HasFormula = True Then
        Cellules.ClearContents
      End If
    Next
  End With
End Sub


Bonne suite
0
Merci,
l'objectif est de conserver les formules dans les cellules qui en contiennent donc .hasformula=False, mais mon erreur semble provenir du fait que je n'ai pas précisé que 8 etait un Type:=
Cordialement
0