Erreur 1004, Fichier

Y compris Power BI, Power Query et toute autre question en lien avec Excel
A
ANAIS_P
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 14 juin 2016
Version d'Excel : 2007

Message par ANAIS_P » 22 juillet 2016, 14:02

Bonjour,

J'ai également un problème : 1004....
Voilà, en PJ le fichier.

J'ai réussis à trouver un super fichier sur internet que quelqu'un avait créé.
Il agit en tant que badgeuse excel et tous les collaborateurs peuvent se connecter avec mot de passe à leur compte et avec bouton, ils n'ont qu'à appuyer pour dire :
qu'ils démarrent leur journée
qu'ils vont en pause
qu'ils reviennent de pause
qu'ils finissent leur journée

et Les données se mettent à jour.

Malheureusement, j'ai un soucis dès que le collaborateur clique sur départ en pause : erreur débogage 1004.
J'ai beau avoir effectué des ajustements, cette erreur ne s'en va pas.

Par ailleurs, je voudrais créer une feuille récapitulative de tous les agents par jour / Mois.

Est-ce que quelqu'un de super calé pourrait m'aider ?
Merci
ANAIS_1.xls
(197.5 Kio) Téléchargé 12 fois
p
pierre.jy
Membre dévoué
Membre dévoué
Messages : 500
Appréciation reçue : 1
Inscrit le : 26 février 2016
Version d'Excel : 2010

Message par pierre.jy » 22 juillet 2016, 14:10

Bonjour,


copie ici la ligne de code provoquant l'erreur...

un fichier c'est bien mais une description de celui-ci et du fonctionnement souhaité directement sur le forum c'est mieux ;) pensez as mon smartphone ;)

A
ANAIS_P
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 14 juin 2016
Version d'Excel : 2007

Message par ANAIS_P » 22 juillet 2016, 14:15

OUPS désolée, je ne savais pas...

Voici le code :

Private Sub UserForm_Activate()
'affichage de l'userform
Me.Left = 100
Me.Top = 150
Nom.Caption = Sheets("ACCUEIL").Cells(14, 9)
MDP = Sheets("PARAMETRES").Cells(1, 5)
If Not ADMIN Then Sheets(ONGLET).Unprotect Password:=MDP
With Sheets(ONGLET)
IJOUR = .Range("A65536").End(xlUp).Row
If .Cells(IJOUR, 1) = Date Then
If .Cells(IJOUR, 4) = "" Then
Arrivée.Enabled = False
Depart.Enabled = True
'On cherche si il y a des départs pauses sans retour
IPAUSE = 6
While .Cells(IJOUR, IPAUSE) <> "" And .Cells(IJOUR, IPAUSE + 1) <> ""
IPAUSE = IPAUSE + 3
Wend
If .Cells(IJOUR, IPAUSE) <> "" Then
' il y a eu un départ en pause et pas de retour
Dep_Pause.Enabled = False
Ret_Pause.Enabled = True
IPAUSE = IPAUSE + 1
Else
Dep_Pause.Enabled = True
Ret_Pause.Enabled = False
End If
Else
Arrivée.Enabled = False
Depart.Enabled = False
Dep_Pause.Enabled = False
Ret_Pause.Enabled = False
MsgBox "Votre journée est finie vous ne pouvez que consulter"
End If
Else
Arrivée.Enabled = True
Depart.Enabled = False
Dep_Pause.Enabled = False
Ret_Pause.Enabled = False
IJOUR = IJOUR + 1
End If
End With
End Sub
Private Sub Retour_Click()
Pointage.Hide
Sheets("ACCUEIL").Select
If Not ADMIN Then Sheets(ONGLET).Protect Password:=MDP
Sheets(ONGLET).Visible = False
MDP = ""
LMDP = 0
End Sub
Private Sub UserForm_Terminate()
Sheets("ACCUEIL").Select
If Not ADMIN Then Sheets(ONGLET).Protect Password:=MDP
Sheets(ONGLET).Visible = False
MDP = ""
LMDP = 0
End Sub
Private Sub Arrivée_Click()
'On recherche de la 1¡ ligne libre dans le tableau
'On enregistre la date
Sheets(ONGLET).Cells(IJOUR, 1) = Date
Sheets(ONGLET).Cells(IJOUR, 3) = Time
Arrivée.Enabled = False
Depart.Enabled = True
Dep_Pause.Enabled = True
Ret_Pause.Enabled = False
End Sub
Private Sub Depart_Click()
With Sheets(ONGLET)
IJOUR = .Range("A65536").End(xlUp).Row
If .Cells(IJOUR, 1) = Date Then
'Enregistrement de l'heure de sortie
.Cells(IJOUR, 4) = Time
.Cells(IJOUR, 2) = .Cells(IJOUR, 4) - .Cells(IJOUR, 3) - .Cells(IJOUR, 5)
Arrivée.Enabled = False
Depart.Enabled = False
Dep_Pause.Enabled = False
Ret_Pause.Enabled = False
End If
End With
End Sub
Private Sub Dep_Pause_Click()
'On part en pause
With Sheets(ONGLET).Cells(IJOUR, IPAUSE) = Time
IPAUSE = IPAUSE + 1
Arrivée.Enabled = False
Depart.Enabled = False
Dep_Pause.Enabled = False
Ret_Pause.Enabled = True
End With
End Sub
Private Sub Ret_Pause_Click()
'On revient de pause
With Sheets(ONGLET)
.Cells(IJOUR, IPAUSE) = Time
.Cells(IJOUR, IPAUSE + 1) = .Cells(IJOUR, IPAUSE) - .Cells(IJOUR, IPAUSE - 1)
.Cells(IJOUR, 5) = .Cells(IJOUR, 5) + .Cells(IJOUR, IPAUSE + 1)
End With
IPAUSE = IPAUSE + 2
Arrivée.Enabled = False
Depart.Enabled = True
Dep_Pause.Enabled = True
Ret_Pause.Enabled = False
End Sub
p
pierre.jy
Membre dévoué
Membre dévoué
Messages : 500
Appréciation reçue : 1
Inscrit le : 26 février 2016
Version d'Excel : 2010

