1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| Sub Extract()
'
Dim derniere_ligne As Long
Dim i As Long
Dim Dossier_racine As String
Dim Tab() As Variant
Dim toto As Integer
'
'
If MsgBox("Has the data base already been cleaned ?", vbYesNo, "Confirmation Request") = vbNo Then
'MsgBox ("On est dans le cas : La base n'a pas encore été nettoyée")
'Saisie du dossier racine (valeur par défaut "P:\EXPORT\TEMP"
Dossier_racine = InputBox("Select the folder where the initial database is located", "Data base folder", "P:\EXPORT\TEMP")
'
MsgBox ("WARNING : The cleaning of the file will start" & Chr(10) & Chr(10) & "Thank you for waiting")
'
'------ ON OUVRE LE FICHIER "schema.xml_temporary.xlsx" ET ON VA DANS L'ONGLET "schema.xml_temporary" ------
'
Workbooks.Open Filename:=Dossier_racine & "\" & "schema.xml_temporary.xlsx"
Sheets("schema.xml_temporary").Activate
'
'Recherche du numéro de la dernière ligne
'
derniere_ligne = Range("A" & Rows.Count).End(xlUp).Row
'
'Suppression des formules éventuelles contenues dans ce fichier (on remplace les "=" par des "-")
'
Range("A2:AY" & derniere_ligne).Select
Selection.Replace What:="=", Replacement:="-", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'
Range("A2").Select
'
MsgBox ("The Data base has been cleaned" & Chr(10) & Chr(10) & "WARNING : The initial file will be updated !!")
'
'Enregistrement de la data base (ATTENTION : l'ancienne version est écrasée)
'
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="schema.xml_temporary.xlsx"
Application.DisplayAlerts = True 'Remettre absolument ensuite
MsgBox ("The Data base has been cleaned and saved (overwritten file)" & Chr(10) & Chr(10) & "Data extraction will begin")
Else
Dossier_racine = InputBox("Select the folder where the database is located", "Data base folder", "P:\EXPORT\TEMP")
Workbooks.Open Filename:=Dossier_racine & "\" & "schema.xml_temporary.xlsx"
Sheets("schema.xml_temporary").Activate
derniere_ligne = Range("A" & Rows.Count).End(xlUp).Row
MsgBox ("Data extraction will begin")
End If
'Extraction des données
'
'Mise en place des filtres dans le fichier nettoyé "schema.xml_temporary.xlsx"
Range("A1:AY1").Select
Selection.AutoFilter
'
'Critères de tri
'
toto = Range("D10").Value
ActiveSheet.Range("$A$1:$AY$" & derniere_ligne).AutoFilter Field:=toto, Criteria1:="=" & Range("C12"), Operator:=xlAnd
Range("A1").Select
'
MsgBox ("Data extraction completed")
'
Call SaveFile
'
End Sub
Sub SaveFile()
Dim Filename As String
If MsgBox("Do you want to save 'schema.xml_temporary.xlsx' on your local drive ?", vbQuestion + vbYesNo, "Confirmation Request") = vbYes Then
Filename = "schema.xml_temporary_" & Format(Date, "yyyymmdd") & "_" & Format(Time, "hhmmss") & ".xlsx"
With Application.FileDialog(msoFileDialogSaveAs)
.Title = "Save File as"
.InitialFileName = Filename
.FilterIndex = 1 ' 1 = xlsx, 2 = xlsm, 3 = xlsb
.Show
.Execute
End With
End If
End Sub |
Partager