Lier deux classeurs avec intégrations de donnée si date commune trouvée.

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 !

funcky222

XLDnaute Junior
Bonjour à toutes et à tous,

je reviens vers vous concernant une question de mes collègues sur leurs fichiers excels !!

La problématique :

Je gère une équipe d'une 40aine de personnes.

- Dans un fichier excel intitulé "Congés", les absences des agents sont enregistrés via un onglet par mois.
- Dans un fichier "TRA", est enregistré le planning des agents avec leur activité de la semaine.

Le but est en ouvrant le fichier TRA vierge, d'un clic de bouton (ou pas) j'importe les absences des agents via le marquage d'un"X" dans la case correspondante du fichier "Congés".

Mais tout n'est pas aussi simple 😛 :

Le fichier "TRA" n'a pas de date précise, puisqu'il s'agit du fichier de la semaine suivante, donc je mets simplement le n° de la semaine en haut. De plus, les congés ne doivent apparaître que dans la 1ère catégorie (via un "X" dans la case), colonnes C à G intitulé TEL.

Le fichier "Congés" lui fonctionne mois par mois, avec un onglet = un mois.


J'ai bien trouvé une formule qui me permet de savoir si la case dans l'onglet octobre du fichier congés est occupé alors mettre X dans le fichier TRA. Mais je ne sais pas étendre cette formule à l'ensemble du classeur, d'où l'idée de passer plutôt en VBA.

Pour la formule j'utilise "EQUIV combiné à un SI".

Les fichiers sont trop gros pour le forum, du coup je les postes via Ci-joint.fr !

Merci d'avance à ceux qui m'aideront à me creuser les méninges... 🙂

  • Fichier Congés : Cijoint.fr - Service gratuit de dépôt de fichiers
  • Fichier TRA : Cijoint.fr - Service gratuit de dépôt de fichiers
 
Re : Lier deux classeurs avec intégrations de donnée si date commune trouvée.

Bonjour à tous,

je pense que ma demande est un peu extravangante, elle n'attire pas les foules ! 😛 Pô grave, je continue de chercher ! 😉

Voici ce que j'ai tenté :


Code:
Sub import_conges(ByVal Target As Range)


'On Error GoTo 1:

'Range B6:B20 correspond à un petit pavé de test, la zone sera plus grande au final

Set Target = Application.Intersect(Target, Range("B6:B20"))



If Target Is Nothing Then Exit Sub

Dim plage As Range, ref As Range

Set plage = Sheets(Array("janvier", "fevrier", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "decembre")).Select
        Range("B8:X8").Select

For Each Target In Target

  Set ref = plage.Find(Target, LookIn:=xlValues, LookAt:=xlWhole)

  If ref Is Nothing Then

  Else
    

ref.Offset(, 1).Resize(, 13).Value = "X"
    
  End If
Next

'1:
'MsgBox Err.Description

End Sub

Si une bonne âme passe par là et a du temps à perdre, je suis preneur !

A très bientôt... 😱
 
Dernière édition:
- 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
10
Affichages
644
Retour