aide creation petit programme...

jichiali

XLDnaute Nouveau
Bonjour a tous,

Je souhaite creer une base de donnée pour le pointage des salaries..
je pointe tous les jours envions 300 personnes manuellement, enfin sur excel mais bon... :(

Ce que j'aimerai; ca serai de creer la base de donnee dees salaries sur access; et ensuite juste avoir a taper les numeros d'immatriculation sur excel pour qu'ils soient automatiquement pointé sur le tableau journalier...
VOUS ME SAUVERIEZ LA VIE!!!
est ce que quelqu'un pourrait m"aider SVP..?
j'a tout essayé mais j'arrive vmt pas a trouver la solution pour faire ceci...
 

JCGL

XLDnaute Barbatruc
Re : aide creation petit programme...

Bonjour à tous,
Salut Ali,

Le code fonctionne parfaitement dans la feuille Pointage...
Il te faut valider les 1 pour qu'ils se reportent en feuille "Salaire" et "Facture"

Pour l'archivage remplace dans le ModArchivage :
Code:
 Sheets(Array("Pointage", "Facture", "Data", "Données")).Delete
par
Code:
 Sheets(Array("Facture", "Data", "Données")).Delete
A++
A+ à tous
 

jichiali

XLDnaute Nouveau
Re : aide creation petit programme...

Salut JC,
Bonjour à tous!!!

OK je vais essayer ce que tu m'as envoyé,
je te tieng au courant... :)

et concernant la validation des pointages "1"... Hasco m'avait fait un code pour que tout se valide automatique dès que je mets la date (B1)....
ca fonctionne...mais en partie uniquement...j'en ai une 40taine qui se valide sur salaire et facture..mais pas plus...

essai la version que je t'ai envoyé en mp... peut etre est ce a cause de l'espace que je mettais entre les lieux... :confused::confused::confused:

Je reviens sur le forum au plus vite pour vous dire ce qu'il en est....

