Microsoft 365 Créer un synthèse de plusieurs onglets

cdric78

XLDnaute Junior
Bonjour,
Je fais appel à vous pour m'aider à réaliser quelques choses que je n'arrive pas à faire.
Je souhaite faire une synthèse de plusieurs onglets dans un seul onglet.

Je possède plusieurs onglets (CARR. 1, CARR.2, CARR. 3) mais ce nombre d'onglet sera évolutif (et le nommage des onglets ne conservera pas la structure "CARR. ?").
Je souhaite que l'onglet "Synthèse" reprenne les valeurs A1 et les valeurs présentes dans la colonne C si il y a un "1" en D sur la même ligne. Par exemple l'onglet synthèse ne devra pas affiché le contenu C10 de l'onglet CARR. 1 car il n'y a pas de 1 en D10.

Dans mon exemple, l'onglet "Synthèse" affiche le résultat attendu.

Je vous remercie par avance pour votre aide.
 

Pièces jointes

  • Suivi To do.xlsx
    18.4 KB · Affichages: 5

cdric78

XLDnaute Junior
Bonjour,

Merci à FANFAN38 pour cette macro.

Je souhaite savoir comment faire pour modifier la macro afin de conserver la mise en forme des cellules copiés (police, mise en forme, lien hypertexte etc...)

Merci par avance pour vos réponses.

VB:
Private Sub Worksheet_Activate()
  Dim i As Integer, j As Long, lig As Long
 ' Set sh = Sheets("Synthèse")
  Range("A2:B1000").ClearContents
  lig = Range("B" & Rows.Count).End(xlUp).Row + 1
  For i = 1 To Sheets.Count
    If Sheets(i).Name <> "Synthèse" Then
      Range("A" & lig) = Sheets(i).Range("A1")
      For j = 2 To Sheets(i).Range("D" & Rows.Count).End(xlUp).Row
        If Sheets(i).Range("D" & j) = 1 Then
          Range("B" & lig) = Sheets(i).Range("C" & j)
          lig = lig + 1
        End If
      Next
      lig = lig + 2
    End If
  Next
End Sub
 

job75

XLDnaute Barbatruc
Vous n'avez donc pas appliqué correctement mes instructions pour obtenir :
VB:
Private Sub Worksheet_Activate()
  Dim i As Integer, j As Long, lig As Long
 ' Set sh = Sheets("Synthèse")
  Range("A2:B1000").ClearContents
  lig = Range("B" & Rows.Count).End(xlUp).Row + 1
  For i = 1 To Sheets.Count
    If Sheets(i).Name <> "Synthèse" Then
      Sheets(i).Range("A1").Copy Range("A" & lig)
      For j = 2 To Sheets(i).Range("D" & Rows.Count).End(xlUp).Row
        If Sheets(i).Range("D" & j) = 1 Then
          Sheets(i).Range("C" & j).Copy Range("B" & lig)
          lig = lig + 1
        End If
      Next
      lig = lig + 2
    End If
  Next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
313 866
Messages
2 103 087
Membres
108 521
dernier inscrit
manouba