Export de donnée vers onglet et source vide

Bonjour a tous et merci du temps que vous m'accorderez,

Je débute en vba et j'ai un problème qui je pense va vous paraître anodin mais qui me bloque.

Même si je pense entrevoir la solution c'est la réalisation qui me pose problème.

Objet : J'ai un onglet de données actualisées mensuellement (dossiers en cours), j'ai la macro pour que ces données soient exportés vers d'autres onglets selon critère (service en charge), prêt à être envoyés dans les services correspondants.

Problématique : La difficulté que je rencontre est lorsqu'un service à bien travaillé et qu'aucune donnée(dossier) ne répond au critère(service).

Cela provoque une erreur d'exécution '9': L'indice n'appartient pas à la sélection.

L'export et le tri se font tout de même sur l'ensemble des documents

Objectif recherché: Passer outre l'erreur. On Error Resume Next semble correspondre à mes attentes, mais je n'arrive pas à voir où l'inclure pour que ce soit pris en compte.

voici un résumé du code pour 2 services (sur les 18 actuellement créés).

Option Explicit

Dim tablo, tabloGRH(), TabloFIN(), i&, ai&, kFIN&, kGRH&

Sub Séparer()

    tablo = Range("A2:AI" & Range("A" & Rows.Count).End(xlUp).Row)
    kFIN = 1
    kGRH = 1

 For i = 1 To UBound(tablo, 1)
        If tablo(i, 20) = "FIN" Then
            ReDim Preserve TabloFIN(1 To 40, 1 To kFIN + 1)
            For ai = 3 To 9
                TabloFIN(ai - 2, kFIN) = tablo(i, ai)
            Next ai
            For ai = 11 To 11
                TabloFIN(ai - 3, kFIN) = tablo(i, ai)
            Next ai
            For ai = 13 To 13
                TabloFIN(ai - 4, kFIN) = tablo(i, ai)
            Next ai
            For ai = 17 To 19
                TabloFIN(ai - 7, kFIN) = tablo(i, ai)
            Next ai
            For ai = 24 To 25
                TabloFIN(ai - 11, kFIN) = tablo(i, ai)
            Next ai

            kFIN = kFIN + 1

        ElseIf tablo(i, 20) = "GRH" Then
            ReDim Preserve tabloGRH(1 To 40, 1 To kGRH + 1)
            For ai = 3 To 9
                tabloGRH(ai - 2, kGRH) = tablo(i, ai)
            Next ai
            For ai = 11 To 11
                tabloGRH(ai - 3, kGRH) = tablo(i, ai)
            Next ai
            For ai = 13 To 13
                tabloGRH(ai - 4, kGRH) = tablo(i, ai)
            Next ai
            For ai = 17 To 19
                tabloGRH(ai - 7, kGRH) = tablo(i, ai)
            Next ai
            For ai = 24 To 25
                tabloGRH(ai - 11, kGRH) = tablo(i, ai)
            Next ai

            kGRH = kGRH + 1

             End If

    Next i
    Sheets("GRH").Range("A10").CurrentRegion.Offset(1, 0).ClearContents
    Sheets("GRH").Range("A10").Resize(UBound(tabloGRH, 2), 39) = Application.Transpose(tabloGRH)
    Sheets("FIN").Range("A10").CurrentRegion.Offset(1, 0).ClearContents
    Sheets("FIN").Range("A10").Resize(UBound(TabloFIN, 2), 39) = Application.Transpose(TabloFIN)

    MsgBox "Travail terminé."
End Sub

PS : j'en profite au passage pour remercier gmb sur le poste suivant https://forum.excel-pratique.com/viewtopic.php?f=2&t=94033&sid=a39c66d09d50417d1d9970144ba37086 dont est issu la macro ci-dessus adapté à mes besoins.

Voici le fichier en exemple qui montre bien l'erreur.

Si Les cases en colonne T "gestionnaire" sont complétés par GRH, l'erreur n'apparaît plus.

C'est bien l'absence de données cherché qui me renvoie une erreur d'exécution.

Merci,

Bonjour

Nouvelle version.

Bye !

Bonjour,

La solution marche parfaitement, merci également pour la factorisation dans le report des colonnes.

Cela va rendre le code plus lisible.

J'en déduis que mon problème de date inversé entre le format US et EU devra également se corriger au même niveau, c'est à dire au moment de la transposition dans les tableaux. Ça m'ouvre une piste pour me débrouiller.

Rechercher des sujets similaires à "export donnee onglet source vide"