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
|
Sub recupdata()
'Déclaration des Variables
Dim ListeFichier As Variant
Dim MonClasseur As Workbook
Dim sAvant As String
Dim sAprès As String
Dim rngTarget As Range
Dim ColumnTarget As Range
'on desactive le presse-papier et le rafraichissement de l'écran
Application.CutCopyMode = False
Application.ScreenUpdating = False
'on efface les anciennes donnée
Sheets("Feuil2").Range("B2:AD5000").Clear
'on recupère le fichier des données à copier
ListeFichier = Application.GetOpenFilename(Title:="Sélectionner le fichier RAFALE")
'Prévoir le cas du bouton annuler
If ListeFichier <> False Then
'on affecte le fichier selectionné
Set MonClasseur = Application.Workbooks.Open(ListeFichier)
'on copie les données de la feuille du classeur selectionné(latitude)
MonClasseur.Sheets(1).Range("AC7:AC500").Copy
'on colle les données dans la feuille active(latitude)
ThisWorkbook.Sheets("Feuil2").Range("D2").PasteSpecial xlPasteValues
'on copie les données de la feuille du classeur selectionné(longitude)
MonClasseur.Sheets(1).Range("AD7:AD500").Copy
'on colle les données dans la feuille active(longitude)
ThisWorkbook.Sheets("Feuil2").Range("E2").PasteSpecial xlPasteValues
' concatenation des colonne date et heure du Rafale sur le fichier finale
Set shtTarget = MonClasseur.Sheets(1)
Set rngTarget = shtTarget.Range("A1").CurrentRegion
With rngTarget
Set ColumnTarget = .Offset(1, 1).Resize(.Rows.Count - 1, 1)
End With
' L'étape de 3 lignes
With ColumnTarget ' Traitement dans la colonne entière
.Formula = "=Source!C7+Source!D7" ' Copie de la formule
.Value = .Value ' Equivalent d'un Copier/Collage Special-Valeur
.NumberFormat = "dd/mm/yyyy hh:mm:ss" ' Formatage
End With
' Libère la mémoire
Set shtTarget = Nothing: Set rngTarget = Nothing: Set ColumnTarget = Nothing
'on desactive les messages d'alerte de Microsoft
Application.DisplayAlerts = False
'on ferme le classeur source
MonClasseur.Close
'remplace de ° par ø
sAvant = "° "
sAprès = "ø"
Columns("D:E").Select
Selection.Replace What:=sAvant, Replacement:=sAprès, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End If
'on ré-active le presse papier
Application.CutCopyMode = True
Application.ScreenUpdating = True
End Sub |
Partager