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
| Sub Importationdonnées()
'''' [ TRAVAIL PRÉLIMINAIRE ] ''''
'Déclaration des variables
Dim nomsource As Variant
Dim nomdestination As Variant
Dim numcolonne As Variant
'Déclaration des deux fichiers
'Destination (Chiffrier hôte pour l'ensemble des données)
Dim Destination As Workbook
Set Destination = ActiveWorkbook
'Source (à savoir le fichier généré par SAS qui contient les données à importer)
Dim Source As Workbook
'cheminsource = InputBox("Quel est le chemin du fichier à importer ?", "Chemin Source")
cheminsource = "P:\Projet 5\PMLOCATIF_JUL2012_DEC2012.xlsx"
Set Source = Workbooks.Open(cheminsource)
Source.Activate
'Détermination du nombre de ligne à importer
Dim DernLigne As Long
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
'Détermination du nombre de colonne à importer
Dim DernCol As Integer
DernCol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
'Détermination de la dernière ligne après laquelle copier les données
Dim DernLigneDestination As Long
Destination.Worksheets("JLR").Activate
DernLigneDestination = Range("A" & Rows.Count).End(xlUp).Row
DernLigneDestination = DernLigneDestination + 1
'''' [ CONCORDANCE DES COLONNES ] '''''
'Boucle
Dim FL1 As Worksheet, Cell As Range
Dim NoLig As Long, Var As Variant
Source.Activate
Set FL1 = Worksheets("PMLOCATIF")
NoLig = 1 'Lecture de la ligne 5
For numcolonne = 1 To DernCol
nomsource = FL1.Cells(NoLig, numcolonne) 'Selection de la première cellule de la colonne
'Concordance des noms de colonnes
nomdestination = WorksheetFunction.VLookup(nomsource, Destination.Sheets("Concordances").Range("A1:B46"), 2, True)
'copie de la colonne du fichier source
Range(numcolonne & "2:" & numcolonne & DernLigne).Copy
'Collage de la colonne dans le fichier destination
Dim ColRech As Variant
With Destination.Worksheets("JLR").Range("a1:DA1")
Set c = .Find(nomdestination, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
ColRech = Selection.Find(nomdestination, LookIn:=xlValues).Column
Range(1, ColRech).Select
Dim i As Integer
i = 1
While (Cells(i, ColRech).Value <> "")
i = i + 1
Wend
Cells(i, numcolonne).Select
Selection.Paste
End If
End With
Next
End Sub |
Partager