Extraction ou transfert de données
Bonjour,
le problème que je cherche à résoudre se présente comme suit:
1) dans le classeur d'une école, il y a 1 feuille Inscriptions et 4 feuilles classes (GS, CI, CP et CE2)
2) pour chaque inscription d'élève, les données de l'élève sont saisies sur la feuille INSCRIPTION
3) y a t il un moyen par lequel les données saisies dans la feuille INSCRPTION puissent être automatiquement disponibles/visibles dans la feuille classe de l'élève concerné ?
Ci-joint le ''classeur-test''.
Merci d'avance
Bonjour et bienvenue sur le forum
Un essai à tester. Te convient-il ?
Option Explicit
Dim tablo, tablof(), dico As Object, f As Worksheet
Dim i&, j&, k&
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If ActiveSheet.Name = "INSCRIPTIONS" Then Exit Sub
Set dico = CreateObject("Scripting.Dictionary")
tablo = Sheets("INSCRIPTIONS").Range("A6").CurrentRegion
ReDim tablof(1 To UBound(tablo, 1), 1 To UBound(tablo, 2))
For i = 1 To UBound(tablo, 1)
dico(tablo(i, 7)) = ""
Next i
k = 0
If dico.exists(Sh.Name) Then
Sh.Range("G16").CurrentRegion.Offset(1, 0).ClearContents
For i = 1 To UBound(tablo, 1)
If tablo(i, 7) = Sh.Name Then
For j = 1 To UBound(tablo, 2)
tablof(k + 1, j) = tablo(i, j)
Next j
k = k + 1
End If
Next i
Sh.Range("G16").CurrentRegion.Offset(1, 0).ClearContents
Sh.Range("G17").Resize(k, UBound(tablo, 2)) = tablof
End If
End Sub
Bye !
Merci Gmb,
Je suis extrêmement impressionné par la rapidité et le pertinence de ta solution.
Ce qui donne des idées. Puis je te contacter directement ?
Voici le mien : mel.beugre@yahoo.fr
Merci d'avance.
Puis je te contacter directement ?
Non , désolé. Je tiens à rester dans l'anonymat qu'offre ce forum.
Bye !
Ok, je comprends. Merci encore pour la qualité de ta contribution à ce forum !
Bonjour Gmb,
J'ai eu beaucoup de plaisir à recevoir votre solution qui répondait exactement au problème tél qu'il était posé.
L'étape 2, à mon niveau, consistait à adapter ladite solution (Macro, code VBA) au fichier réèl qui comprend 14 classes et environ 270 inscriptions/élèves.
Je reviens donc avec 2 interrogations:
1) Est ce possible/faisable de placer les données dans les tableaux des feuilles-classe (voir les emplacements en rouge dans les feuilles-classe du fichier joint) ?
2) Si oui, quelle macro serait applicable compte tenu du fichier réel ?
Ci-joint le fichier incluant la macro précédente.
Merci d'avance.
Bonjour
Nouvelle version
Option Explicit
Dim tablo, tablof(), dico As Object, f As Worksheet
Dim i&, j&, k&, n&
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If ActiveSheet.Name = "INSCRIPTIONS" Then Exit Sub
Set dico = CreateObject("Scripting.Dictionary")
tablo = Sheets("INSCRIPTIONS").Range("A6").CurrentRegion
ReDim tablof(1 To UBound(tablo, 1), 1 To UBound(tablo, 2))
For i = 1 To UBound(tablo, 1)
dico(tablo(i, 7)) = ""
Next i
k = 0
If dico.exists(Sh.Name) Then
Sh.Range("G16").CurrentRegion.Offset(1, 0).ClearContents
For i = 1 To UBound(tablo, 1)
If tablo(i, 7) = Sh.Name Then
For j = 1 To UBound(tablo, 2)
tablof(k + 1, j) = tablo(i, j)
Next j
k = k + 1
End If
Next i
Sh.Range("G16").CurrentRegion.Offset(1, 0).ClearContents
Sh.Range("G17").Resize(k, UBound(tablo, 2)) = tablof
Sh.Range("A16,B19:B21").ClearContents
Sh.Rows("28:" & Sh.Range("A" & Rows.Count).End(xlUp).Row).Clear
For n = 1 To k
Sh.Range("A13:E25").Copy Sh.Range("A" & 15 * n - 2)
'sh.range("A" & 15*n +4 & ":" & sh.range("A" & 15*n +6)
Sh.Range("A" & 15 * n + 1) = tablof(n, 6)
Sh.Range("B" & 15 * n + 4) = tablof(n, 8)
Sh.Range("B" & 15 * n + 5) = tablof(n, 9)
Sh.Range("B" & 15 * n + 6) = tablof(n, 10)
Next n
End If
End SubBye
Bonjour GMB,
bien reçu ta suite, version2, merci !!!
Il me reste maintenant à l'adapter/la tester sur le fichier réèl (complet).
Je te reviens au plus vite pour la conclusion de cette dernière étape.
Cordialement
Bonsoir GMB,
Je suis vraiment désolé ! Je n'ai pas pu adapter/modifier le code version2 au fichier complet. J'ai encore du chemin à faire pour arriver à ce niveau.
En attendant, peux tu l'adapter directement ?
Ci-joint la version vierge/neutre dudit fichier (fichier-reel-vierge-test-final2).Tout en précisant que toutes les informations et autres mentions dans ce fichier sont totalement fictives et ne contiennent rien de confidentiel. Toutes les feuilles confidentielles et non indispensables ayant été supprimées.
-les données élèves (Feuille saisie Inscriptions) que je souhaite transférer automatiquement dans les classes respectives sont en rouge et devraient être transférés automatiquement dans les feuilles classe comme suit: le Nom en 1 cellule de la colonne A, les éléments Solde antérieur-Droit-Uniforme-Fournitures-Scolarité-Transport-Cantine en 7 cellules de la colonne B, le montant Avance versée ou (Payé) en 1 cellule de la colonne C.
-chacune des 13 classes prévoit une moyenne de 20 élèves et donc 20 fiches factures par feuille.
Merci infiniment de ton aide !