Récupération de données avec conditions sur autre fichier

deux tableaux de même taille, avec une ligne vide en bas pour celui contenant la liste la plus longue ?

(voir pdf - les tableaux sont de même taille, mais la ligne du bas est sous le dernier nom pour le tableau à la liste la plus courte.)

et possible d'enlever la ligne noire sous le titre ? pas moyen de la trouver via le format de cellule !

6appel-midi-v1.pdf (368.73 Ko)

voici

je ne suis pas sûr qu'avec une ligne vierge cela s'imprime !

6appel-midi-v1.xlsm (30.51 Ko)

rooh, +4 en mfc !! ;D

chapeau, c'est la classe.

compétences et disponibilité, un grand merci.

les nom d'onglet sont libres de forme ? ou ils doivent être les mêmes que ceux des classes du tableau cantine ? les classe vont certainement changer (CE1-CE2, CE2-CM1, ...)

et pour la ligne vierge en fin de tableau, un renvoi de la liste de nom sans mise-en-forme des cellules (les traits verticaux de tableaux) ? associé à une mise-en-forme directe sur la page, c'est barbare ?

les nom d'onglet sont libres de forme ? ou ils doivent être les mêmes que ceux des classes du tableau cantine ? les classe vont certainement changer (CE1-CE2, CE2-CM1, ...)

ils doivent être les mêmes que ceux des classes du tableau cantine

et pour la ligne vierge en fin de tableau, un renvoi de la liste de nom sans mise-en-forme des cellules (les traits verticaux de tableaux) ? associé à une mise-en-forme directe sur la page, c'est barbare ?

voici une solution

9appel-midi-v1.xlsm (34.10 Ko)

et voici LA solution.

me reste plus qu'à relire pour comprendre tout ça.

tous mes remerciements, sincérement, steelson. et plus largement au forum.

bonne continuation.

ps : je sais qui venir embêter avec mon prochain problème...

pas de soucis, je serai là

Nouvelle version sur une semaine ...

beau travail... bravo, et encore merci pour ton travail.

alors :

  • il remonte des données les lundi, mardi et jeudi. mais rien pour le vendredi : colonne vide.
  • il remonte trop de données :
il semble scanner deux fois la colonne de date. de haut en bas du tableau : il remplit une permière série fausse (+1), suivie d'une deuxième, la bonne.

ps : une incidence si je déplace les onglets : ps-ms/ms-gs/cp/ce1/ce1-ce2/ce1-cm1/cm2 ?

stop the press !

ça doit être le fichier qui me sert de modèle (onglet 'modèle') ! il contient aussi les dates recherchées.

je regarde...

tu peux déplacer les onglets

s'il remonte 2 fois, c'est sans doute qu'il y a 2 onglets (peut-être l'influence du modèle qu'il faudrait mettre à vierge)

pour le vendredi, je vais regarder sur mon jeu d'essai

edit : on s'est croisé dans la réponse)

correction de la macro pour le vendredi

Sub ETABLIR()

Dim wb As Workbook
Dim ws As Worksheet
Dim wsMois As Worksheet

' effacement des données actuelles des différents onglets
RAZ

' application actuelle et feuille principale
Set wb = ThisWorkbook
Set ws = ActiveSheet

' ouverture du fichier avec les données source
Workbooks.Open Filename:=ActiveWorkbook.Path & "\" & Range("fichier") & ".xlsx"

For quand = ws.Range("depuis").Value To ws.Range("jusque").Value
    ' détermination du n° de colonne suivant le jour
    col = 0
    If quand = ws.Range("depuis").Value Then col = 1
    If quand = ws.Range("depuis").Value + 1 Then col = 4
    If quand = ws.Range("depuis").Value + 3 Then col = 7
    If quand = ws.Range("depuis").Value + 4 Then col = 10

    ' pour chaque feuille du fichier de données
    For Each wsMois In Worksheets

        wsMois.Select

        j = 1
        ' recherche de correspondance dans la ligne 6 contenant les dates
        Do Until Cells(6, j).Value = quand Or j = Cells(6, Columns.Count).End(xlToRight).Column
            j = j + 1
        Loop
        ' à ce stade, j est la colonne correspondant à la date recherchée

        ' ok date trouvée
        If Cells(6, j).Value = quand Then
            ' les noms sont en colonne A, la liste commence à 7 et s'arrête à la première case vierge
            For i = 7 To Range("A6").End(xlDown).Row
                If Cells(i, j) <> "" Then
                    ' cette gestion d'erreur permet d'ignorer l'instruction si col=0 ou si la classe n'est pas un onglet
                    On Error Resume Next
                        der = wb.Sheets(Cells(i, "C").Value).Cells(Rows.Count, col).End(xlUp).Row + 1
                        wb.Sheets(Cells(i, "C").Value).Cells(der, col).Value = Cells(i, "A").Value
                    On Error GoTo 0
                    ' fin d'exception
                End If
            Next
        End If

    Next

Next

' fermeture fichier source sans changements
ActiveWindow.Close Savechanges:=False

' préparation de l'édition
For Each ws In wb.Sheets
    With ws
        If .Name <> "EDITION" Then
            .PageSetup.PrintArea = "$A$1:$K$" & .Range("M4").Value + 5
        End If
    End With
Next

End Sub

Sub RAZ()

Dim ws As Worksheet

' effacement des données actuelles des différents onglets
For Each ws In Worksheets
    With ws
        If .Name <> "EDITION" Then
            ' M4 donne le nombre max par jour d'élèves de la feuille
            If .Range("M4").Value > 0 Then .Rows("5:" & (.Range("M4").Value + 4)).ClearContents ' les données commencent ligne 5
        End If
    End With
Next

End Sub

la classe.

mince, faut reporter où dans le code le changement de nom d'un onglet de classe ?

il ne faut rien changer au code

il suffit de recopier globalement une feuille dans un nouvel onglet et indiquer dans le nom de l'onglet la classe

coucou steelson,

il serait possible de faire une variante journalière regroupant les classes par niveaux ?

onglet 'jour', 4 onglets dans le fichier (lundi, mardi, jeudi et vendredi)

2 tableaux de noms pour les maternels, 1 par classe. avec nom de la classe en en-tête de tableau.

5 pour les primaires.

(voir modèles joints)

Bonjour,

tout est presque possible, je pourrais réadapter le programme très spécifique = ce que je ne ferai pas car l'expérience montre qu'elle ne dure pas plus d'un mois et que personnellement je n'y prendrai pas plaisir puisque je l'ai déjà fait

une autre solution beaucoup plus intelligente : adopter un solution simple = rester dans le standard excel et jouer avec les TCD

je l'avais déjà évoqué ... https://forum.excel-pratique.com/viewtopic.php?p=670219#p670219

ou enfin, partir de cette dernière solution et imaginer quelque chose qui permette de s'adapter en permanence ... je vais réfléchir en ce sens plutôt que de reprendre juste le programme

Une première version (celle que je préfère, adaptable)

Je vais travailler en reprenant la mise en forme souhaitée.

erreur de présentation du TCD ...

Rechercher des sujets similaires à "recuperation donnees conditions fichier"