Erreur 1004, Fichier

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

13anais-1.zip (83.36 Ko)

Bonjour,

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

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

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 ...

Onglet : "EMPLOYE 20' => feuille créée

IJOUR : "4"

IPAUSE : "0"

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...

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 ...

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

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

Merci,

En ayant mis Option Explicit

la case Heure de Départ ne se remplit plus. Par contre retour oui.

Oui j'ai finalement téléchargé le fichier et j'ai trouvé la déclaration de la variable iPause dans ton Module1...

du coup pas besoin de rajouter de Dim .. d'ailleurs pas d'erreurs supplémentaires de compilation , si tu rajoute option explicit..

On peu s'assurer que iPAuse soit <> 0 lorsque tu clique sur le bouton début journée :

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

'----- Lors de l'activation du bouton pause passe iPause à 6 si celui-ci n'as pas été initialisé.. 
    If IPAUSE = 0 Then IPAUSE = 6

   Ret_Pause.Enabled = False
End Sub

Ok donc là j'ai fais la modification et il me dit :

If Not ADMIN Then Sheets(ONGLET).Unprotect Password:=MDP

Pour mieux visualiser, Pour entrer dans les paramètres, il suffit de mettre comme mot de passe : ADMIN

et dans l'onglet PARAMETRES, j'ai généré les mots de passe des agents.

Et se connecter avec le compte d'un agent.

ANAIS_P a écrit :

Ok donc là j'ai fais la modification et il me dit :

If Not ADMIN Then Sheets(ONGLET).Unprotect Password:=MDP

il dit quoi ?

Bonjour,

J'ai essayé tous les changements possibles mais j'arrive toujours avec l'erreur 1004...

Je ne sais plus trop quoi faire...

Merci de votre aide.

bonjour,

et alors qu'attends tu pour appliquer la même méthode que lors de ton précédent problème ...? passe en débug et regarde la valeur de ta variable ONGLET ...

si elle ne contient pas le nom d'un Onglet existant demande toi pourquoi ... ou trouve un moyen pour l'éviter ...

Rechercher des sujets similaires à "erreur 1004 fichier"