Forum Clubic

RESOLU - Changer le type d'une cellule en "vide"

Salut tout le monde,

Petite question aux experts d’Excel :jap:

Question directe, sans détails : Y a-t-il moyen, sous Excel, de permettre à une cellule de retrouver son statut de cellule VIDE (qui est différent de simplement mettre "")?

En effet, le simple fait de mettre “” fait que la cellule n’a plus le statut de vide, mais un statut de “label” (même si rien n’est affiché à l’écran) … ceci peut être vérifié en faisant CELLULE(“type”,nom_cellule). Or, cela pose problème dans mon cas (voir détails)

Avec détails :

  • Une de mes cellules (disons A1) doit contenir (ou pas), une valeur selon la valeur d’une autre cellule (disons A2). Je passe donc par une condition SI (j’ai Excel en francais, donc tout est traduit malheureusement)
SI(A2=1;A2;"")

La structure du SI étant : SI(condition;valeur si VRAI; valeur si FAUX)

Donc si A2 vaut 1, A1 doit afficher 1
Mais si A2 vaut autre chose, A1 devrait rester VIDE.

Or, le simple fait de mettre la fonction “SI” dans le code de A1, fait que la cellule n’est plus vide, mais possède un statut de “label”

SI je me mets sur B1 et que je tape:

CELLULE("type";A1)

Il me renvoie "v" si A1 vaut "1" (ce qui est logique) mais il me renvoie "L" si A1 est vide via "", or une cellule VIDE doit afficher un type "i" (ou "b" en anglais)

J’ai alors essayé via une cellule tierce, A3 :

SI(A2=1;A1=A2;"")

A1 ne serait alors modifié QUE si A2 vaut 1. Cependant il n’est pas possible de modifier la valeur d’une cellule via une autre :confused:

La seule solution qui me reste est donc , en A1:

SI(A2=1;A2;FCT_QUI_FAIT_QUE_A1_GARDE_LE_STATUT_DE_VIDE)

Et c’est là que je bloque :confused: Apparemment, la seule manière de vider une cellule complètement est de faire DEL manuellement, au clavier. Or, j’ai besoin d’automatiser toute une série de données et ne peux me permettre de le faire manuellement …

Merci d’avance à ceux qui pourront m’aider :jap:

PS: car dans mon cas, un graphe est dessiné en fonction des valeurs des colonnes. Or, si la cellule a un type “L” (donc avec “”), un label vide est ajouté dans le graphe. Label, qui n’est pas présent s’il rencontre une cellule réellement vide … voilà, j’espère avoir été clair :paf:

Comme tu l’as expliqu", le simple fait de mettre une fonction dans ta cellule la rend “non vide”.

A mon avis, le seul moyen serait d’utiliser une macro.

C’est faisable sans trop de difficultés? :confused:

Car je n’ai jamais bossé avec des macros sous Excel …

[code]
Sub Macro1()

  Sheets("feuil1").Range("A2").Select
  c = ActiveCell
 
  Sheets("feuil1").Range("A1").Select
            If c = 1 Then
                 ActiveCell.FormulaR1C1 = c
            Else
                 ActiveCell.ClearContents
           End If
End Sub[/code]
ca semble faire ce que tu veux

Merci bcp pr le code :jap: … je vais essayer ça [:faim]

EDIT : [:fritt] ça marche nickel … merci Cloch_hard :wink:

EDIT2 : Question … y a moyen de me mettre le code d’une boucle (histoire de balayer toute une colonne de A1>A500)? ça marche avec “DO”?

une manière :

Sub Macro1()

For i = 0 to 499  
 Sheets("feuil1").Range("A2").Offset(i,0).Select
  c = ActiveCell
 
  Sheets("feuil1").Range("A1").Offset(i,0).Select
            If c = 1 Then
                 ActiveCell.FormulaR1C1 = c
            Else
                 ActiveCell.ClearContents
           End If
  Next i
End Sub

Merci à vous deux :jap:

J’ai édité, mon “Next i” n’était pas au bon endroit :smiley: