VBA - tri date dans l'ordre

Bonjour,
J’ai de nouveau un souci avec les dates
Je voudrais de nouveau faire une macro qui me tri les dates d’une colonne B de la + ancienne à la plus récente d’un onglet qui se nomme « EXPORT INTER 1 » mais cette fois, les dates sont
de ce format : 8/9/2019 10:30:00 AM

j’ai écrit ce code mais cela ne marche pas :

'convertion format texte en format date
Columns(« B:B »).Select
Selection.NumberFormat = « m/d/yyyy hh:mm »

'Trier les dates de l’onglet " EXPORT INTER 1"

Dim dl%
dl = ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Cells(Rows.Count, 1).End(xlUp).Row
ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Sort.SortFields.Add Key:=Range(« B1 »), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Sort
.SetRange Range(« A1:ALR » & dl)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Une idée ?

d’avance merci pour vos lumières
Belle journée

Dans ta ligne de code suivante :
dl = ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Cells(Rows.Count, 1).End(xlUp).Row

tu fais référence à la colonne A (Cells(Rows.Count, 1).End(xlUp).Row) pour déterminer la dernière ligne à prendre en compte dans ton trie
Es tu certains de faire appel à la bonne colonne à cet effet ?
Cette colonne est elle judicieuse pour détecter la dernière ligne ?
Peut être est elle totalement vide est donc de détecter en dernière ligne la ligne 1 (aucune donnée)
Aucun tri possible dans ce cas
Corriges cette partie pour prendre en compte la bonne colonne à cette fin : Cells(Rows.Count, 1)
1 colonne A
Mettre par exemple à la place 2 pour la colonne B ainsi : Cells(Rows.Count, 2)
Il faut choisir une colonne qui aura systématiquement sa cellule remplie en dernière ligne et la cibler dans cette partie de code
Regardes sinon envoies ton fichier sans données confidentielles pour une analyse plus approfondie

Alors j’ai essayé et ça fonctionne sur un classeur excel indépendant. Mais lorsque je l’inclus dans le reste de ma macro , il bug en me surlignant
dl = ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Cells(Rows.Count, 2).End(xlUp).Row

Je vais avoir du mal à vous fournir tous le fichier avec des données non confidentielles

Une idée ?
merci

Quel est le message du Bug ?
L’onglet « EXPORT INTER 1 » est il bien présent dans le classeur actif à l’écran ?
Attention au guillemet mettre « EXPORT INTER 1 » et non « EXPORT INTER 1 »

Sinon il me faudrait toute la macro pour tenter de comprendre

Je n’ai pas de message de bug, juste la ligne surligné en jaune. J’ai vérifié les guillemets mais je ne vois rien de bloquant.
Voici la macro complète. Je bricole sur VBA donc il est possible que les commandes ne soient pas optimisées ; néanmoins elle fonctionne mise à part le souci qui nous préoccupe

Sub IMPORT()

’ Déclaration des variables



Dim wkbSource As Workbook
Dim wkbdestination As Workbook
Dim NouvelleFeuille As Worksheet
Dim Fichier As String, Chemin As String

Set monWB = Application.ActiveWorkbook

''rendre visible les feuilles
monWB.Worksheets(« EXPORT INTER »).Visible = True
monWB.Worksheets(« EXPORT INTER 1 »).Visible = True
monWB.Worksheets(« EXPORT »).Visible = True
monWB.Worksheets(« IMPORT »).Visible = True

’ ouverture et choix du fichier par une boite de dialogue

Fichier = Application.GetOpenFilename()

If Fichier = "Faux" Then Exit Sub

Workbooks.Open Fichier

’ Selectionner la zone à copie

Columns(« A:F »).Select

'Copier la zone

Selection.Copy

’ Fermer un fichier sans sauvegarde
Application.DisplayAlerts = False
ActiveWorkbook.Close False
Application.DisplayAlerts = True

'Colle les données dans l’onglet import

monWB.Worksheets(« IMPORT »).Select
Range(« A1 »).Select
ActiveSheet.Paste

'convertir ; en colone
monWB.Worksheets(« IMPORT »).Select
Columns(« A:A »).Select
Selection.TextToColumns Destination:=Range(« A1 »), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 2), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1)), _
TrailingMinusNumbers:=True

'convertion format texte en format date
Columns(« A:A »).Select
Selection.NumberFormat = « m/d/yyyy »