A t'aleur... boulot m'appel!!!:(:(:(
 

JCGL

XLDnaute Barbatruc
Re : aide creation petit programme...

Re,

Ce sont surtout les vides en colonne A de la feuille "Pointage" qui posent problème....

Tu remarqueras ceci dans :
Code:
Dim DerLigne As Long
        DerLigne = Range("A" & Rows.Count).End(xlUp).Row

Les 1 sont bien en colonne F mais "invisible" grâce à un MeFC...

A++
 

jichiali

XLDnaute Nouveau
Re : aide creation petit programme...

Re,

Ce sont surtout les vides en colonne A de la feuille "Pointage" qui posent problème....

Tu remarqueras ceci dans :
Code:
Dim DerLigne As Long
        DerLigne = Range("A" & Rows.Count).End(xlUp).Row

Les 1 sont bien en colonne F mais "invisible" grâce à un MeFC...

A++

J'ai essayé en ne mettant aucun espace...effectivement ca fonctionne parfaitement!!! :D:D:D MERCI LE GENIE!!!!

MERCI JC HASCO ET TOUS!!!!

Je vous tiens au courant concernant l'autre code...celui de l'archivage...

A d'taleur!!! :p:p:p
 

jichiali

XLDnaute Nouveau
Re : aide creation petit programme...

Bonjour JC!
Bonjour Hasco!
Bonjour à tous!!

Désolé de cette nouvelles absence si longue... quoique...je suis sure que ca a du faire plaisir a quelques personnes... ( :D)
Alors concernant le petit bébé...
hum...
j'ai eu le temps de l'essayer ces deux derniers jours...et franchement..RIEN A DIRE!!!
HASCO et JC!!! vous etes des pros!!! je fais mes pointages très rapidement maintenant...plus que les num d'identifiant à entrer, ensuite je valide avec la date, et grace au code de Hasco, tout se répercute automatiquement sur salaire et facture!!! GENIAAAAALLLL!!! :D :D :D :D

je vous envoi des demain le fichier excel vierge afin de l'avoir sur le net..

Hasco...une derniere petite chose a te demander stp...
concernant l'archivage...
j'arrive a archiver...mais ya des moment j'ai une partie du code qui fait planter l'opération...
J'ai essayer de comprendre comment se passait toute cette programmation..et j'ai compris quelques truc...
j'ai donc essayé de changer quelques truc...genre l'archivage qui se fait sous le nom "Archivage_yyyy_mm_dd" au lieu de "Gestion_Ali_yyyy_mm"...
a un moment ca a marché..mais plus mainan...??? comprend pas...
Donc je voulais savoir si tu pouvais m'aider a faire ca par la même occasion...

SINON A PART CA... JE CROIS KON Y EST ENFIN ARRIVE!!!! GRACE AUX GENIES HASCO ET JC!!!

TRES SINCERES REMERCIEMENT A TOUS LES DEUX ET A TOUS!!!
A TRES VITE!!!!


je t'envoi le code:

Sub Archivage()
Application.ScreenUpdating = False
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Gestion_Ali_" & Format(Range("B1").Value, "yyyy_mm_dd") & ".xls"
Workbooks.Open Filename:=ThisWorkbook.Path & "\Gestion_Ali.xls"
ActiveWorkbook.Save
Windows("Gestion_Ali" & Format(Range("B1").Value, "yyyy_mm_dd") & ".xls").Activate
With Sheets("Salaire").Range("A1:AZ500")
.Copy
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
Application.DisplayAlerts = False
End With
With Sheets("Pointage").Range("A1:AZ500")
.Copy
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
Application.DisplayAlerts = False
Sheets(Array("Facture", "Data", "Données")).Delete
Range("A1").Select
Application.DisplayAlerts = True
End With
ActiveWorkbook.Save
ActiveWindow.Close

Application.ScreenUpdating = True
Workbooks.Open Filename:=ThisWorkbook.Path & "\Gestion_Ali.xls"
Sheets("Salaire").Range("J6:AN459").ClearContents
Range("B1").Select
End Sub

Sub Nettoyage()
Sheets("Salaire").Range("J6:AN459").ClearContents
End Sub
 
G

Guest

Guest
Re : aide creation petit programme...

Bonsoir Ali:),
Bonsoir JC:) ( je ne sais pas si t'es toujours là)

Ali,

Cette procédure d'archivage n'est pas la dernière version sur laquelle nous nous étions mis d'accord.

Voici la dernière version qui fonctionne:

Code:
Sub ArchivageFeuilleSalaire()
    Dim Wkb As Workbook
    Dim LaDate As String
    
    On Error GoTo FinArchivage
    Application.ScreenUpdating = False
    
    'Création du nouveau classeur
    Set Wkb = Workbooks.Add
    
    ' Avec ce classeur
    With ThisWorkbook
        LaDate = Format(.Sheets("Pointage").Range("B1").Value, "yyyy_mm")
        .Sheets("Salaire").UsedRange.Copy
    End With
    
    'Avec le nouveau classeur
    With Wkb
        With .Sheets(1) ' avec sa feuille 1
            With .Range("A1")
                .PasteSpecial Paste:=xlPasteValues
                .PasteSpecial Paste:=xlPasteFormats
            End With
            .Name = "Salaire"
            .Range("A3:AQ3").EntireColumn.AutoFit
        End With
        .SaveAs Filename:=ThisWorkbook.Path & "\Gestion_Ali_" & LaDate & ".xls"
        .Close
    End With
    
    'Mettre les valeurs de la feuille 'Salaire' à blanc
    Sheets("Salaire").Range("J6:AN459").ClearContents
    
FinArchivage:
    Application.ScreenUpdating = True
    Application.CutCopyMode = False
End Sub

cordialement Ali
;)JC
 

JCGL

XLDnaute Barbatruc
Re : aide creation petit programme...

Re,
Salut Hasco :),
Salut Ali,

Tout comme mon ami Hasco nous étions d'accord pour prendre la dernière version, qu'elle soit déposée ou en MP....

Ali : Charge à toi de déposer un fichier anonymisé et zippé quand tu penseras que le fil est résolu (ARF ARF Hasco, je pense que ce n'est pas fini... C'est pour rire Ali :))

PS : Hasco, je reste connecté : j'ai un souci avec un membre "important"... Enfin un souci pour l'image d'XLD, la mienne peut m'en chaut)

A+++ mes amis Hasco et Ali
A+ à tous
 
G

Guest

Guest
Re : aide creation petit programme...

Re Ali,
re jc,

Après avoir examiné ta procédure d'archivage (celle de ton dernier message) je me suis apperçu que ton problème vient de :

Code:
Format(Range("B1").Value, "yyyy_mm_dd")

qu' il faut remplacer par

Code:
Format([COLOR=red]Sheets("Pointage").[/COLOR]Range("B1").Value, "yyyy_mm_dd")

Range("B1").Value, tout seul renvoie la valeur de B1 de la feuille active.
donc si la macro était appelée alors que la feuille 'Pointage' n'était pas la feuille active cela ne pouvait fonctionner correctement.

D'une façon général, lorsque Excel t'envoie un message d'erreur, avec la proposition de Débogage, accepte le débogage et dans l'editeur de macro affiche la 'fenêtre d'exécution' (CTRL+G) pour tester les variables ou la fenêtre 'Variables Locales'. Au moins pour localiser correctement l'erreur.

A++
A++
A++ tout le monde
 

Statistiques des forums

Discussions
311 720
Messages
2 081 898
Membres
101 834
dernier inscrit
Jeremy06510