Suivi de stage

Litiou

XLDnaute Nouveau
Bonjour,

J’aimerai créer un tableau de suivi des stages de mes personnels.
Je n’ai pas de problème pour créer de tableau, mais j’aurai voulu avoir vos solution pour avoir une belle présentation.

Je voudrai un tableau ou pour entrer les informations il serait plutôt intuitif.
Il peut y avoir plusieurs stage pour une même personne.
Et je dois pouvoir savoir pour un stage qui le possède et qui ne le possède pas.
Je voudrai pouvoir afficher également une liste de nom et voir leur stage.
Un peu comme un tableau croisé dynamique ou les valeurs sont des données texte et non du calcul.

J’espere que vous m’aurez compris et que vous pourrez m’aider.

Merci beaucoup
 

Litiou

XLDnaute Nouveau
Re

@Litiou
Pour qu'un classeur conserve ses macros, il faut l'enregistrer en *.xlsm
Je disais simplement cela pour qu'on puisse voir la macro que tu utilises

Je vous envoie ma base de données sans les infos personnelles

Un seul classeur, c'est juste une suggestion pour plus de commodités et de fluidité.
(un onglet base de données puis ensuite des TCD pour manipuler les données facilement)
(rappelle-moi qui a écrit:"mais j’aurai voulu avoir vos solution pour avoir une belle présentation.")

Oui, tout es regroupe dans un seul fichier.
Je croyais que les TCD ne permattait d'obtenir que des valeurs (donc calcul) et non du texte?


PS:
"Parce que je les ai fait vite fait."
On n'est pas aux pièces, tu peux prendre ton temps pour créer des fichiers exemple (ou un seul) le(s) plus explicite(s) possible.

Avec ma base vous allez comprendre pourquoi je voudrai trouver une solution pour exploiter, consulter, extraire les données plus intuitive.
 

Pièces jointes

  • BASE DE DONNEES.xlsm
    118.9 KB · Affichages: 37

Litiou

XLDnaute Nouveau
Bonjour à tous

Bonsoir,

Et la version Excel est citée où ?
La version est 2007

C'est prévu dans le profil et dans l'en-tête des fils et plus les versions passent plus la différence entre les solutions possibles est importante.


Alors donnez votre version, zut !

Bon déjà 1ere erreur on a des tableau structurés remplis de vent : pas de ligne vide dans les tableaux structurés sinon on perd 95% de leurs possibilités…
il est possible que le tableau final ne soit pas rempli au complet. Il y aura forcement des cellules vides.


Pas de colonnes de même nature (stage1, stage2 etc) : on ne peut pas exploiter les tableaux à double entrée par TCD...
Non, la nature n'est pas celle citée, c'était en faite un exemple. A la place de stage 1, stage 2... lire pour exemple brevet, BAC, BTS…

Ce type de tableau doit être un résultat obtenu par TCD ou par PowerQuery
Je croyais que un TCD ne permettait uniquement de faire ressortir des valeurs, genre la quantité de BAC dans la base? L'info est intéressante mais moi c'est plus qui a le bac qui m'intéresse, qui ne l'as pas, quel diplôme a ce monsieur?
Je ne connais pas PowerQuery?
 

Staple1600

XLDnaute Barbatruc
Re

