Vba .hasformula et .clear contents

Résolu
vbabeginner -  
 vbabeginner -
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

  1. alena20 Messages postés 24 Statut Membre 2
     
    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
    1. alena20 Messages postés 24 Statut Membre 2
       
      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
    2. vbabeginner
       
      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
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1. vbabeginner
       
      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