Macro EXCEL : Conditionner une commande

Résolu
alainjjb Messages postés 747 Date d'inscription   Statut Membre Dernière intervention   -  
alainjjb Messages postés 747 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je viens d'obtenir la solution pour initialiser les données d'un tableau sans modifier les formules par contre cette commande ne marche pas si la zone concernée du tableau est déjà vide (message d'erreur). Comment puis-je conditionner cette commande dans ma macro afin de n'exécuter cette commande d'init que lorsque le tableau contient des données ?
Range("E9:M500,D5").Select
Selection.SpecialCells(xlCellTypeConstants).ClearContents

Merci d'avance

Alain
Configuration: Windows XP
Firefox 2.0.0.14

2 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    Tout simplement

    Range("E9:M50,D5").Select
    Selection.ClearContents

    A+
    0
    1. alainjjb Messages postés 747 Date d'inscription   Statut Membre Dernière intervention   112
       
      Bonjour mike,

      ce que je recherche c'est de conditionner la commande d'init pour qu'elle ne s'exécute que lorsque la sélection contient des données. Sinon la commande fonctionne bien et efface les données sans toucher aux formules ( la commande que tu me transmets efface aussi les formules).

      Merci quand même

      Alain
      0
  2. m@rina Messages postés 27465 Date d'inscription   Statut Modérateur Dernière intervention   11 562
     
    Bonjour,

    Voici une macro qui efface toutes les cellules qui ne contiennent pas de formules :

    Sub efface_constantes()

    For Each cellule In Range("E9:M500,D5")
    If cellule.HasFormula = False Then
    cellule.ClearContents
    End If
    Next cellule

    End Sub
    0
    1. alainjjb Messages postés 747 Date d'inscription   Statut Membre Dernière intervention   112
       
      Merci beaucoup m@rina,

      sur un autre post (je me suis trompé de forum) onesdf m'a donné à peu près la même solution. Je vous remercie beaucoup à tous de partager vos connaissance.

      Alain
      0