Message par pierre.jy » 22 juillet 2016, 14:24

Lors du "bug" , clique sur le bouton "Débogage" puis passe la souris sur les variables ONGLET, IJOUR et IPAUSE pour vérifier leur valeur ..

ONGLET doit contenir le nom d'une feuille existante dans le classeur actif , IJOUR et IPAUSE doivent être au moins supérieur à 0 ...

un fichier c'est bien mais une description de celui-ci et du fonctionnement souhaité directement sur le forum c'est mieux ;) pensez as mon smartphone ;)

A
ANAIS_P
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 14 juin 2016
Version d'Excel : 2007

Message par ANAIS_P » 22 juillet 2016, 14:27

Onglet : "EMPLOYE 20' => feuille créée
IJOUR : "4"
IPAUSE : "0"
p
pierre.jy
Membre dévoué
Membre dévoué
Messages : 500
Appréciation reçue : 1
Inscrit le : 26 février 2016
Version d'Excel : 2010

Message par pierre.jy » 22 juillet 2016, 14:31

et donc .. tu vois bien que lPause = 0 et que ton classeur ne contient pas de colonne 0 ... ( A = Colonne 1 ....) as toi de voir comment doit-être initialisé lPause...

un fichier c'est bien mais une description de celui-ci et du fonctionnement souhaité directement sur le forum c'est mieux ;) pensez as mon smartphone ;)

m
minanse
Membre dévoué
Membre dévoué
Messages : 693
Inscrit le : 1 juin 2016
Version d'Excel : 2007

Message par minanse » 22 juillet 2016, 14:33

Bonjour,

l'indice minimum d'une cellule est : cells(1,1)
pierre.jy a écrit : ONGLET doit contenir le nom d'une feuille existante dans le classeur actif , IJOUR et IPAUSE doivent être au moins supérieur à 0 ...
A
ANAIS_P
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 14 juin 2016
Version d'Excel : 2007

Message par ANAIS_P » 22 juillet 2016, 14:47

Désolée mais je ne sais pas.
Je ne suis pas une pro du développement mais quand je regarde bien le code plus haut, il y a :

IPAUSE = 6
p
pierre.jy
Membre dévoué
Membre dévoué
Messages : 500
Appréciation reçue : 1
Inscrit le : 26 février 2016
Version d'Excel : 2010

Message par pierre.jy » 22 juillet 2016, 14:52

ok ,

tu n'as pas du copier tout le code il manque la déclaration de certaines variables ... pour mettre en évidence cela rajoute en haut de tous tes pages de codes la ligne :
Option Explicit

commence par rajouter la ligne option Explicit en haut de toutes tes pages de codes puis compile ton projet (voir menu Débogage/Compiler VBAProject )

pour ton iPause ... si lors de la compilation une nouvelle erreur apparaît , déclare celle-ci en haut de ta page de code :
Option Explicit
Dim iPause as integer

un fichier c'est bien mais une description de celui-ci et du fonctionnement souhaité directement sur le forum c'est mieux ;) pensez as mon smartphone ;)

A
ANAIS_P
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 14 juin 2016
Version d'Excel : 2007

Message par ANAIS_P » 22 juillet 2016, 15:12

Merci,

En ayant mis Option Explicit
la case Heure de Départ ne se remplit plus. Par contre retour oui.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message