Génération de feuille automatique

Bonjour à tous.

J'ai un travail de reporting à effectuer.

J'obtiens, de 2 logiciels des données brutes sur excel. Je "fusionne ces 2 tableaux avec des fonctions "rechercheV". J'obtiens donc un unique tableau regroupant les informations qui m'interessent. J'aimerais, à partir de ce tableau, générer autant de feuilles qu'il y a de codes clients. Un client, sur mon tableau peut se retrouver sur plusieurs lignes. Il faudrait donc que ces lignes se retrouvent sur la feuille de ce client.

Cf fichier joint car les explication s d'un mercredi matin ne sont peut etre pas tres claires

Bonne journée à tous !

https://www.excel-pratique.com/~files/doc2/suivi1.xls

personne ne voit ?

Bonjour et bienvenu,

Je ne pense pas le fichier synthèse que tu as envoyé donne vraiment envie de continuer. Un fichier avec plein de message d'erreurs n'est pas très conforme à l'esprit du développement.

D'après ce que j'ai compris, le fichier synthèse va avoir autant de lignes que le fichier "Isiline". Par contre, il faut déterminer le nombre de colonnes et leur provenance et le contenu.

Il faut passer par le VBA pour fabriquer un fichier de synthèse propre avec les deux fichiers bruts en entrée et créer les feuilles pour chaque client en récupérant les données appartenant à ces clients. Tout cela nécessite un gros travail de réflexion et implantation.

Faire un fichier de synthèse manuellement n'est pas utile. Réfléchi à tous ça et reviens nous voir avec plus de précisions. Ce n'est que mon avis personnel.

Bonjour et merci pour ton accueil...

Le fichier de résultat obtenu n'est qu'un exemple.

Il contient des données que je ne veut pas partager. c'est pour celà qu'il parait un peu brouillon.

Je ne connais pas du tout le devloppement sous Excel.

Ce qui m'interessait dans ce forum est d'avoir justement des idées afin de finaliser mon projet.

Au risue de me répéter, ma question est la suivante :

Comment à partir d'un tableau, générer des feuilles et les alimenter en fonction du contenu d'une cellule (ici, des codes clients).

Bonjour,

Voici un petit code qui va te créer les feuilles vierges et nommées en fonction du client mentionné dans la colonne F de la feuille TRV.

Sub Creation_feuille()
'Macro Dan pour Oliboo - 06/05/09
'http://forum.excel-pratique.com/viewtopic.php?t=11247
Dim Dlig As Integer, i As Integer, f As Integer
Dim existe As Boolean
With Sheets("Trv")
Dlig = .Range("F65536").End(xlUp).Row
For i = Dlig To 2 Step -1
If Not IsError(.Range("F" & i)) Then
    For f = 1 To Worksheets.Count
        If Sheets(f).Name = .Range("F" & i) Then
        existe = True
        End If
    Next f
If Not existe Then Sheets.Add after:=Sheets(Sheets.Count): _
ActiveSheet.Name = .Range("F" & i)
End If
existe = False
Next i
End With
End Sub

Le code est à placer en VBA dans un module, puis lui associer un bouton.

Amicalement

Dan

Merci Nad-Dan pour cette soluce

ca fonctionne parfaitement.

Pour aller plus loin, puis je automatiser" l'alimentation" de ces feuilles crées en reprenant les lignes du tableau de synthèse?

Re,

automatiser" l'alimentation" de ces feuilles crées en reprenant les lignes du tableau de synthèse

Je me doutais que tu allais me poser cette question...

C'est possible, mais dis moi quelles sont les colonnes à reporter dans les feuilles nouvellement créées.

Dan

Je suis vraiment trop prévisible !

En fait il faut reporter toutes les colonnes du tableau TRV.

re,

Cela va m'obliger à revoir le code que je t'ai proposé.

Une question : lorsque tu as transféré les données de la feuille TRV vers la feuille client, doivent-elles être supprimées de la feuille TRV ?

Dan

Bonjour Nad Dan,

J²'espere que ce long week end a été égréable.

Pour répondre à ta question, les données ne doivent pas être supprimées sur la feuille TRV.

Merci encore pour ton aide.

Re,

Remplace le code que je t'ai donné par les deux ci-après

Public cel
Public i As Integer
Sub Creation_feuille()
'Macro Dan pour Oliboo - 06/05/09
'http://forum.excel-pratique.com/viewtopic.php?t=11247
Dim Dlig As Integer, f As Integer
Dim existe As Boolean
Application.ScreenUpdating = False
With Sheets("Trv")
Dlig = .Range("F65536").End(xlUp).Row
For i = Dlig To 2 Step -1
Set cel = .Range("F" & i)
If Not IsError(cel) Then
    For f = 1 To Worksheets.Count
        If Sheets(f).Name = cel Then
        existe = True: Call Transfert
        End If
    Next f
If Not existe Then
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = cel
Range(.Cells(1, 1), .Cells(1, 6)).Copy Destination:=ActiveSheet.Range("A1")
Call Transfert
End If
End If
existe = False
Next i
End With
End Sub

Sub Transfert()
'Macro Dan pour Oliboo - 06/05/09
'http://forum.excel-pratique.com/viewtopic.php?t=11247
Dim lig As Integer
With Sheets(CStr(cel))
lig = .Range("A65536").End(xlUp).Row + 1
    .Cells(lig, 1) = cel.Offset(0, -5)
    .Cells(lig, 2) = cel.Offset(0, -4)
    .Cells(lig, 3) = cel.Offset(0, -3)
    .Cells(lig, 4) = cel.Offset(0, -2)
    .Cells(lig, 5) = cel.Offset(0, -1)
End With
End Sub

Amicalement

Dan

Rechercher des sujets similaires à "generation feuille automatique"