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