Alimentation Onglet master par un nombre d'onglet definit

Bonjour,

Je travaille sur de la gestion de projet.

Mon besoin en VBA était :

Création d'un code me permettant d'alimenter un onglet "Général" en venant reprendre les données des autres onglets qui sont mise dans des tableaux.

  • Je voudrais savoir s'il est possible de sélectionner les onglets qui doivent être repris dans l'onglet "Général" en mettant par Exemple comme requête {prends mois tous les onglets commencent par 1} . Parce que dans mon code j'ai essayé de rajouter une feuille pour exploiter les indicateurs repris dans la "Général", j'ai eu quelques difficultés et si je veux en rajouter X ne pourrais pas mettre une exception à ralonge avec nom d'onglets fixe''
  • J'ai eu des difficultés quand mes données sont reprises le tableau de la feuille "général'' ne prend en forme que le 1er onglet dans le tableau le reste etant copié en dehors sans format, cela arrive le plus souvent âpres la 2nd consolidation.
Merci de l'aide que vous pourriez m'apporter.

Pour cela j'ai utilisé un code que j'ai trouvé et j'ai essayé de l'adapter à ma problématique .

Public Sub ConsolidateData()

Dim wb As Workbook

Dim wsResult As Worksheet, ws As Worksheet

Dim wsGestion As Worksheet

Dim startRow As Long, lastRow As Long

Application.ScreenUpdating = False

Set wb = ActiveWorkbook

Set wsResult = wb.Worksheets("Général")

Set wsGestion = wb.Worksheets("Gestion")

With wsResult.ListObjects(1)

If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete

End With

startRow = 4

For Each ws In wb.Worksheets

If ((ws .Name <> wsResult .Name) And (ws. Name <> wsGestion .Name)) Then

If Not ws.ListObjects(1).DataBodyRange Is Nothing Then

ws.ListObjects(1).DataBodyRange.Copy

wsResult.Cells(startRow, 2).PasteSpecial xlPasteValues

lastRow = wsResult.Cells(Rows.Count, 2).End(xlUp).Row

wsResult.Range(Cells(startRow, 1), Cells(lastRow, 1)) = ws .Name

startRow = lastRow + 1

End If

End If

Next ws

Application.CutCopyMode = False

Set wsResult = Nothing: Set wb = Nothing

End Sub

Bonjour,

Merci de joindre un fichier à ta demande pour une aide adaptée du forum.

Cdlt.

Bonjour Excelnov,

sous réserve d'un fichier comme demandé à juste titre par Jean-Eric, remplace

If ((ws.Name <> wsResult.Name) And (ws.Name <> wsGestion.Name)) Then

par

If Left(ws.Name, len(prefixe)) = prefixe Then

ou

If ws.Name like prefixe & "*" Then

en définissant le prefixe

Je suppose maintenant que Jean-Eric te proposera des solutions plus intéressantes avec PowerQuery.

Bonjour à vous,

Merci pour vos retours .

Je vous joins mon Fichier.

Je me permets de rajouter un exemple plus explicite et des requêtes.

Je cherche à avoir que dans l'onglet Général la macro sur le bouton consolider soit alimenté que par mes onglets commencant par "-" et savoir si il y a un code pour que mes autres onglets Temps Budget Matériel HR soient alimenté automatiquement par le tableau Général et qu'ils ajoutent les lignes même lorsque des nouvelles lignes s'ajoutent sur l'onglet Général.

Merci de vos réponses

Je cherche à avoir que dans l'onglet Général la macro sur le bouton consolider soit alimenté que par mes onglets commencant par "-"

Tu n'as pas défini prefixe

Dim prefixe As String
prefixe = "-"

pourquoi

If Left(ws.Name, Len(1)) = prefixe Then

à remplacer par

If Left(ws.Name, Len(prefixe)) = prefixe Then

comme indiqué ici : https://forum.excel-pratique.com/viewtopic.php?p=846860#p846860


savoir si il y a un code pour que mes autres onglets Temps Budget Matériel HR soient alimenté automatiquement par le tableau Général et qu'ils ajoutent les lignes même lorsque des nouvelles lignes s'ajoutent sur l'onglet Général.

C'est un autre sujet ...

Il n'y a pas de données dans le fichier !

Fais un TCD.

Rechercher des sujets similaires à "alimentation onglet master nombre definit"