'etendre automatiquement les formules
monWB.Worksheets(« EXPORT INTER »).Select
Range(« A2 »).Select
Selection.AutoFill Destination:=Range(« A2:A65536 »)
Range(« A2:A65536 »).Select
Range(« B2 »).Select
Selection.AutoFill Destination:=Range(« B2:B65536 »)
Range(« B2:B65536 »).Select
Range(« D2 »).Select
Selection.AutoFill Destination:=Range(« D2:D65536 »)
Range(« D2:D65536 »).Select
Range(« E2 »).Select
Selection.AutoFill Destination:=Range(« E2:E65536 »)
Range(« E2:E65536 »).Select
Range(« F2 »).Select
Selection.AutoFill Destination:=Range(« F2:F65536 »)
Range(« F2:E65536 »).Select
Range(« H2 »).Select
Selection.AutoFill Destination:=Range(« H2:H65536 »)
Range(« H2:H65536 »).Select
Range(« I2 »).Select
Selection.AutoFill Destination:=Range(« I2:I65536 »)
Range(« I2:I65536 »).Select
Range(« J2 »).Select
Selection.AutoFill Destination:=Range(« J2:J65536 »)
Range(« J2:I65536 »).Select
Range(« K2 »).Select
Selection.AutoFill Destination:=Range(« K2:K65536 »)
Range(« K2:K65536 »).Select

monWB.Worksheets(« EXPORT INTER »).Select
Range(« A2:K65536 »).Select
Selection.Copy
monWB.Worksheets(« EXPORT INTER 1 »).Select
Columns(« A:K »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« A1 »).Select

'convertion format texte en format date
monWB.Worksheets(« EXPORT INTER 1 »).Select
Columns(« B:B »).Select
Selection.NumberFormat = « m/d/yyyy »

'Trier les dates de l’onglet " EXPORT INTER 1"

Dim dl%
dl = ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Cells(Rows.Count, 2).End(xlUp).Row
ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Sort.SortFields.Add Key:=Range(« B1 »), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Sort
.SetRange Range(« A1:ALR » & dl)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

'copier -coller le contentenu du fichier export inter 1 à export
monWB.Worksheets(« EXPORT INTER 1 »).Select
Range(« A1:A65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« A2:A65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« A2 »).Select

monWB.Worksheets(« EXPORT INTER 1 »).Select
Range(« B1:B65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« B2:B65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« B2 »).Select

monWB.Worksheets(« EXPORT INTER 1 »).Select
Range(« D1:D65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« D2:D65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« D2 »).Select

monWB.Worksheets(« EXPORT INTER 1 »).Select
Range(« E1:E65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« E2:E65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« E2 »).Select

monWB.Worksheets(« EXPORT INTER 1 »).Select
Range(« F1:F65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« F2:F65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« F2 »).Select

monWB.Worksheets(« EXPORT INTER 1 »).Select
Range(« G1:G65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« G2:G65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« G2 »).Select

monWB.Worksheets(« EXPORT INTER 1 »).Select
Range(« H1:E65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« H2:E65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« H2 »).Select

monWB.Worksheets(« EXPORT INTER 1 »).Select
Range(« I1:I65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« I2:I65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« I2 »).Select

monWB.Worksheets(« EXPORT INTER 1 »).Select
Range(« J1:J65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« J2:J65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« J2 »).Select

monWB.Worksheets(« EXPORT INTER 1 »).Select
Range(« K1:K65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« K2:K65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« K2 »).Select

monWB.Worksheets(« EXPORT INTER »).Visible = False
monWB.Worksheets(« EXPORT INTER 1 »).Visible = False
monWB.Worksheets(« EXPORT »).Visible = False
monWB.Worksheets(« IMPORT »).Visible = Fasle
monWB.Worksheets(« A SAISIR »).Activate
End Sub

Remplace dans la partie de code concernée :
Dim dl%
dl = ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Cells(Rows.Count, 2).End(xlUp).Row
ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Sort.SortFields.Add Key:=Range(« B1 »), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Sort
.SetRange Range(« A1:ALR » & dl)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

la partie ActiveWorkbook par monWB comme ceci :

Dim dl%
dl = monWB.Worksheets(« EXPORT INTER 1 »).Cells(Rows.Count, 2).End(xlUp).Row
monWB.Worksheets(« EXPORT INTER 1 »).Sort.SortFields.Clear
monWB.Worksheets(« EXPORT INTER 1 »).Sort.SortFields.Add Key:=Range(« B1 »), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
With monWB.Worksheets(« EXPORT INTER 1 »).Sort
.SetRange Range(« A1:ALR » & dl)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

