[Macro] Une macro qui marche sur un seul ordinateur

Bonjour à tous,

J'ai un soucis avec mon fichier Excel sur lequel j'ai fait quelques macro. Sur mon ordinateur, il me donne bien le résultat que je souhaite, mais dès qu'il est lancé sur un autre ordinateur, ça donne n'importe quoi.

Je souhaite qu'en écrivant un chiffre dans la colonne B (par exemple en B6), la macro écrive l'heure dans la colonne d'à côté, puis selon l'heure qu'il est, ajoute le chiffre indiqué en B6 dans la bonne colonne et efface le chiffre de là où il était.

Le code que j'ai écrit est dans "Microsoft Excel Objets", Feuil1 (ou Feuil4 c'est le même principe).

Exemple concret :

On lance la crise en appuyant sur "Commencer la crise", afin d'avoir de bons intervalles dans la 5ème ligne. (Ca ça marche partout.) On veut mettre "1" dans la compétence "Rendre compte au leader", donc on met "1" en B6. Ca met automatiquement l'heure à laquelle on a écrit ce "1" dans la colonne d'à côté, en C6. On est entre l'heure de début de crise et l'heure indiquée en D5, donc il faut qu'en D6 on ait un "1" qui se mette. Ca fait une sorte de "compteur". Ensuite on efface la valeur en B6 mais on garde celle en C6 pour voir l'heure à laquelle on avait fait le dernier ajout.

Le problème est que sur mon PC ça marche très bien, mais sur tous les autres PC (j'ai excel 2010, mais sur 2010 ou 2007 tant que c'est un autre ordinateur ça ne marche pas) j'obtiens des trucs étranges : il efface des trucs n'importe où, ajoute des heures là où il est censé faire le "compteur"...

Je me demande si ça ne vient pas du code qui serait personnel à l'ordinateur.

Pourriez-vous m'aider ? Je suis perdue, ça ne rentre pas dans mes compétences...

Merci d'avance.

Bonjour

Modifies tes deux macros

Private Sub Worksheet_Change(ByVal Target As Range)
'On Error Resume Next
 If Target.Count > 1 Then Exit Sub
  If Not Intersect(Target, [B6:B49]) Is Nothing Then
    Application.EnableEvents = False
    Target(1, 2) = Now
    For i = 4 To 18
      If Target(1, 2) < Cells(5, i).Value Then
        Target(1, i - 1) = Target(1, i - 1) + Target(1, 1)
        Target(1, 1) = ""
        Exit For
      End If
    Next i
  End If
  Application.EnableEvents = True
End Sub

Merci de votre réponse.

J'ai essayé sur l'ordinateur d'un ami (vu que sur le mien c'est toujours parfait), mais avec la modification faite, le problème est cette fois que rien ne s'affiche du tout. On a beau modifier la colonne B, rien ne s'affiche du tout dans les colonnes d'à côté comme ça devrait...

Bonjour

Cette modification a été (est à faire) avant tout test

Je l'avais faite une fois que j'avais marqué un 1 et plus rien ne se passait, il a fallut que je ferme et que je reprenne le fichier, faire les modifs et relancer la macro

Testes ce fichier

Je ne comprends pas la différence entre la macro du fichier joint dans le dernier post et celle que vous m'avez donné à corriger ? J'avais suivi votre conseil et modifié la macro selon le code donné, mais ça n'avait pas marché... Comme je le disais, sur l'ordinateur de mon ami certes on n'a plus le soucis d'afficher n'importe quoi n'importe où, mais du coup rien ne s'affichait du tout quand on mettait un "1" dans la colonne B : l'heure ne s'affiche même pas en C et du coup les compteurs ne sont pas mis à jour non plus

Bonjour

Il n'y a pas de différences

C'est juste pour te signaler que cette version fonctionne et que j'ai un affichage

Si même cette version ne fonctionne pas sur l'ordinateur de ton ami, je n'ai plus d'idée du pourquoi

C'est vraiment étrange... Je sais que ça dépend des ordinateurs, vu que selon qui lance le programme ça ne donnait pas le même résultat, donc peut-être que le problème est partiellement réglé sur votre ordinateur En tout cas, j'essaierai demain sur celui d'autres personnes, mais sur celui de mon ami ce n'est pas réglé vu qu'il ne voit plus rien du tout...

EDIT : Eh bien apparemment le problème s'est réglé ! Merci beaucoup pour ton aide, Banzai64 !

Rechercher des sujets similaires à "macro qui marche seul ordinateur"