Pour info
Ta macro peut être grandement simplifiée
(j'y reviendrai plus tard
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Col As Integer
Col = Target.Column
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 5 Or Col = 6 Or Col = 8 Or Col = 9 Or Col = 10 Or Col = 15 Or Col = 16 Or Col = 17 Then
Me.Range("A:C,E:F,H:J,O:Q").Copy Destination:=Sheets("POINT CONTRAT").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 48 Or Col = 49 Or Col = 50 Or Col = 51 Or Col = 52 Or Col = 53 Or Col = 54 Or Col = 55 Or Col = 56 Or Col = 57 Or Col = 58 Or Col = 59 Or Col = 60 Or Col = 61 Or Col = 62 Or Col = 63 Or Col = 64 Then
Me.Range("A:C,AV:BL").Copy Destination:=Sheets("STAGES").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 65 Or Col = 66 Or Col = 67 Or Col = 68 Or Col = 69 Or Col = 70 Or Col = 71 Or Col = 72 Or Col = 73 Or Col = 74 Or Col = 75 Or Col = 76 Or Col = 77 Or Col = 78 Or Col = 79 Or Col = 80 Or Col = 81 Or Col = 82 Or Col = 83 Or Col = 84 Or Col = 85 Or Col = 86 Then
Me.Range("A:C,BM:CH").Copy Destination:=Sheets("DIVERS STAGE").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 101 Or Col = 102 Or Col = 103 Or Col = 104 Or Col = 105 Or Col = 106 Or Col = 107 Or Col = 108 Or Col = 109 Or Col = 110 Or Col = 111 Then
Me.Range("A:C,CW:DG").Copy Destination:=Sheets("PERMIS").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 112 Or Col = 113 Or Col = 114 Or Col = 115 Or Col = 116 Or Col = 117 Or Col = 118 Or Col = 119 Or Col = 120 Or Col = 121 Or Col = 122 Or Col = 123 Or Col = 124 Or Col = 125 Or Col = 126 Then
Me.Range("A:C,DH:DV").Copy Destination:=Sheets("QUALIF").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 87 Or Col = 88 Or Col = 89 Or Col = 90 Or Col = 91 Or Col = 92 Or Col = 93 Or Col = 94 Or Col = 95 Or Col = 96 Or Col = 97 Or Col = 98 Or Col = 99 Or Col = 100 Then
Me.Range("A:C,CI:CV").Copy Destination:=Sheets("SC1-TIOR-LANGUE").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 12 Or Col = 13 Then
Me.Range("A:C,L:M").Copy Destination:=Sheets("ANNIVERSAIRE").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 26 Or Col = 27 Or Col = 28 Or Col = 29 Or Col = 30 Or Col = 31 Or Col = 32 Or Col = 33 Or Col = 34 Or Col = 35 Or Col = 36 Or Col = 37 Or Col = 38 Then
Me.Range("A:C,Z:AL").Copy Destination:=Sheets("DOSSIER OPEX").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Then
Me.Range("A:C").Copy Destination:=Sheets("LISTE SECTION").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 39 Or Col = 40 Or Col = 41 Or Col = 42 Or Col = 43 Or Col = 44 Or Col = 45 Or Col = 46 Then
Me.Range("A:C,AM:AT").Copy Destination:=Sheets("PAP").Range("A1")
End If
End Sub
Ton classeur est "vide" !
Tu aurais pu prendre le temps de mettre des données fictives
(comme NOM1 PRENOM1 etc.. et recopier vers le bas)
 

Litiou

XLDnaute Nouveau
Re

Pour info
Ta macro peut être grandement simplifiée
(j'y reviendrai plus tard
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Col As Integer
Col = Target.Column
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 5 Or Col = 6 Or Col = 8 Or Col = 9 Or Col = 10 Or Col = 15 Or Col = 16 Or Col = 17 Then
Me.Range("A:C,E:F,H:J,O:Q").Copy Destination:=Sheets("POINT CONTRAT").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 48 Or Col = 49 Or Col = 50 Or Col = 51 Or Col = 52 Or Col = 53 Or Col = 54 Or Col = 55 Or Col = 56 Or Col = 57 Or Col = 58 Or Col = 59 Or Col = 60 Or Col = 61 Or Col = 62 Or Col = 63 Or Col = 64 Then
Me.Range("A:C,AV:BL").Copy Destination:=Sheets("STAGES").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 65 Or Col = 66 Or Col = 67 Or Col = 68 Or Col = 69 Or Col = 70 Or Col = 71 Or Col = 72 Or Col = 73 Or Col = 74 Or Col = 75 Or Col = 76 Or Col = 77 Or Col = 78 Or Col = 79 Or Col = 80 Or Col = 81 Or Col = 82 Or Col = 83 Or Col = 84 Or Col = 85 Or Col = 86 Then
Me.Range("A:C,BM:CH").Copy Destination:=Sheets("DIVERS STAGE").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 101 Or Col = 102 Or Col = 103 Or Col = 104 Or Col = 105 Or Col = 106 Or Col = 107 Or Col = 108 Or Col = 109 Or Col = 110 Or Col = 111 Then
Me.Range("A:C,CW:DG").Copy Destination:=Sheets("PERMIS").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 112 Or Col = 113 Or Col = 114 Or Col = 115 Or Col = 116 Or Col = 117 Or Col = 118 Or Col = 119 Or Col = 120 Or Col = 121 Or Col = 122 Or Col = 123 Or Col = 124 Or Col = 125 Or Col = 126 Then
Me.Range("A:C,DH:DV").Copy Destination:=Sheets("QUALIF").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 87 Or Col = 88 Or Col = 89 Or Col = 90 Or Col = 91 Or Col = 92 Or Col = 93 Or Col = 94 Or Col = 95 Or Col = 96 Or Col = 97 Or Col = 98 Or Col = 99 Or Col = 100 Then
Me.Range("A:C,CI:CV").Copy Destination:=Sheets("SC1-TIOR-LANGUE").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 12 Or Col = 13 Then
Me.Range("A:C,L:M").Copy Destination:=Sheets("ANNIVERSAIRE").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 26 Or Col = 27 Or Col = 28 Or Col = 29 Or Col = 30 Or Col = 31 Or Col = 32 Or Col = 33 Or Col = 34 Or Col = 35 Or Col = 36 Or Col = 37 Or Col = 38 Then
Me.Range("A:C,Z:AL").Copy Destination:=Sheets("DOSSIER OPEX").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Then
Me.Range("A:C").Copy Destination:=Sheets("LISTE SECTION").Range("A1")
End If
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 39 Or Col = 40 Or Col = 41 Or Col = 42 Or Col = 43 Or Col = 44 Or Col = 45 Or Col = 46 Then
Me.Range("A:C,AM:AT").Copy Destination:=Sheets("PAP").Range("A1")
End If
End Sub
Ton classeur est "vide" !
Tu aurais pu prendre le temps de mettre des données fictives
(comme NOM1 PRENOM1 etc.. et recopier vers le bas)


A merde je croyais que c'était pour uniquement voir la macro.

Simplifier la macro, ce n'est pas qui l'est écrite et je ne pourrai pas la comprendre.
 

Staple1600

XLDnaute Barbatruc
Re

Si, si tu comprendras
Il suffit d'utiliser les outils idoines
(le web, la touche F1 quand tu es dans VBE)
Donc voici une version possible (en théorie) de ta macro
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Col As Long
Col = Target.Column
Application.ScreenUpdating = False
Select Case Col
Case 1 To 3
Range("A:C,E:F,H:J,O:Q").Copy Sheets("POINT CONTRAT").Cells(1)
Range("A:C,AV:BL").Copy Sheets("STAGES").Cells(1)
Range("A:C,CW:DG").Copy Sheets("PERMIS").Cells(1)
Range("A:C,CI:CV").Copy Sheets("SC1-TIOR-LANGUE").Cells(1)
Range("A:C,L:M").Copy Sheets("ANNIVERSAIRE").Cells(1)
Range("A:C,Z:AL").Copy Sheets("DOSSIER OPEX").Cells(1)
Range("A:C").Copy Sheets("LISTE SECTION").Cells(1)
Range("A:C,AM:AT").Copy Sheets("PAP").Cells(1)
Case 12, 13
Range("A:C,L:M").Copy Sheets("ANNIVERSAIRE").Cells(1)
Case 5, 6, 8 To 10, 15 To 17
Range("A:C,E:F,H:J,O:Q").Copy Sheets("POINT CONTRAT").Cells(1)
Case 26 To 38
Range("A:C,Z:AL").Copy Sheets("DOSSIER OPEX").Cells(1)
Case 39 To 46
Range("A:C,AM:AT").Copy Sheets("PAP").Cells(1)
Case 49 To 64
Range("A:C,AV:BL").Copy Sheets("STAGES").Cells(2)
Case 87 To 100
Range("A:C,CI:CV").Copy Sheets("SC1-TIOR-LANGUE").Cells(1)
Case 101 To 111
Range("A:C,CW:DG").Copy Sheets("PERMIS").Cells(1)
End Select
End Sub

Si tu ton fichier contenait des données fictives, je pourrais faire des tests de TCD et te montrer ce que cela peut donner.
Vu l'heure, je repasserai demain pour voir la suite du fil.

N'hésite pas à poster un fichier exemple plus fourni
(Excel permets facilement de créer des données fictives en recopiant vers les bas ou vers la droite des données du type:
NOM1 PRENOM1 ADRESSE1 CP1 VILLE1 TEL1 DATE DIPLOME1 etc...)
 

Litiou

XLDnaute Nouveau
Re

Si, si tu comprendras
Il suffit d'utiliser les outils idoines
(le web, la touche F1 quand tu es dans VBE)
Donc voici une version possible (en théorie) de ta macro
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Col As Long
Col = Target.Column
Application.ScreenUpdating = False
Select Case Col
Case 1 To 3
Range("A:C,E:F,H:J,O:Q").Copy Sheets("POINT CONTRAT").Cells(1)
Range("A:C,AV:BL").Copy Sheets("STAGES").Cells(1)
Range("A:C,CW:DG").Copy Sheets("PERMIS").Cells(1)
Range("A:C,CI:CV").Copy Sheets("SC1-TIOR-LANGUE").Cells(1)
Range("A:C,L:M").Copy Sheets("ANNIVERSAIRE").Cells(1)
Range("A:C,Z:AL").Copy Sheets("DOSSIER OPEX").Cells(1)
Range("A:C").Copy Sheets("LISTE SECTION").Cells(1)
Range("A:C,AM:AT").Copy Sheets("PAP").Cells(1)
Case 12, 13
Range("A:C,L:M").Copy Sheets("ANNIVERSAIRE").Cells(1)
Case 5, 6, 8 To 10, 15 To 17
Range("A:C,E:F,H:J,O:Q").Copy Sheets("POINT CONTRAT").Cells(1)
Case 26 To 38
Range("A:C,Z:AL").Copy Sheets("DOSSIER OPEX").Cells(1)
Case 39 To 46
Range("A:C,AM:AT").Copy Sheets("PAP").Cells(1)
Case 49 To 64
Range("A:C,AV:BL").Copy Sheets("STAGES").Cells(2)
Case 87 To 100
Range("A:C,CI:CV").Copy Sheets("SC1-TIOR-LANGUE").Cells(1)
Case 101 To 111
Range("A:C,CW:DG").Copy Sheets("PERMIS").Cells(1)
End Select
End Sub

Si tu ton fichier contenait des données fictives, je pourrais faire des tests de TCD et te montrer ce que cela peut donner.
Vu l'heure, je repasserai demain pour voir la suite du fil.

N'hésite pas à poster un fichier exemple plus fourni
(Excel permets facilement de créer des données fictives en recopiant vers les bas ou vers la droite des données du type:
NOM1 PRENOM1 ADRESSE1 CP1 VILLE1 TEL1 DATE DIPLOME1 etc...)


Ok merci.
Je te rempli la base de données fictive pour demain.
Encore merci à demain.
 

chris

XLDnaute Barbatruc
RE
Désolé…
Faudrait-il que je trouve une autre version?
Sachant que je bosse également sur des ordi de bureau qui on une version plus récente que la mienne. je me renseigne la dessus.

PowerQuery peut mettre du texte à la croisé ligne colonne (contrairement aux TCD qui n'y mettent que des calculs statistiques), mais est en add on à partir de 2010 (à télécharger et installer donc) et intégré à partir de 2016

Cela remplace pas mal de VBA pour le traitement de données...
 

Discussions similaires

Réponses
5
Affichages
146
Réponses
15
Affichages
774

Statistiques des forums

Discussions
312 499
Messages
2 089 002
Membres
104 002
dernier inscrit
SkrauzTTV