La méthode range de l'objet worksheet a echoué [VBA]

Bonjour,

je bosse actuellement sur un programme qui fonctionnait très bien jusqu'à ce que il m'affiche une erreur (voir screen)

Et quand je lance le debogage il me ferme le fichier excel..

Voici mon fichier exel

Quand je lance le fichier excel sur un vieux pc (winodow xp), le programme fonctionne très bien ! Alors pourquoi pas sur window 10 ? (je ne pense pas que l'erreur vienne de la version de window)

Pouvez-vous m'aider svp ?

Cordialement

capture
23tableau.xlsm (15.76 Ko)

Je vais pas pouvoir t'aider, mais juste à titre d'information je suis sous windows 10 et excel 2016 et j'ai aucune erreur.

Je vais pas pouvoir t'aider, mais juste à titre d'information je suis sous windows 10 et excel 2016 et j'ai aucune erreur.

C'est bon a savoir, merci

Bonjour,

Ce qui m'étonne, c'est que ce code puisse s'exécuter sans planter Excel !

C'est un agrégat de bouts de code visiblement écrits par des personnes différentes, qui se chevauchent et qui vont relancer l'évènement sans contrôle. On se perd dans des interventions répétées sur les mêmes colonnes.

J'ai fait l'effort de le lire, mais pas question de le lancer, aucune envie de traiter les conséquences...

Je pense qu'il faut redéfinir l'objectif et tout réécrire, correctement cette fois !

Malheureusement, je débute en VBA et j'ai créer se programme grâce à l'aide de se forum, donc je n'arriverai pas a le reecrire tout seul...

J'ai retreci mes lignes de codes pour voir ou été le problème et mon problème viens de la:

 Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Column = 4 Then
    'Ecris lheure actuelle dans la colonne D apres avoir scanner le START
        Cells(Target.Row, 4).Value = Time()
    End If

    If Target.Column = 5 Then
    'Ecris lheure actuelle dans la colonne E apres avoir scanner le END
        Cells(Target.Row, 5).Value = Time()
    End If

    If Not Application.Intersect(Target, Range("E:E")) Is Nothing Then
    'Permet la soustraction des heures du debut et de fin
        Target.Offset(0, 1).Value = Target.Offset(0, -1).Value - Target.Value
        Target.Offset(0, 1).NumberFormat = "[mm]"
    End If

End Sub  

Je ne comprend vraiment pas pourquoi...

Pensez-vous pouvoir m'aider ?

bonjour,

ça veut dire quoi "scanner le START" et "scanner le "END"

A quel moment veux-tu écrire l'heure de début ?

A quel moment veux-tu écrire l'heure de fin ?

A quel moment veux tu écrire la date ?

A+

bonjour,

ça veut dire quoi "scanner le START" et "scanner le "END"

A quel moment veux-tu écrire l'heure de début ?

A quel moment veux-tu écrire l'heure de fin ?

A quel moment veux tu écrire la date ?

A+

Scanner le START veut dire que j'ai un code barre ("START") et qui affiche l'heure actuelle quand je le scan et le END, pareil jai un code barre ("END") qui affiche l'heure actuelle quand je le scan donc le programme soustrait les deux heures et affiche la différence

Bon finalement j'ai résolu le problème de "la méthode range de l'objet worksheet a echoué" grâce à l'aide d'une personne dans un autre topic.

Il a ajouté application.enableevents=false et true pour éviter le plantage d'excel et cela fonctionne à merveille.

Voici le code :

 Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 4 Then
        'Ecris lheure actuelle dans la colonne D apres avoir scanner le START
        Application.EnableEvents = False
        Target.Value = Time()
        Target.NumberFormat = "hh:mm:ss"
        Application.EnableEvents = True
    End If

    If Target.Column = 5 Then
        'Ecris lheure actuelle dans la colonne E apres avoir scanner le END
        Application.EnableEvents = False
        Target.Value = Time()
        Target.NumberFormat = "hh:mm:ss"
        Target.Offset(0, 1) = 24 * (Target.Value - Target.Offset(0, -1).Value)
        Target.Offset(0, 1).NumberFormat = "0.00"
        Application.EnableEvents = True
    End If

End Sub 

Quelqu'un s'est donc dévoué !

Je te signale toutefois que je t'avais signalé ce problème hier à 13h16 !

et qui vont relancer l'évènement sans contrôle

parce que intervenant sur les cellules qui déclenchent l'évènement, elles vont le relancer puisque tu le maintenais actif...

Compte tenu de l'ensemble, je t'avais suggéré de redéfinir l'objectif de façon que l'on puisse réécrire entièrement le code, suggestion que tu n'as pas retenue...

Cordialement.

Rechercher des sujets similaires à "methode range objet worksheet echoue vba"