fais attention au guillemets dans la copie mis dans le fil du forum il n’est pas correct il faut le remplacer en le tapant au clavier (« » pas correct)

Donnes moi le résultat

Pour connaitre le message d’un bug c’est soit avant de faire Débug l’information donnée par la boîte de dialogue soit sur la ligne jaune fait F5 tu retrouveras la boîte de dialogue avec son message

ça ne fonctionne pas
Le message d’erreur est "Erreur d’exécution ‹ 6 › : dépassement de capacité

Remplaces la partie :
Cells(Rows.Count, 2) et plus précisément Rows.Count par un nombre correspondant au numéros d une ligne largement au de la de la dernière ligne à traiter je prends en générale le numéro 65536 qui était la dernière ligne des fichiers Excel version 2003 et de mettre comme ceci Cells(65536, 2)
Ce qui donne la ligne :
dl = monWB.Worksheets(« EXPORT INTER 1 »).Cells(65536, 2).End(xlUp).Row
Rows.Count donne le nombre de ligne total mais peut être d une valeur erronée ou trop grande donc autant le figer â une valeur déterminé et non calculé
Essaies et dis moi

Marche toujours pas alors j’ai essayer avec 10 000 au lieu de 65536 et là ça a marché. c’est cool ; MERCI !

Maintenant, le classement de la date la plus ancienne à la date la plus récente fonctionne plus

décidément y a un manque de stabilité

Je précise : en remplaçant sur la ligne par dl = monWB.Worksheets(« EXPORT INTER 1 »).Cells(10000, 2).End(xlUp).Row
il n’y a plus de bug, mais pour autant la commande de classement de la date la plus ancienne à la date la plus récente ne se fait pas

Essaies de remettre le code tel qui l était avec cette donnée 10000 :

Dim dl%
dl = ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Cells(10000, 2).End(xlUp).Row
ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Sort.SortFields.Add Key:=Range(« B1 »), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Sort
.SetRange Range(« A1:ALR » & dl)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Voir aussi le chiffre 2 correspondant à la colonne B ici :
Cells(10000, 2)
Est ce bien la bonne colonne qui détient des données jusqu à la dernière ligne
Le tri se fait sur la colonne B est ce bien la colonne des dates ici :
ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Sort.SortFields.Add Key:=Range(« B1 »), _
Et plus particulièrement cette partie :
Key:=Range(« B1 »)
A vérifier tout cela
Me dire

Voir aussi les colonnes concernée par le tri décrit dans cette ligne :

.SetRange Range(« A1:ALR » & dl)

Dans l instruction c est les colonnes A à ALR

Il est fort probable que la colonne ALR n existe pas dans ton fichier

Voir donc la dernière colonne concernée et adapter cette partie
Par exemple dernière colonne AH mettre :

.SetRange Range(« A1:AH » & dl)

A vérifier donc et éventuellement adapter

Bonjour,

Donc j’ai remplacé monWB par ActiveWorkbook, conservé les 10 000 € et remplacé ARL par AH ; c’est bien à partir de la colonne B qu’il faut trier et…
ça ne fonctionne toujours pas .

Je me demande si cela ne vient pas de la conversion des dates.
dans le fichier source que j’importe en.csv, j’ai des dates en jj/m/yyyy et des dates en jj/m/yyyy hh:ss avec AM ou PM au bout.

Bonjour
Fais un essai à la main
Sélectionnes toutes tes données et tries par la colonne B
Si cela fonctionne enregistres tout en réalisant à la main une Macro
Puis refait l’opération en utilisant cette fois-ci la macro enregistrée
Si cela fonctionne encore récupères la macro dans l’éditeur VBA et transmets là moi je l’adapterai à ton code
Si rien ne fonctionne à la main peux tu me transmettre juste la colonne B dans un fichier que je teste de mon côté
Merci

J’ai enregistré la manipulation ; cependant :

  • les données viennent se mettre à la dernière ligne
  • les dates en par exemple 03/01/2019, deviennent 3/01/2019 et donc les indiques comme les plus anciennes

ci après la macro enregistrée
Sub TEST()

’ TEST Macro


Columns(« B:B »).Select
ActiveWorkbook.Worksheets(« EXPORT »).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(« EXPORT »).Sort.SortFields.Add Key:=Range(« B1 »), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(« EXPORT »).Sort
.SetRange Range(« A2:L65536 »)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

End Sub

Du coup je vous met en pj la totalité du fichier avec des données bidons pour rester dans la confidentialité
relevé_a_importer_test.csv (585 Octets)
CONVERTION RELEVE TEST.xlsm (3,9 Mo)

