Extraction et analyse
Bonjour,
Sur un fichier excel, des résultats contrôles d'un produit sont fait chaque jour une feuille différente. Je cherche à créer un fichier automatique qui va analyser ses résultats sur tout le mois, c'est à dire calculer la moyenne, le min et le max, puis l’écart type.
Au début je voulais les extraire, mais c'était pas du tout automatique, je devais à chaque fois changer le code, et ça me le met sur nouvelle feuille sur le même fichier.
Je suis vraiment débutante et je sais pas trop comment faire. Pouvez vous m'aider ?
Sub copyColumns()
Dim ws As Worksheet
Dim starting_ws As Worksheet
Set starting_ws = ActiveSheet 'remember which worksheet is active in the beginning
Dim columnIndex As Long
Dim sheetAnalyse As String
columnIndex = 1
sheetAnalyse = "Analyse-01"
Call DeleteSheetAnalyse
Sheets.Add(After:=Sheets(Sheets.Count)).Name = sheetAnalyse
For Each ws In ThisWorkbook.Worksheets
ws.Activate
'do whatever you need
If ws.Name <> "Modele" And ws.Name <> "GRAPH" And ws.Name <> "Analyse" And GetMonth(ws.Name) = "1" Then
MsgBox ws.Name + " " + GetMonth(ws.Name)
Sheets(sheetAnalyse).Cells(1, columnIndex) = ws.Name
ws.Range("B88:B" & Cells(Rows.Count, "B").End(xlUp).Row).Copy Destination:=Sheets(sheetAnalyse).Range(Cells(2, columnIndex).Address(RowAbsolute:=True, ColumnAbsolute:=True))
columnIndex = columnIndex + 1
ws.Range("I88:I" & Cells(Rows.Count, "I").End(xlUp).Row).Copy Destination:=Sheets(sheetAnalyse).Range(Cells(2, columnIndex).Address(RowAbsolute:=True, ColumnAbsolute:=True))
columnIndex = columnIndex + 1
ws.Range("J88:J" & Cells(Rows.Count, "B").End(xlUp).Row).Copy Destination:=Sheets(sheetAnalyse).Range(Cells(2, columnIndex).Address(RowAbsolute:=True, ColumnAbsolute:=True))
columnIndex = columnIndex + 1
End If
Next
'starting_ws.Activate 'activate the worksheet that was originally active
Worksheets(sheetAnalyse).Activate
End Sub
Sub DeleteSheetAnalyse()
For Each Sheet In ActiveWorkbook.Worksheets
If Sheet.Name = "Analyse-01" Then
Sheet.Delete
End If
Next Sheet
End Sub
Function GetMonth(s) As String
Dim re, match, month, length
Set re = CreateObject("vbscript.regexp")
re.Pattern = "[\/-][\d]+[\/-]"
re.Global = True
For Each match In re.Execute(s)
length = Len(match.Value) - 2
GetMonth = Mid(match.Value, 2, length)
Exit For
Next
Set re = Nothing
End Function
bonjour
faire menu Données Obtenir de fichier "classeur"
ça va lire et concaténer tous les fichiers d'un même répertoire (mettre au préalable TOUS tes fichiers dans ce répertoire, il peut y en avoir 1000+ )
"charger"
et toutes les données de tous les fichiers sont dans un onglet Excel
restera à faire des TCD et des GCD
sans aucune formule, ni VBA
amitiés
Bonjour à tous
Si j'ai bien compris c'est dans un même classeur mais la solution de jmd peut selon le même principes
Il faudrait un exemple de classeur REPRESENTATIF (quelques onglets de quelques lignes) pour plus de détails.