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
| Option Explicit
Sub RecupereDataFichier()
'déclaration des variables
Dim ListeFichier As Variant
Dim MonClasseur As Workbook
Dim BaseVBA As Worksheet
Dim lstrw As Long
Dim lstcol As Long
'identifier onglet
Set BaseVBA = Worksheets("BASE VBA")
'on désactive le presse-pappier et le raffraichissement de l'écran
Application.CutCopyMode = False
Application.ScreenUpdating = False
'on récupere le fichier des donées a copier
ListeFichier = Application.GetOpenFilename(Title:="Sélectionnez votre classeur", _
filefilter:="Fichiers Excel(*.xls*),*.xls*", ButtonText:="Cliquez")
'prévoir le cas du boutton Annuler
If ListeFichier <> False Then
'on affecte le fichier sélectionné
Set MonClasseur = Application.Workbooks.Open(ListeFichier)
'Matricule SP
MonClasseur.Sheets(1).Range("G4:G" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
BaseVBA.Range("A3").PasteSpecial xlPasteValues
'Identifiant
MonClasseur.Sheets(1).Range("H4:H" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
BaseVBA.Range("B3").PasteSpecial xlPasteValues
'Matricule
MonClasseur.Sheets(1).Range("F4:F" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
BaseVBA.Range("C3").PasteSpecial xlPasteValues
'Position act LA
MonClasseur.Sheets(1).Range("J4:J" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
BaseVBA.Range("F3").PasteSpecial xlPasteValues
'Nom
MonClasseur.Sheets(1).Range("M4:M" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
BaseVBA.Range("G3").PasteSpecial xlPasteValues
'Prénom
MonClasseur.Sheets(1).Range("N4:N" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
BaseVBA.Range("H3").PasteSpecial xlPasteValues
'Radiation des contrôles D
MonClasseur.Sheets(1).Range("AF4:AF" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
BaseVBA.Range("L3").PasteSpecial xlPasteValues
'trier le tableau
lstrw = BaseVBA.Cells(Rows.Count, 1).End(xlUp).Row
lstcol = BaseVBA.Cells(2, Columns.Count).End(xlToLeft).Column
BaseVBA.Range(BaseVBA.Cells(2, 2), BaseVBA.Cells(lstrw, lstcol)).Sort _
key1:=BaseVBA.Range("L3"), order1:=xlAscending, Header:=xlYes
'on désactive les message d'alerte de Microsoft
Application.DisplayAlerts = False
'on ferme le classeur source
MonClasseur.Close
End If
'on ré-active le presse-pappier et le raffraichissement de l'écran
Application.CutCopyMode = True
Application.ScreenUpdating = True
End Sub |
Partager