Merci pour votre aide précieuse

Dans la macro enregistrée que tu me fournis l onglet traité se nomme « EXPORT »
Or dans le code que l on souhaite rajouter on traite l onglet « EXPORT INTER 1 »
Exemple de ligne de code :
dl = ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Cells(10000, 2).End(xlUp).Row
Si l onglet à traiter est comme l a enregistre Excel « EXPORT » il est impératif d avoir ce nom d onglet dans notre code à rajouter
Donc dans notre code remplaces partout « EXPORT INTER 1 » par « EXPORT » et réessaiesi
Je pense que le résultat devra être plus correct
Dis moi

bon ça ne marche pas en remplaçant

de plus, c’est bien l’onglet EXPORT INTER 1 que je souhaite traiter la colonne B pour trier les dates

Je laisse tomber, je ne vais pas t’embêter plus longtemps
En tout cas merci pour ton aide, c’est super sympa
Belle journée

Si l’enregistreur de macro a cibler l’onglet « EXPORT » c’est que tu as fais l’essai manuel sur cet onglet et non sur l’onglet "EXPORT INTER 1 "
Lorsque je t’avais demandé de faire un test manuel c’est avec exactement le même contexte pour vérifier si le tri s’opère bien ou non et dans le cas où il s’opère correctement de m’enregistrer une macro en même temps
Je dois dans le code qui sera généré retrouver le même onglet EXPORT INTER 1 et non EXPORT
Réalises donc ce teste manuel à l’exacte configuration de celle de notre macro c’est très important pour vérifier le bon fonctionnement ou non
Si en manuel cela ne fonctionne pas ce n’est pas un PB de macro mais un souci autre
Cela permet d’orienter la recherche
Si cela fonctionne à l’exact configuration c’est un PB de macro et de me fournir celle enregistrée pour que j’analyse et comprenne l’erreur éventuel
Attention tu enregistres une macro en exécutant manuellement le tri et tu tente de réaliser ce même tri en exécutant la macro enregistrée
Il se peut que même en le réalisant manuellement la macro enregistrée ne fonctionne pas
Et de me donner ce que tu as constaté et le code de la macro enregistrée si celle-ci fonctionne

Je viens de récupérer tes fichiers j’ai fais une macro dans laquelle j’ai mis ce code (Macro1) :

Dim dl%
dl = ActiveWorkbook.Worksheets(« relevé_a_importer_test »).Cells(10000, 1).End(xlUp).Row
ActiveWorkbook.Worksheets(« relevé_a_importer_test »).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(« relevé_a_importer_test »).Sort.SortFields.Add Key:=Range(« A1 »), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets(« relevé_a_importer_test »).Sort
.SetRange Range(« A2:ALR » & dl)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

J’ai utilisé la colonne A comme base de tri et non B car les dates sont en colonne A
J’ai actualisé le nom de l’onglet pour qu’il corresponde à l’onglet à traiter de ce fichier
J’ai laissé la colonne ALR car c’est un fichier xlsm qui gère ce genre de colonne
J’ai changé la donnée A1 pour A2 quant à la plage à traiter pour éviter d’embarquer dans le tri la ligne 1 de titre :

.SetRange Range(« A2:ALR » & dl)

Et bingo la macro marche du feu de dieu
Je te l’envoie avec donc la macro qui marche chez moi
Fais des essais et dis moi

https://cjoint.com/c/JCgrWFz71LC

Bonjour,
Alors j’ai testé de mon côté sur mon fichier complet ; voici la macro totale
'Colle les données dans l’onglet import

monWb.Worksheets(« IMPORT »).Select
Range(« A1 »).Select
ActiveSheet.Paste

'convertir ; en colone
monWb.Worksheets(« IMPORT »).Select
Columns(« A:A »).Select
Selection.TextToColumns Destination:=Range(« A1 »), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 2), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1)), _
TrailingMinusNumbers:=True

'convertion format texte en format date
Columns(« A:A »).Select
Selection.NumberFormat = « m/d/yyyy »

