XL 2013 Transfert donnée sur feuille congé

  • Initiateur de la discussion Initiateur de la discussion candido57
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

candido57

XLDnaute Occasionnel
Bonjour,

Je voudrais éditer une feuille de congé en auto via un tableau Excel.
Le fichier à 12 onglets , de janvier à décembre pour poser des congés et une dernière feuille congé
pour éditer en auto le congé avec jour et nom de la personne
Par exemple en mai, j’ai Mme DURAND qui prend du 3 au 14 mai.
et Mme LEGLISE prend du 10 au 21 mai >> Mais éditer sans le jour férié > je pense que ma formule est correcte.
En gros je voudrais que lorsque je sélectionne les dates (les cellules) par exemple du 3 mai au 14 mai (D5 à O5), que l’on copie la première date D5 = 3 mai dans feuille congé en B5 et la dernière cellule selectionnée O5 et copier dans feuille congé en E15. Puis en même temps copier le nom en A5 dans feuille congé en D10.
Pouvez vous m’aider pour effectuer une macro pour éditer cette feuille suivant la personne concernée? Je ne sais pas comment faire

Merci d'avance
 

Pièces jointes

Bonjour Lolote83,
Si je sélectionne 5 cellules du mois d’octobre (en fin de mois) et ensuite je vais sur le mois de novembre, j'appuis sur ctrl et je sélectionne la suite du mois de novembre (début du mois), puis un click droit pour transférer les données sur la feuille congé. Je vois ça comme ça, je ne c’est pas si c’est possible.
Sinon ce n'est pas grave, je ferais des feuilles de congés de mois en mois, c’est déjà très bien comme ça.
Comment puis je voir ta macro pour que j'essaie de comprendre le cheminement ?
En tout cas merci beaucoup
Bonne journée
 
Re bonjour CANDIDO57,
Pour accéder à la macro, faire ALT+F11.
Tu vas ensuite sur le module Mod_Repac.
Code:
Sub RecupCongé(xPlage)
    xLig = Range(xPlage).Row
    xDeb = Split(xPlage, ":")(0): xColDeb = Split(xDeb, "$")(1)
    xFin = Split(xPlage, ":")(1): xColFin = Split(xFin, "$")(1)
    xNom = Range("A" & xLig)
    xDatDeb = Range(xColDeb & "4")
    xDatFin = Range(xColFin & "4")
    With Sheets("Feuille congé")
        .[D10] = xNom
        .[B15] = xDatDeb
        .[E15] = xDatFin
    End With
    MsgBox "Mise à jour effectuée", vbInformation, "Feuille congé"
End Sub

Cette macro est appelée par chaque onglet
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    If Selection.Count < 2 Then
        MsgBox "Une selection doit contenir au moins deux cellules", vbCritical, "ERREUR SELECTION"
    Else
        Call RecupCongé(Selection.Address)
    End If
End Sub
@+ Lolote83
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
121
Réponses
11
Affichages
997
Retour