XL 2019 Erreur 1004 et erreur d'exécution 13 après Inputbox

Hutchy33

XLDnaute Nouveau
Bonjour les Excelistes!
Dans mon petit code vba du fichier en pièce jointe j'ai 2 erreurs qui se produisent assez embêtantes.

Quand l'utilisateur clique dans la colonne F "Date de fin attendue" je fais apparaitre une Inputbox afin que l'utilisateur paramètre un nombre de jours (admettons 10) pour avoir une alerte visuelle de couleur si la date du jour est dans la fourchette de paramétrage (le fameux 10). Mais cette Inputbox ne doit apparaitre que si on a un numéro d'action renseigné dans la colonne B (en gros si l'utilisateur clique dans la colonne F en dehors du tableau, pas d'Inputbox).

Ma première erreur est que si je clique dans les colonnes B, C, ou D j'ai une erreur d'exécution 1004 qui apparait due à mes tests de conditions mais je pige pas pourquoi.
Ma deuxième erreur, plus classique, est l'erreur d'exécution 13 qui apparait si l'utilisateur clique sur Annuler dans l'Inputbox au lieu de rentrer une valeur de nombre de jour. J'avais repérer une vidéo pour palier à cette erreur mais je n'arrive pas à remettre la main dessus.

Une âme charitable est-elle disponible pour un petit coup de main svp?🙏
Merci beaucoup 🤠
 

Pièces jointes

  • essaiherve33.xlsm
    16.2 KB · Affichages: 5
Solution
Bonjour @Hutchy33

Je te propose ceci:

VB:
Option Explicit

Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim FinAttendue As String 'déclaration de variable

If Not Application.Intersect(Target, Range("F:F")) Is Nothing Then
''paramétrage du nombre de jours pour alerte visuelle avant fin de l'action attendue
    If Target.Column = 6 And ActiveCell.Offset(0, -4) <> "" Then
        FinAttendue = InputBox("Entrez le nombre de jours pour l'alerte:", "Critère d'alerte")
    Else
        Exit Sub
    End If
End If
End Sub

Cela devrait déjà aller mieux

Et j'ai pas d'erreur 13 chez moi

*Merci de ton retour

@Phil69970

Phil69970

XLDnaute Barbatruc
Bonjour @Hutchy33

Je te propose ceci:

VB:
Option Explicit

Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim FinAttendue As String 'déclaration de variable

If Not Application.Intersect(Target, Range("F:F")) Is Nothing Then
''paramétrage du nombre de jours pour alerte visuelle avant fin de l'action attendue
    If Target.Column = 6 And ActiveCell.Offset(0, -4) <> "" Then
        FinAttendue = InputBox("Entrez le nombre de jours pour l'alerte:", "Critère d'alerte")
    Else
        Exit Sub
    End If
End If
End Sub

Cela devrait déjà aller mieux

Et j'ai pas d'erreur 13 chez moi

*Merci de ton retour

@Phil69970
 

Jacky67

XLDnaute Barbatruc
Bonjour les Excelistes!
Dans mon petit code vba du fichier en pièce jointe j'ai 2 erreurs qui se produisent assez embêtantes.

Quand l'utilisateur clique dans la colonne F "Date de fin attendue" je fais apparaitre une Inputbox afin que l'utilisateur paramètre un nombre de jours (admettons 10) pour avoir une alerte visuelle de couleur si la date du jour est dans la fourchette de paramétrage (le fameux 10). Mais cette Inputbox ne doit apparaitre que si on a un numéro d'action renseigné dans la colonne B (en gros si l'utilisateur clique dans la colonne F en dehors du tableau, pas d'Inputbox).

Ma première erreur est que si je clique dans les colonnes B, C, ou D j'ai une erreur d'exécution 1004 qui apparait due à mes tests de conditions mais je pige pas pourquoi.
Ma deuxième erreur, plus classique, est l'erreur d'exécution 13 qui apparait si l'utilisateur clique sur Annuler dans l'Inputbox au lieu de rentrer une valeur de nombre de jour. J'avais repérer une vidéo pour palier à cette erreur mais je n'arrive pas à remettre la main dessus.

Une âme charitable est-elle disponible pour un petit coup de main svp?🙏
Merci beaucoup 🤠
Bonjour à tous,
Ou encore...;)
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'déclaration de variable
      Dim FinAttendue&
    ''paramétrage du nombre de jours pour alerte visuelle avant fin de l'action attendue
    If Target.Column <> 6 Or Target.Row < 3 Or Cells(Target.Row, 2) = "" Then Exit Sub
    FinAttendue = Application.InputBox("Entrez le nombre de jours pour l'alerte:", "Critère d'alerte", Type:=1)
    Target.Offset(, 1).Activate
    If FinAttendue = False Then Exit Sub
    'suite de la macro si le nombre de jours est saisie
    '----
    '----
 End Sub
 
Dernière édition:

Hutchy33

XLDnaute Nouveau
Bonjour @Hutchy33

Je te propose ceci:

VB:
Option Explicit

Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim FinAttendue As String 'déclaration de variable

If Not Application.Intersect(Target, Range("F:F")) Is Nothing Then
''paramétrage du nombre de jours pour alerte visuelle avant fin de l'action attendue
    If Target.Column = 6 And ActiveCell.Offset(0, -4) <> "" Then
        FinAttendue = InputBox("Entrez le nombre de jours pour l'alerte:", "Critère d'alerte")
    Else
        Exit Sub
    End If
End If
End Sub

Cela devrait déjà aller mieux

Et j'ai pas d'erreur 13 chez moi

*Merci de ton retour

@Phil69970
Merci beaucoup Phil effectivement ça marche bien c'est cool. Dans ton qu'est-ce qui empêche l'erreur 13?
 

Discussions similaires

Statistiques des forums

Discussions
314 499
Messages
2 110 247
Membres
110 711
dernier inscrit
chmessi