Bonjour:
Je voudrais copier le tableau de la feuille "personnel", dans la feuille "pointage" avec bouton CommandButton10, en tenant compte des en-têtes et du code de l'expert EricDgn
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Set LastRow = Sheets("pointage").Range("A65536").End(xlUp) If LastRow = "" Then Set LastRow = LastRow.Offset(-1, 0) '--- si vide, remonter encore d'une ligne
comme expliqué ci-dessous par l'expert EricDgn
Effectivement, il y a un petit piège avec les tableaux structurés vides: le .End(xlUp) aboutit non pas sur la ligne de titre mais sur la ligne vide qui se trouve juste sous cette ligne de titres. Une façon de vérifier cela est de voir si la cellule sur laquelle on aboutit est vide ou non (en prenant une colonne où l'on sait qu'il doit toujours y avoir une valeur inscrite). Si elle est vide c'est qu'on est juste sous la ligne de titres, sur une ligne vide. Si elle n'est pas vide, c'est qu'on est sur la dernière ligne du tableau qui contient au moins 1 ligne avec des données.
Dans votre cas, il faut compléter après les instructions Set LastRow:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Copier le tableau Feuille "personnel" :
colonne A [Id]
colonne B [Code personnel]
colonne C [Nom]
colonne D [Prénom]
colonne E [Fonction]
colonne F [Salaire négocié]
-----------------------------------------
Coller dans la Feuille "pointage" :
colonne A [Id]
colonne B [Code personnel]
colonne C [le contenu de ComboBox_annee dans userform1]
colonne D [le contenu de ComboBox_mois dans userform1]
colonne E [Nom]
colonne F [Prénom]
colonne G [Fonction]
colonne H [Salaire négocié]
colonne K [le texte "Non soldé"]
merci et bonne continuation.
Partager