'etendre automatiquement les formules
monWb.Worksheets(« EXPORT INTER »).Select
Range(« A2 »).Select
Selection.AutoFill Destination:=Range(« A2:A65536 »)
Range(« A2:A65536 »).Select
Range(« B2 »).Select
Selection.AutoFill Destination:=Range(« B2:B65536 »)
Range(« B2:B65536 »).Select
Range(« D2 »).Select
Selection.AutoFill Destination:=Range(« D2:D65536 »)
Range(« D2:D65536 »).Select
Range(« E2 »).Select
Selection.AutoFill Destination:=Range(« E2:E65536 »)
Range(« E2:E65536 »).Select
Range(« F2 »).Select
Selection.AutoFill Destination:=Range(« F2:F65536 »)
Range(« F2:E65536 »).Select
Range(« H2 »).Select
Selection.AutoFill Destination:=Range(« H2:H65536 »)
Range(« H2:H65536 »).Select
Range(« I2 »).Select
Selection.AutoFill Destination:=Range(« I2:I65536 »)
Range(« I2:I65536 »).Select
Range(« J2 »).Select
Selection.AutoFill Destination:=Range(« J2:J65536 »)
Range(« J2:I65536 »).Select
Range(« K2 »).Select
Selection.AutoFill Destination:=Range(« K2:K65536 »)
Range(« K2:K65536 »).Select

'Copie colone A de EXPORT INTER ET Colle dans la colonne B de EXPORT INTER 1
monWb.Worksheets(« EXPORT INTER »).Select
Columns(« A:A »).Select
Selection.Copy
monWb.Worksheets(« EXPORT INTER 1 »).Select
Columns(« B:B »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« B1 »).Select
'Copie colone B de EXPORT INTER ET Colle dans la colonne A de EXPORT INTER 1

monWb.Worksheets(« EXPORT INTER »).Select
Columns(« B:B »).Select
Selection.Copy
monWb.Worksheets(« EXPORT INTER 1 »).Select
Columns(« A:A »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« A1 »).Select

'Copie des colonnes C à K de export inter vers C à K de export inter 1

monWb.Worksheets(« EXPORT INTER »).Select
Columns(« C:K »).Select
Selection.Copy
monWb.Worksheets(« EXPORT INTER 1 »).Select
Columns(« C:K »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« C1 »).Select
'convertion format texte en format date
monWb.Worksheets(« EXPORT INTER 1 »).Select
Columns(« A:A »).Select
Selection.NumberFormat = « m/d/yyyy »

'Trier les dates de l’onglet " EXPORT INTER 1"

Dim dl%
dl = ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Cells(10000, 1).End(xlUp).Row
ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Sort.SortFields.Add Key:=Range(« A1 »), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets(« EXPORT INTER 1 »).Sort
.SetRange Range(« A2:ALR » & dl)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

'copier -coller le contentenu du fichier export inter 1 à export
monWb.Worksheets(« EXPORT INTER 1 »).Select
Range(« A2:A65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« A2:A65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« A2 »).Select

monWb.Worksheets(« EXPORT INTER 1 »).Select
Range(« B2:B65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« B2:B65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« B2 »).Select

monWb.Worksheets(« EXPORT INTER 1 »).Select
Range(« D2:D65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« D2:D65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« D2 »).Select

monWb.Worksheets(« EXPORT INTER 1 »).Select
Range(« E2:E65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« E2:E65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« E2 »).Select

monWb.Worksheets(« EXPORT INTER 1 »).Select
Range(« F2:F65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« F2:F65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« F2 »).Select

monWb.Worksheets(« EXPORT INTER 1 »).Select
Range(« G2:G65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« G2:G65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« G2 »).Select

monWb.Worksheets(« EXPORT INTER 1 »).Select
Range(« H2:E65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« H2:E65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« H2 »).Select

monWb.Worksheets(« EXPORT INTER 1 »).Select
Range(« I2:I65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« I2:I65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« I2 »).Select

monWb.Worksheets(« EXPORT INTER 1 »).Select
Range(« J2:J65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« J2:J65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« J2 »).Select

monWb.Worksheets(« EXPORT INTER 1 »).Select
Range(« K2:K65536 »).Select
Selection.Copy
Sheets(« EXPORT »).Select
Range(« K2:K65536 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range(« K2 »).Select

monWb.Worksheets(« EXPORT INTER »).Visible = False
monWb.Worksheets(« EXPORT INTER 1 »).Visible = False
monWb.Worksheets(« EXPORT »).Visible = False
monWb.Worksheets(« IMPORT »).Visible = Fasle
monWb.Worksheets(« A SAISIR »).Activate
End Sub

En PJ les copies d’écran du résultat
J’ai bien intervertit les colonnes mais le tri ne se fait pas il y a une ligne qui arrive avant l’entête.
Je pense que c’est mon classeur qui doit avoir un vrai problème.
il faudrait peut-être que je recommence à 0.

!