Problème pour insérer lettres

Salut

J'ai un code qui fait l'action suivante de manière automatique:

si la case n'est pas cochée (c'est à dire si la cellule I10 liée à cette case possède la valeur False), et si j'essaie d'inscrire quelque chose dans la cellule L10, automatiquement la cellule L10 s'efface et apaprait un message d'erreur.

Voici le problème:

La macro fonctionne à merveille si j'inscris dans la cellule L10 des chiffres uniquement.

Mais si j'y écris aussi des lettres (ou même seulement une lettre), je reçois un bug : run-time error '13': type mismatch

et la ligne suivante dans le code de la macro se colore en jaune:

 If (Range("L10") And Range("I10") = "False") Then

Qui peut m'aider à comprendre SVP?

voici la macro complete:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range

Set KeyCells = Range("L10")
          If Not Intersect(KeyCells, Target) Is Nothing Then
      If Range("L10") <> " " Then
      Range("L10").Interior.ColorIndex = 0
      Range("L8").Font.Color = vbWhite
      End If

  If (Range("L10") And Range("I10") = "False") Then
  Range("L10").Value = Null

  MsgBox "Vous n'avez pas coché la case!"
  Exit Sub

  End If

      End If
      

Bonjour,

Sincèrement ... la macro que tu as postée est étrange ... à bien des points de vue ...

Ci-dessous une proposition à tester :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$L$10" Then Exit Sub
    If IsEmpty(Target) Then
       Target.Interior.ColorIndex = 0
       Target.Offset(-2, 0).Font.Color = vbWhite
    Else
       If Target.Offset(0, -3) = False Then
          Target.Value = Null
          MsgBox "Vous n'avez pas coché la case!"
          Exit Sub
       End If
    End If
End Sub

En espèrant que cela t'aide

je vous joins le fichier

ce sera plus simpe pour vous de comprendre l'idee generale

je vous joins le fichier

ce sera plus simpe pour vous de comprendre l'idee generale

L'idée générale ... c'est que malheureusement ... il faut tout reprendre ...

Est-ce-que tu as saisi la logique de la macro que je t'ai postée ... ?

Je ne l'ai pas vraiment comprise...

Le problème c'est que je ne peux tout changer depuis le début car ça m'a pris un mois à tout préparer, et vraiment tout fonctionne, à part si j'écris une lettre à la place d'un simple numéro dans la cellule L10.

Dans ce cas je vais prendre le problème à l'envers...

Lorsque j'écris dans la cellule L10 un horaire au format 10:30 (avec les deux points de séparation), une autre cellule qui reprend la valeur de L10 (avec le signe =) donne la valeur numérique de L10, même si je mets l'autre cellule au format date aussi...

Est-ce possible de transférer la valeur d'une cellule à l'autre tout en gardant le format date?

Bonjour,

Utilises la fonction IsNumeric() et testes la valeur de retour :

If Not IsNumeric(Target.Value) Then MsgBox "Seulement numérique !": Exit Sub

Est-ce possible de transférer la valeur d'une cellule à l'autre tout en gardant le format date?

Bonjour,

La réponse à ta question est Oui ..

Mais, du coup, je ne comprends plus le rapport avec ton objectif de ' Lettres ' ...

Au fait, peux-tu donner un exemple de ' Lettres ' à saisir ...?

je voulais inscrire un horaire au format 10h30 puis que cet horaire apparaisse dans une autre cellule dans un autre onglet.

Mais le probleme etait qu'em ecrivant une lettre (en l'occurance "h") dans la cellule L10, ca provoquait un bug, et j'ai prefere de pas commencer a tout changer les macros.

Je suis donc alle a l'inverse, en copiant la valeur de la cellule L10 vers une autre cellule dans un autre onglet, et la, la valeur de l'horaire copie se transformait en valeur decimale.

J'ai compris d'ou viens le probleme.

Merci a tous pour votre aide

Re,

Content que tu aies pu résoudre ton problème ...

Re,

Ta question " Insérer Lettres " ...

aurait dû avoir un intitulé différent :

Formule pour transformer Horaire en Texte ...

un exemple joint ...

4test-ericw.xlsx (8.82 Ko)
Rechercher des sujets similaires à "probleme inserer lettres"