XL 2016 récupération de données sans matrices

eastwick

XLDnaute Impliqué
Bonjour à toutes et tous,
Dans la continuité d'un fichier déjà déposé mais amélioré ici (horaires), pouvez-vous m'indiquer comment récupérer dans les onglets verts les données qu'on trouve dans l'onglet planning ? Attention, pas toutes les données...
Les formules matricielles fonctionnent parfaitement mais le fichier rame à chaque saisie.
D'avance merci pour voter collaboration.
P.S. : fichier établi pour un institut de formation es aides soignants pour info
 

Pièces jointes

  • ifas_ok_horaires.xlsm
    886.5 KB · Affichages: 9

vgendron

XLDnaute Barbatruc
normal.. la macro n'efface pas les feuilles
remplace la macro par ca:
VB:
Sub dispatch()

For Each ws In ActiveWorkbook.Sheets 'pour chaque feuille du classeur
    If ws.Name <> "planning" And ws.Name <> "totaux" Then
        ws.UsedRange.Offset(2).ClearContents 'on efface tout sauf les deux premières lignes d'entete
    End If
Next ws
Dim tabdata() As Variant
With Sheets("Planning")
    fin = .Range("C" & .Rows.Count).End(xlUp).Row 'dernière ligne du planning
    tabdata = .Range("C2:N" & fin).Value 'tout dans un tablo
End With

For i = LBound(tabdata, 1) To UBound(tabdata, 1) 'pour chaque ligne du tablo
    If IsDate(tabdata(i, 1)) And tabdata(i, 8) <> "" Then 'pour ignorer les lignes d'entete
        With Sheets(tabdata(i, 8)) 'dans la feuille concernée
            fin = .Range("A" & .Rows.Count).End(xlUp).Row + 1 'dernière ligne de la feuille
            .Range("A" & fin) = tabdata(i, 1)
            .Range("B" & fin) = tabdata(i, 2)
            .Range("C" & fin) = tabdata(i, 3)
            .Range("D" & fin) = tabdata(i, 4)
            .Range("E" & fin) = tabdata(i, 9)
            .Range("F" & fin) = tabdata(i, 10)
        End With
        
    End If
Next i
End Sub
 

Statistiques des forums

Discussions
311 726
Messages
2 081 955
Membres
101 852
dernier inscrit
dthi16088