Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Extraire des données provenant d'autres feuillets (Macro)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

josanche

XLDnaute Occasionnel
Bonjour le forum,

J'aurais besoin de votre aide précieuse pour résoudre un problème que j'ai actuellement. Je voudrais une macro qui puissent extraire des données provenant d'autres feuillets pour pouvoir les synthéthiser sur un unique feuillet. En pièce jointe, vous retrouverez le fichier excel dans lequel j'ai pu écrire des commentaires pouvant vous aider à apporter la solution au problème. Tout est écrit sur la feuillet 1 et veuillez cliquer sur la cellule A2 pour commencer la lecture des commentaires.

N'hésitez pas à poser des questions si vous en avez !

Merci d'avance le forum
 

Pièces jointes

Re : Extraire des données provenant d'autres feuillets (Macro)

Bonjour,

Essayez le code suivant à copier dans un module Standard
Code:
Const MOT_VALIDE As String = "Moments"  'calage pour trouver les bonnes feuilles

Sub aa()
Dim S As Worksheet
Dim R As Range
Dim Titres As Variant
Dim var As Variant
Dim T()
Dim cpt&
Dim A$
Dim i&
'---
Titres = Array("Variable", "Mean", "Std Deviation", "Median", "Mode", "0% Min", "100% Max")
'---
For Each S In ThisWorkbook.Worksheets
  If InStr(1, S.[a4], MOT_VALIDE) > 0 Then
    cpt& = cpt& + 1
    ReDim Preserve T(1 To 7, 1 To cpt&)
    var = S.UsedRange
    '---
    A$ = var(2, 1)
    T(1, cpt&) = Mid(A$, InStrRev(A$, " ") + 1)
    '---
    A$ = var(18, 1)
    T(3, cpt&) = Mid(A$, InStrRev(A$, " ") + 1)
    '---
    For i& = 1 To 2
      A$ = Trim(Mid(A$, InStr(1, A$, " ")))
    Next i&
    T(2, cpt&) = Mid(A$, 1, InStr(1, A$, " ") - 1)
    '---
    A$ = var(19, 1)
    For i& = 1 To 2
      A$ = Trim(Mid(A$, InStr(1, A$, " ")))
    Next i&
    T(4, cpt&) = Mid(A$, 1, InStr(1, A$, " ") - 1)
    '---
    A$ = var(20, 1)
    For i& = 1 To 2
      A$ = Trim(Mid(A$, InStr(1, A$, " ")))
    Next i&
    T(5, cpt&) = Mid(A$, 1, InStr(1, A$, " ") - 1)
    '---
    A$ = var(47, 1)
    T(6, cpt&) = Mid(A$, InStrRev(A$, " ") + 1)
    '---
    A$ = var(37, 1)
    T(7, cpt&) = Mid(A$, InStrRev(A$, " ") + 1)
    '---
  End If
Next S
'---
If cpt& = 0 Then Exit Sub
Set S = ThisWorkbook.Sheets.Add(before:=ThisWorkbook.Sheets(1))
Set R = S.Range(S.Cells(2, 1), S.Cells(UBound(T, 2) + 1, UBound(T, 1)))
R = Application.WorksheetFunction.Transpose(T)
'---
Set R = S.Range("a1:g1")
R = Titres
R.Interior.ColorIndex = 34
R.Font.Bold = True
R.HorizontalAlignment = xlCenter
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…