Court-circuiter un message d'erreur

Magic_Doctor

XLDnaute Barbatruc
Bonsoir,

Si, malencontreusement, dans une cellule je tape "--" ou "++", apparaît un message d'erreur (traduit de l'espagnol) : "Erreur dans la formule introduite..."
Peut-on faire en sorte que ce message n'apparaisse pas ?

Merci pour toute information.
 

job75

XLDnaute Barbatruc
Re : Court-circuiter un message d'erreur

Bonjour Magic_Doctor, Goosse_Clement,

Le message se produit lors de la validation d'une formule erronée.

Mais alors que la cellule est encore en mode Edition, donc avant la création de l'évènement Change.

Aucune macro ne peut donc s'exécuter.

Et il n'y a aucune option permettant d'éviter le message.

A+
 

job75

XLDnaute Barbatruc
Re : Court-circuiter un message d'erreur

Re,

Magic_Doctor, je crois que tu aimes les usines à gaz :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
[Sel].NumberFormat = [Format]
Me.Names("Sel").Delete
Me.Names("Format").Delete
On Error GoTo 0
If Target.Count = 1 Then
  Me.Names.Add "Sel", Target
  Me.Names.Add "Format", Target.NumberFormat
  Target.NumberFormat = "@" 'format Texte
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
  If Not IsError(Evaluate(Target.Formula)) Then
    Application.EnableEvents = False
    On Error Resume Next 'sécurité
    Target.NumberFormat = [Format]
    Target = Target.Formula
    Application.EnableEvents = True
  End If
End If
End Sub
Il n'y aura plus de message puisque la cellule est mise (provisoirement) au format Texte.

Mais à mon avis c'est vraiment capillotracté.

A+
 

Magic_Doctor

XLDnaute Barbatruc
Re : Court-circuiter un message d'erreur

Bonjour Goosse_Clement, job,

En effet job, tu as tout à fait raison, tout ça est vraiment tiré par les cheveux. Comme il semble vraiment difficile que cette boîte n'apparaisse pas en cas d'entrée dyskinésique dans une cellule de plusieurs "-" ou "+", pourrait-on en revanche faire en sorte qu'automatiquement cette boîte soit validée au travers du bouton "OUI" ? J'ai en effet remarqué que si je cliquais sur "OUI" après avoir, par exemple, entré "--", la boîte se fermait et automatiquement se substituait à --" '--, autrement dit en texte. Par la suite une macro événementielle gère parfaitement le problème, à savoir qu'à '-- se substitue instantanément ???, indiquant ainsi dans la cellule qu'une bourde y a été entrée.
 

job75

XLDnaute Barbatruc
Re : Court-circuiter un message d'erreur

Re,

Avec la solution proposée le Couper-Copier/Coller ne peut généralement pas se faire.

On peut y remédier par :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Application.CutCopyMode Then
  If MsgBox("Coller ?", 4) = 6 Then
    Application.EnableEvents = False
    Me.Paste
    Application.EnableEvents = True
  End If
End If
[Sel].NumberFormat = [Format]
Me.Names("Sel").Delete
Me.Names("Format").Delete
On Error GoTo 0
If Target.Count = 1 Then
  Me.Names.Add "Sel", Target, False
  Me.Names.Add "Format", Target.NumberFormat, False
  Target.NumberFormat = "@" 'format Texte
End If
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 438
Messages
2 088 425
Membres
103 849
dernier inscrit
giem