Envoyer des données d'une feuille excel à une autre selon les conditions

  • Auteur de la discussion YeezyJunior
  • Date de début

YeezyJunior

Nouveau membre
Bonjour à tous !

Voici mon problème :

J'ai créé un tableau de pointage sur un classeur excel pour calculer les heures des employés. Mon supérieur m'a demandé de créer une nouvelle feuille dans ce même classeur où il y aurait un tableau qui ne contiendrait qu'une seule ligne. Celui ci servirait à entrer les informations et les envoyer directement dans le tableau de pointage après validation (par un bouton de validation). Les informations allant dans une case précise selon le mois et l'année de pointage, la date et le nom de l'employé.

Cela fait plus d'une semaine que je fais des recherches afin d'y parvenir, sans succès.

Je vous remercie d'avance pour l'aide que vous pourrez me fournir !
 

zeb

Modérateur
Plop,

Un tableau d'une seule ligne, ça s'appelle une ligne, pas un tableau !
Tu dis que ce "tableau" sert à entrer des informations et à les envoyer :/
Autant entrer les informations dans le tableau directement, non ? (possible que je n'ai pas tout compris).
Envoyer ? Que veux-tu dire par "envoyer" ?
Le mois, l'année et la date ! Ça me paraît quelque peu redondant.

Soit plus clair dans ta demande.
Propose-nous un scénario simple mais concret.
 

YeezyJunior

Nouveau membre
Bonjour à tous !
Pardonnez moi pour le temps de réponse, j'ai eu quelques soucis avec internet.
Tout d'abord, ce que je veux dire par "tableau d'une ligne", c'est un tableau qui, hormis les titres, ne contient qu'une ligne. Ligne dans laquelle sont entrées les informations qui, une fois validées par le bouton "VALIDER", seront envoyées vers la case correspondante, selon les informations entrées. Par exemple, si je remplis le tableau (intitulé transfert d'informations) en mettant que l'employé 1 à travaillé sur le chantier 1 de 8h00 à 16h00, dont une pose de 00h30, le 01 Mai 2014, après avoir confirmé avec le bouton "VALIDER", les informations iront directement dans le tableau "POINTAGE MAI 2014", à la date du 01 et sous le nom de l'employé 1.
J'ai essayé d'insérer le document Excel dans cette réponse mais je n'y arrive pas.
 

zeb

Modérateur
Plop,

Ici, c'est un forum, pas un site de tchat. Alors les questions et les réponses prennent le temps nécessaire. Alors, non, nous n'avons rien à te pardonner. ;)

Non, tu n'attacheras pas un fichier plein de macros potentiellement dangereuses.
Je te protège, tu me protèges...

En fait de tableau, tu as un formulaire quoi.
Ça me semble plutôt simple ton truc.

[fixed] | A | B | C |
--+-------+-------+-------+
1 | date | nom | temps |
2 | 1 mai | Yeezy | 8h00 |
+-----------+
| Valider |
+-----------+[/fixed]

Sauf que je ne sais pas ce que tu appelles tableau POINTAGE MAI 2014.
Supposons qu'il s'agisse de l'onglet "POINTAGE MAI 2014".

Code:
' fonction générique à enregistrer dans un module
Function GetWSByName(name As String) As Worksheet
    Set GetWSByName = Nothing
    Dim ws As Worksheet
    For Each ws In Worksheets
        If ws.name = name Then
            Set GetWSByName = ws
            Exit For
        End If
    End If
End Function


' A mettre dans le code de la feuille qui contient le formulaire
Sub saisie()
    ' On récupère la date
    Dim d As Date
    d = CDate(Me.Range("A2").Value)
    
    ' On en déduit l'onglet
    Dim ws As Worksheet
    Set ws = GetWSByName(UCase(Format(d, "POINTAGE mmmm yyyy")))
    If ws Is Nothing Then
        MsgBox "La feuille n'exite pas. (Peut-être faudrait-il la créer ?)"
        Exit Sub
    End If
    
    ' On recherche la dernière ligne dans cet onglet
    Dim ln_der As Range
    Set ln_der = ws.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1).EntireRow
    
    ' On y écrit nos données
    ln_der.Cells(1).Value = Me.Cells(2, 1).Value
    ln_der.Cells(2).Value = Me.Cells(2, 2).Value
    ln_der.Cells(3).Value = Me.Cells(2, 3).Value
    
    ' On efface la saisie
    Me.Range("A2:C2").ClearContents
    
    ' On annonce à l'utilisateur que la saisie a été correctement enregistrée
    MsgBox "La saisie a été correctement enregistrée", vbInformation
End Sub
 

chonos

Helper
Salut Zeb,

je pense (sauf erreur de ma part) que par tableau de pointage il veus dir que
chaqu'une des personnes de l'Ets pointe chaque jour comme tu l'as fait si bien a ton formulaire et que l'ensemble de tous les pointages d'un mois 'n' représente sont tableau

la suite qu'il doit avoire après ce traitement c'est de faire un lien avec le payement des heures de personnels en incluent les retenues si c'est le cas, heure sup ...!

le lien si dessous et notament"Planning Effectif 2014" (devrai être asser proche de ce qu'il recherche )




 

YeezyJunior

Nouveau membre
Bonjour,

Si en disant "Non, tu n'attacheras pas un fichier plein de macros potentiellement dangereuses", tu parle de mon fichier Excel, je te rassure, je n'ai créée aucune macro dessus.

Mon tableau "TRANSFERT DE DONNEES" se présente ainsi :



| | A | B | C | D | E | F |
| 1 | POINTAGE [MOIS/ANNEE] |
| 2 | [NOM DE L'EMPLOYE] |
| 3 | DATE | CHANTIER | DEBUT | FIN | PAUSE | TOTAL HORAIRE |
| 4 | 01 | CHANTIER 1 | 8H00 | 16H00 | 00H30 | 7H30 |

+-------------+
| VALIDER |
+-------------+



Les informations entre crochets sont à sélectionner dans une liste déroulante (ex : POINTAGE MAI 2014, POINTAGE JUIN 2014, POINTAGE JUILLET 2014, etc.)



Il faudrait qu'en appuyant sur le bouton "VALIDER", les informations de la ligne 4 et des colonnes A à F aillent dans le tableau POINTAGE [MOIS/ANNEE] (il existe une feuille de pointage pour chaque mois de chaque année, d'où le [MOIS/ANNEE]) à un endroit précis selon les critères suivant : le mois et l'année de pointage, le nom du salarié et la date.

J'espère ne pas vous embrouiller avec mes explications.

En tous cas, merci à toi Zeb, de prendre de ton temps afin de m'aider et merci également à toutes les personnes qui pourront m'aider sur ce sujet.
 

YeezyJunior

Nouveau membre
Je travail dessus mais pour le moment rien ne bouge dans mes tableaux ...
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 065
Membres
1 586 286
Dernier membre
petitangebleu1977
Partager cette page
Haut